konkitoman / bytes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About


Languages

Language:Rust 99.9%Language:Shell 0.1%