fastserial 0.1.2

Ultra-fast, zero-copy serialization/deserialization library for Rust with SIMD acceleration
Documentation
use fastserial::json::decode;

#[test]
fn test_zero_copy_string() {
    let input = b"\"hello\"";
    let decoded: &str = decode(input).unwrap();
    assert_eq!(decoded, "hello");

    let ptr = decoded.as_ptr() as usize;
    let input_ptr = input.as_ptr() as usize;
    let input_end = input_ptr + input.len();

    assert!(
        ptr >= input_ptr && ptr < input_end,
        "decoded string should borrow from input buffer"
    );
}

#[test]
fn test_zero_copy_vec() {
    let input = br#"["a","b","c"]"#;
    let decoded: Vec<&str> = decode(input).unwrap();
    assert_eq!(decoded, vec!["a", "b", "c"]);
}

#[test]
fn test_zero_copy_numbers() {
    let input = b"42";
    let decoded: u64 = decode(input).unwrap();
    assert_eq!(decoded, 42);
}

#[test]
fn test_large_input() {
    let json_str = r#""xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""#;

    let input = json_str.as_bytes();
    let result: Result<&str, _> = decode(input);

    assert!(result.is_ok());
}

#[test]
fn test_mixed_content() {
    let input = b"123";
    let decoded: u64 = decode(input).unwrap();
    assert_eq!(decoded, 123);
}