stackstring 0.4.4

A fixed-size string
Documentation
use stackstring::String;

use core::convert::TryInto;

use rkyv::{Archive, Deserialize, Serialize, deserialize, rancor::Error};

#[derive(Archive, Deserialize, Serialize, PartialEq, Debug)]
#[rkyv(compare(PartialEq), derive(Debug))]
struct S {
    st: String<3>,
    x: u8,
}

fn main() {
    let value = S {
        st: "abf".try_into().unwrap(),
        x: 99,
    };

    dbg!(&value);

    let bytes = rkyv::to_bytes::<Error>(&value).unwrap();

    let archived = rkyv::access::<ArchivedS, Error>(&bytes[..]).unwrap();

    dbg!(archived);

    assert_eq!(archived, &value);

    let deserialized = deserialize::<S, _>(archived).unwrap();
    assert_eq!(deserialized, value);

    dbg!(deserialized);
}