I would prefere this function returns a str. Le 29 nov. 2013 09:27, "Philippe Delrieu" <philippe.delr...@free.fr> a écrit :
> Thank you for the help. I've try this signature and I had an compile > error. I thought it came from the signature but the problem when from the > call. > It works now. > > For the return type @mut MemWriter I work on the json doc and some example > of use. I can make the change. I didn't find the issue about it. Did you > create it? > > Philippe > > Le 28/11/2013 22:27, Erick Tryzelaar a écrit : > > Good afternoon Phillippe, > > Here's how to do it, assuming you're using rust 0.8 and the json library: > > ``` > #[feature(managed_boxes)]; > > extern mod extra; > > use std::io::mem::MemWriter; > use extra::serialize::{Encoder, Encodable}; > use extra::json; > > pub fn memory_encode< > T: Encodable<json::Encoder> > >(to_encode_object: &T) -> @mut MemWriter { > //Serialize the object in a string using a writer > let m = @mut MemWriter::new(); > let mut encoder = json::Encoder(m as @mut Writer); > to_encode_object.encode(&mut encoder); > m > } > > fn main() { > } > ``` > > Regarding the trouble returning a `MemWriter` instead of a `@mut > MemWriter`, the easiest thing would be to fix library to use `&mut ...` > instead of `@mut ...`. I'll put in a PR to do that. > > > > On Thu, Nov 28, 2013 at 3:55 AM, Philippe Delrieu < > philippe.delr...@free.fr> wrote: > >> I try to develop a function that take a Encodable parameter but I have >> the error wrong number of type arguments: expected 1 but found 0 >> >> pub fn memory_encode(to_encode_object: &serialize::Encodable) -> @mut >> MemWriter { >> //Serialize the object in a string using a writer >> let m = @mut MemWriter::new(); >> let mut encoder = Encoder(m as @mut Writer); >> to_encode_object.encode(&mut encoder); >> m >> } >> >> The encodable trait is : >> pub trait Encodable<S:Encoder> { >> fn encode(&self, s: &mut S); >> } >> >> I try this definition >> memory_encode<T:serialize::Encodable<Encoder>>(to_encode_object: &T) -> >> @mut MemWriter >> >> But I can't use the method with a struct that implement Encodable. The >> error : mismatched types: expected `&<V31>` but found .. >> >> I have another question : >> I would like to return a MemWriter and not a @mut MemWriter . I didn't >> find a way to convert the @mut to ~ >> >> Philippe Delrieu >> _______________________________________________ >> 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