serde-json-core icon indicating copy to clipboard operation
serde-json-core copied to clipboard

Example Proposition for str deserialization

Open XdoctorwhoZ opened this issue 3 years ago • 1 comments

Hello Guys, This is a great crates !

But as a rust newcomer I was a bit lost face to:

Supports deserialization of:
    [...]
    str (This is a zero copy operation.) (*)
    [...]

Examples of std serde use dynamic allocation and don't speak about this use case.

I put here a proposition of example that would have helped me. If you put this in your documentation I'm sure it will help other newcomers.

// Import
use serde::{Deserialize};
use serde_json_core;

// The field is a ref that will point directly in the parsed buffer
#[derive(Deserialize)]
struct MyStruct<'a> {
    the_str: &'a str,
}

// Deserialize buffer
match serde_json_core::de::from_slice::<MyStruct>( b"{\"the_str\": \"jsoncore\"}" ) {
    Err(_e) => {
        // Err
    }
    Ok(deser) => {
        // result in deser.0.the_str
    }
}

XdoctorwhoZ avatar Mar 20 '22 07:03 XdoctorwhoZ

I see no issue with adding these kind of examples to the main repository docs, and rust-doc would gladly accept examples. I'd be happy to review a PR for the addition :)

ryan-summers avatar Mar 24 '22 07:03 ryan-summers