#![allow(dead_code)]
use starlark::values::Freeze;
use crate as starlark;
use crate::values::FreezeResult;
use crate::values::Freezer;
use crate::values::FrozenHeap;
struct NonFreeze(u32);
#[derive(Freeze)]
struct TestStruct {
s: String,
#[freeze(identity)]
s2: NonFreeze,
}
#[derive(Freeze)]
struct TestUnitStruct(String, #[freeze(identity)] NonFreeze);
#[derive(Freeze)]
enum TestEnum {
A(String),
B(#[freeze(identity)] NonFreeze),
}
#[test]
fn test_struct() -> anyhow::Result<()> {
let t = TestStruct {
s: "test".to_owned(),
s2: NonFreeze(55),
};
let freezer = Freezer::new(FrozenHeap::new());
t.freeze(&freezer)?;
Ok(())
}
#[test]
fn test_anon_struct() -> anyhow::Result<()> {
let t = TestUnitStruct("test".to_owned(), NonFreeze(56));
let freezer = Freezer::new(FrozenHeap::new());
t.freeze(&freezer)?;
Ok(())
}