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

Reply via email to