diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-01-06 14:56:20 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-01-06 14:56:20 +0100 |
| commit | ffbdb9ce397a6408d5a91cbdcbaf4e13b0c3ba0b (patch) | |
| tree | e84bb53bb2cb3f55617c9e44b5f07cbd964aa404 /common/object/src/tests.rs | |
| parent | c04f49adaa2cb0fa3074d6b122d1e11689c4f5de (diff) | |
| download | jellything-ffbdb9ce397a6408d5a91cbdcbaf4e13b0c3ba0b.tar jellything-ffbdb9ce397a6408d5a91cbdcbaf4e13b0c3ba0b.tar.bz2 jellything-ffbdb9ce397a6408d5a91cbdcbaf4e13b0c3ba0b.tar.zst | |
Multi fields; object buffer constructor; unit tests
Diffstat (limited to 'common/object/src/tests.rs')
| -rw-r--r-- | common/object/src/tests.rs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/common/object/src/tests.rs b/common/object/src/tests.rs new file mode 100644 index 0000000..35a29ba --- /dev/null +++ b/common/object/src/tests.rs @@ -0,0 +1,39 @@ +/* + This file is part of jellything (https://codeberg.org/metamuffin/jellything) + which is licensed under the GNU Affero General Public License (version 3); see /COPYING. + Copyright (C) 2026 metamuffin <metamuffin.org> +*/ +use crate::{ObjectBuffer, Tag, TypedTag}; +use std::marker::PhantomData; + +const NAME: TypedTag<&str> = TypedTag(Tag(15), PhantomData); +const AGE: TypedTag<u32> = TypedTag(Tag(13), PhantomData); +const FRIEND: TypedTag<&str> = TypedTag(Tag(54321), PhantomData); + +fn test_object() -> ObjectBuffer { + ObjectBuffer::new(&mut [ + (NAME.0, &"Bob"), + (AGE.0, &35_u32), + (FRIEND.0, &"Alice"), + (FRIEND.0, &"Charlie"), + ]) +} + +#[test] +fn read_single_field() { + let bob = test_object(); + let bob = bob.as_object(); + assert_eq!(bob.get(NAME), Some("Bob")); + assert_eq!(bob.get(AGE), Some(35)); +} + +#[test] +fn read_multi_field() { + let bob = test_object(); + let bob = bob.as_object(); + + let mut friends = bob.iter(FRIEND); + assert_eq!(friends.next(), Some("Alice")); + assert_eq!(friends.next(), Some("Charlie")); + assert_eq!(friends.next(), None); +} |