recallable 0.2.0

Traits (`Recallable`, `Recall`, `TryRecall`) and macros for defining Memento pattern types and their state restoration behaviors.
Documentation
use recallable::{Recall, Recallable, recallable_model};

const CAPACITY: usize = 128;

#[recallable_model]
#[derive(Clone, Debug, Default, PartialEq, Eq)]
struct SensorReading {
    id: u16,
    value: i32,
}

fn main() {
    let original = SensorReading { id: 7, value: 42 };
    let bytes = postcard::to_vec::<_, CAPACITY>(&original).unwrap();
    let memento: <SensorReading as Recallable>::Memento = postcard::from_bytes(&bytes).unwrap();

    let mut restored = SensorReading::default();
    restored.recall(memento);

    assert_eq!(restored, original);
}