use crate as starlark;
use crate::values::Freeze;
use crate::values::FreezeError;
use crate::values::FreezeResult;
use crate::values::Freezer;
use crate::values::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(())
}