miden-base-macros 0.11.0

Provides proc macro support for Miden rollup SDK
Documentation
use core::convert::TryFrom;

use miden_base_macros::note;

extern crate self as miden;

pub use miden_field::Felt;

pub mod felt_repr {
    pub use miden_field_repr::{FeltReader, FeltReprError, FromFeltRepr};
}

#[derive(Debug)]
#[note]
struct UnitNote;

#[derive(Debug)]
#[note]
struct OneFeltNote {
    #[allow(dead_code)]
    a: miden::Felt,
}

#[test]
fn unit_note_rejects_trailing_data() {
    let felts = [miden::Felt::new(0)];

    let err = UnitNote::try_from(felts.as_slice()).unwrap_err();
    assert_eq!(err, miden::felt_repr::FeltReprError::TrailingData { pos: 0, len: 1 });
}

#[test]
fn note_struct_rejects_trailing_data() {
    let felts = [miden::Felt::new(1), miden::Felt::new(2)];

    let err = OneFeltNote::try_from(felts.as_slice()).unwrap_err();
    assert_eq!(err, miden::felt_repr::FeltReprError::TrailingData { pos: 1, len: 2 });
}