bytes-kman

Crates.iobytes-kman
lib.rsbytes-kman
version0.3.0
sourcesrc
created_at2022-12-14 03:56:56.524989
updated_at2023-05-20 16:41:21.515744
descriptionserialize and deserialize bytes, a simple way to comunicate to other computer or to save state!
homepage
repositoryhttps://github.com/konkitoman/bytes
max_upload_size
id736293
size55,369
Konkitoman (konkitoman)

documentation

README

Bytes

Crates.io

is used for serialize and deserialize

is useful because is more faster and smaller then json!
But not human readable!

Examples

use bytes_kman::prelude::*;

#[derive(Bytes)]
pub struct Package{
    id: u16,
    message: String
}


pub fn main(){
    let pak = Package{
        id: 21
        message: String::from("This is a message")
    };

    let mut bytes = pak.to_bytes();
    bytes.reverse();

    let other = Package::from_bytes(&mut bytes).unwrap();

    assert_eq!(pak, other);
}
use bytes_kman::prelude::*;

pub fn main(){
    let num = 32u8;
    let bytes = num::to_bytes();
    assert_eq!(bytes; vec![32]) 
}
use bytes_kman::prelude::*;

pub fn main(){
    let num = 32;
    let bytes = num::to_bytes();
    assert_eq!(bytes; vec![32, 0, 0, 0]) 
}
use bytes_kman::prelude::*;

pub fn main(){
    let string = "Hello World!".to_string();
    let bytes = num::to_bytes();
    //                    this is the string length 'H' 'e'  'l'  'l'  'o'  ' ' 'W' 'o'  'r'  'l'  'd' '!'
    //                     >>>>>>>>>>>>^<<<<<<<<<<   ^   ^    ^    ^    ^    ^   ^   ^    ^    ^    ^   ^
    assert_eq!(bytes; vec![12, 0, 0, 0, 0, 0, 0, 0, 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]) 
}
use bytes_kman::prelude::*;

pub fn main(){
    let string = "Hello World!".to_string();

    let mut bytes = num::to_bytes();
    bytes.reverse(); // when reading is inversed

    let other = String::from_bytes(&mut bytes).unwrap() // if don't have enough bytes will result in an error!
    // bytes = []
    // bytes will be consumed!
    // other = "Hello World!"
    assert_eq!(string, other) 
}

Rust toolchain: stable 1.65.0

Commit count: 38

cargo fmt