Hi,

Am 17.12.2013 um 20:10 schrieb Corey Richardson <[email protected]>:

> On Tue, Dec 17, 2013 at 2:06 PM, Stefan Plantikow
> <[email protected]> wrote:
>> Hi,
>> 
>> 
>> Am 09.12.2013 um 16:53 schrieb Damien Radtke <[email protected]>:
>> 
>>> I have no idea if it would be feasible in the standard library, but 
>>> wouldn't the ideal solution be having one function (e.g. from_utf8()) that 
>>> could return two possible values, a bare result and an Option? Letting the 
>>> compiler decide which version to use based on type inference like this:
>>> 
>>>    let result: ~str = from_utf8(...);
>>>    let result: Option<~str> = from_utf8(...);
>>> 
>>> Assuming both of them are passed invalid UTF8, then the first version would 
>>> fail, but the second version would just return None.
>> 
>> 
> 
> We already have pattern matching in `let` (the LHS is a pattern), but
> it's only for irrefutable patterns. IOW, `let` can never fail, and
> that's a very very useful property IMO.

oh ok I haven’t kept up on the syntax then. Given the utility of destructuring 
bind for error handling, wouldn't it make sense to have a variant of let that 
can fail? 

Now syntax is a matter of practicality and taste but spontaneously this comes 
to mind:

   let opt Some(~result) = from_utf8(..)

comes to mind.



Cheers,



Stefan.




_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to