Skip to content

Repository files navigation

Codee

Crates.ioDocsMIT/Apache 2.0Build Status

Easy and flexible way of encoding and decoding data into either strings or bytes.

This crate provides generic traits for Encoders and Decoders as well as several implementations for commonly used (de)serializer crates.

This makes it easily possible to abstract away the serialization and deserialization independent of the concrete crate used. You can write a function like this:

use codee::{CodecError,Decoder,Encoder};fnstore_value<T,Codec>(value:T) -> Result<(),CodecError<<CodecasEncoder<T>>::Error, <CodecasDecoder<T>>::Error>>whereCodec:Encoder<T,Encoded = String> + Decoder<T,Encoded = str>,{let encoded = Codec::encode(&value).map_err(CodecError::Encode)?;let decoded = Codec::decode(&encoded).map_err(CodecError::Decode)?;Ok(())}// Then we can use it like this:use codee::string::{JsonSerdeCodec,FromToStringCodec};#[derive(serde::Serialize, serde::Deserialize)]structMyStruct{field:usize,}store_value::<i32,FromToStringCodec>(42);store_value::<MyStruct,JsonSerdeCodec>(MyStruct{field:42});

About

Easy and flexible way of encoding and decoding data into either strings or bytes.

Resources

Stars

11 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages