bobcat-storage 0.11.3

bobcat-sdk utilities for accessing storage on Arbitrum Stylus.
Documentation
use core::marker::PhantomData;

pub trait Cap {
    fn write() -> bool;
    fn read() -> bool;
}

macro_rules! capabilities {
    ($t:ident, $cw:expr, $cr:expr) => {
        pub struct $t;

        impl Cap for $t {
            fn write() -> bool {
                $cw
            }
            fn read() -> bool {
                $cr
            }
        }
    };
}

capabilities! {CW, true, false}
capabilities! {CA, true, true}
capabilities! {CR, false, true}

pub struct EvmBox<C: Cap, T> {
    _phantom: PhantomData<(C, T)>,
}