#object #notation #minimal #length

minimal_object_notation

最小编码

1 个不稳定版本

0.1.0 2020年9月25日

#33#minimal

MIT/Apache

25KB
453

最小对象符号

一个用于读取和写入最小对象符号的 Rust 包。

简介

什么是“最小对象符号”?它是一种格式,简单地在一些信息上附加一个名称标签和一个长度标签。例如:greeting|13~Hello, world!

创建 miniON 的示例

    use minimal_object_notation::*;

    let mut minion = MiniON::new("greeting".to_string());

    minion.set_content("Hello, world!".to_string());

    let minion = minion.to_string();

将生成包含 greeting|13~Hello, world!String

解析 miniON 的示例

    use minimal_object_notation::*;

    let data = b"greeting|13~Hello, world!container|23~first|3~ONEsecond|3~TWO";

    let mut incr: usize = 0;

    // Parse a single object that starts at the position `incr`...

    match MiniON::parse_one(data, &mut incr) {
        Ok(minion) => {
            assert_eq!("greeting",minion.name);

            match minion.content {
                Some(content) => {
                    assert_eq!("Hello, world!",content);
                },
                None => {
                    panic!("Expected content!");
                }
            }
        },
        Err(e) => {
            panic!("{}",e.to_string());
        }
    }

    // ... OR parse all (sucessive) miniON objects.

    match MiniON::parse_all(data) {
        Ok(minions) => {
            assert_eq!(minions.len(),2);

            assert_eq!("container",minions[1].name);
        },
        Err(e) => {
            panic!("{}",e.to_string());
        }
    }

无运行时依赖