use crate as starlark;
use crate::values::{Freeze, Freezer, FrozenHeap};
#[derive(Freeze)]
#[freeze(validator = check_true)]
struct Test {
field: bool,
}
fn check_true(test: &Test) -> anyhow::Result<()> {
if !test.field {
return Err(anyhow::anyhow!("Err"));
}
Ok(())
}
#[test]
fn test_ok() -> anyhow::Result<()> {
let t = Test { field: true };
let freezer = Freezer::new(FrozenHeap::new());
t.freeze(&freezer)?;
Ok(())
}
#[test]
fn test_fail() -> anyhow::Result<()> {
let t = Test { field: false };
let freezer = Freezer::new(FrozenHeap::new());
assert!(t.freeze(&freezer).is_err());
Ok(())
}