Skip to content

How to use this crate without use of struct fields #34

@kylecarow

Description

@kylecarow

I'm relatively new to Rust so bear with me. I'm working on a project that provides a Python API to Rust code via Pyo3. In my project I'm trying to enable fast serialization and deserialization using bincode. I read this crate can mitigate the performance issues I'm seeing (bincode takes 3 times longer than serialization/deserialization with serde_json).

It's not clear to me how to take advantage of this crate when I don't use a struct field to hold the data.

For reference, this is what the unedited, actual serialization and deserialization code snippet looks like, with the Pyo3 API intact:

pub fn to_bincode(&self) -> PyResult<Vec<u8>> {
    Ok(serialize(&self).unwrap())
}
#[classmethod]
pub fn from_bincode(_cls: &PyType, encoded: Vec<u8>) -> PyResult<Self> {
    Ok(deserialize(&encoded).unwrap())
}

With the API removed, I suppose would be the analogous code:

pub fn to_bincode(&self) -> Vec<u8> {
    serialize(&self).unwrap()
}
pub fn from_bincode(encoded: Vec<u8>) -> Self {
    deserialize(&encoded).unwrap()
}

See also: PyO3/pyo3#100

How can I utilize this crate in this case?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions