As a follow up, what situation would arise where you'd have to actually return a Chan trait object? Constructors are going to return the concrete type UniqueChan/SharedChan. Functions acting on channels can just use generics, which will allow returning.
On Tue, Jan 14, 2014 at 9:21 PM, Eric Reed <[email protected]> wrote: > fn foo<T: Trait>() -> T > > > On Tue, Jan 14, 2014 at 9:20 PM, Jack Moffitt <[email protected]> wrote: > >> You can't do `foo() -> Trait`. It would have to be `foo() -> ~Trait`. >> Well, unless DST fixes this. I assume this is the same reason we >> return specific instances of iterators instead of an Iteratable trait >> object. >> >> jack. >> >> On Tue, Jan 14, 2014 at 10:10 PM, Eric Reed <[email protected]> >> wrote: >> > How would that make us lose stack allocated return values? >> > >> > >> > On Tue, Jan 14, 2014 at 5:22 PM, Jack Moffitt <[email protected]> wrote: >> >> >> >> > Good point. Make `Chan` a trait with implementers `UniqueChan` and >> >> > `SharedChan`? >> >> >> >> I suppose the main downside of that solution is that you lose stack >> >> allocated return values. >> >> >> >> jack. >> > >> > >> > >
_______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
