feat(macros): add #[derive(Integrable)] proc-macro

This commit is contained in:
CleverWild
2026-06-29 16:58:35 +02:00
parent 647f0c8519
commit d861ff80be
4 changed files with 95 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
use arbiter_crypto::integrity::Integrable;
#[derive(arbiter_macros::Hashable, arbiter_macros::Integrable)]
#[integrable(kind = "test_entity")]
struct TestEntity {
value: i32,
}
#[test]
fn default_version_is_one() {
assert_eq!(<TestEntity as Integrable>::VERSION, 1, "default version must be 1");
assert_eq!(<TestEntity as Integrable>::KIND, "test_entity");
}
#[derive(arbiter_macros::Hashable, arbiter_macros::Integrable)]
#[integrable(kind = "versioned_entity", version = 3)]
struct VersionedEntity {
data: String,
}
#[test]
fn explicit_version_attribute() {
assert_eq!(<VersionedEntity as Integrable>::VERSION, 3);
assert_eq!(<VersionedEntity as Integrable>::KIND, "versioned_entity");
}