pub mod attrs; pub mod ctx; pub mod dict; pub mod error; //pub mod native_fun; //pub mod num; pub mod str; pub mod sym { pub type Sym = usize; } //pub mod ty; pub mod prelude { pub use crate::{ obj::{ Attrs, Dict, DictRef, Str, StrRef, Sym, ObjCtx, Obj, }, mem::{ ptr::{ObjRef, DynRef}, intern::Intern, gc::Gc, } }; } pub use self::{ attrs::Attrs, dict::{Dict, DictRef}, ctx::ObjCtx, str::{Str, StrRef}, sym::Sym, }; use crate::mem::ptr::ObjRef; use std::any::Any; pub trait Obj { fn attrs(&self) -> ObjRef; fn is_marked(&self) -> bool; fn mark(&self); fn unmark(&self); fn as_any(&self) -> &dyn Any; }