Cool, thanks! -Palmer Cox
On Mon, Feb 3, 2014 at 10:36 PM, Steven Fackler <sfack...@gmail.com> wrote: > You can also use a nested pattern: > > match reader.read(buf) { > Ok(cnt) => { /* stuff */ } > Err(IoError { kind: EndOfFile, .. } => { /* eof stuff */ } > Err(e) => return Err(e) > } > > Steven Fackler > > > On Mon, Feb 3, 2014 at 10:32 PM, Alex Crichton <a...@crichton.co> wrote: > >> I'd recommend one of two solutions, one is a match guard: >> >> match reader.read(buf) { >> Ok(cnt) => { /* ... */ } >> Err(ref e) if e.kind == io::EndOfFile => { /* ... */ } >> Err(e) => return Err(e) >> } >> >> and the other would be to home-grow your own macro if you find >> yourself writing the same pattern frequently. >> >> On Mon, Feb 3, 2014 at 7:25 PM, Palmer Cox <palmer...@gmail.com> wrote: >> > I like this change quite a bit. However, is there a more succinct way >> than >> > the following to take an action on EOF: >> > >> > match reader.read(buff) { >> > Ok(cnt) => { >> > // Do something >> > } >> > Err(io_error) => match io_error.kind { >> > EndOfFile => { >> > // Do something for EOF >> > } >> > _ => return Err(io_error) >> > } >> > } >> > >> > -Palmer Cox >> > >> > >> > >> > On Mon, Feb 3, 2014 at 9:19 PM, Alex Crichton <a...@crichton.co> wrote: >> >> >> >> > By returning a Result from all function calls, it's not much cleaner >> >> > to handle errors >> >> >> >> Oops, wrong word there, I meant to indicate that it *is* much cleaner >> >> to handle errors with Result rather than conditions. >> >> _______________________________________________ >> >> Rust-dev mailing list >> >> Rust-dev@mozilla.org >> >> https://mail.mozilla.org/listinfo/rust-dev >> > >> > >> _______________________________________________ >> Rust-dev mailing list >> Rust-dev@mozilla.org >> https://mail.mozilla.org/listinfo/rust-dev >> > >
_______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev