Skip to main content

build_emoji/
build_emoji.rs

1//! The spec quick start, verbatim, plus a look at both serializations.
2
3use combs_mesh::{EmojiBuilder, EmojiExporter};
4
5fn main() {
6    let emoji = EmojiBuilder::new("my-emoji")
7        .description("An emoji that does things")
8        .add_todo("task1", "Build the thing")
9        .add_image_rgba(64, 64, vec![0u8; 64 * 64 * 4])
10        .with_agent_lifecycle()
11        .build();
12
13    let binary = EmojiExporter::to_binary(&emoji).expect("to_binary");
14    let unicode = EmojiExporter::to_unicode(&emoji).expect("to_unicode");
15
16    println!("emoji:      {}", emoji.name);
17    println!("blocks:     {}", emoji.blocks.len());
18    println!("binary:     {} bytes", binary.len());
19    println!("unicode:    {} chars", unicode.chars().count());
20
21    let back = EmojiExporter::from_binary(&binary).expect("from_binary");
22    assert_eq!(emoji, back, "binary round-trip");
23    let back = EmojiExporter::from_unicode(&unicode).expect("from_unicode");
24    assert_eq!(emoji, back, "unicode round-trip");
25    println!("round-trip: ok");
26}