use std::sync::Arc as Rc;
use crate::value::FunctionValue;
pub use aver_memory::{
ARENA_REF_BIT,
AllocSpace,
ArenaList,
ArenaTypes,
ArenaUsage,
FnValueName,
IMM_FALSE,
IMM_TRUE,
IMM_UNIT,
INT_INLINE_MAX,
INT_INLINE_MIN,
MapLike,
NanString,
NanValue,
PersistentMap,
SYMBOL_BUILTIN,
SYMBOL_FN,
SYMBOL_NAMESPACE,
SYMBOL_NULLARY_VARIANT,
TAG_ERR,
TAG_IMMEDIATE,
TAG_INLINE_VARIANT,
TAG_INT,
TAG_LIST,
TAG_MAP,
TAG_NONE,
TAG_OK,
TAG_RECORD,
TAG_SOME,
TAG_STRING,
TAG_SYMBOL,
TAG_TUPLE,
TAG_VARIANT,
TAG_VECTOR,
WRAP_ERR,
WRAP_OK,
WRAP_SOME,
};
#[derive(Clone, Debug)]
pub struct AverTypes;
impl ArenaTypes for AverTypes {
type Fn = FunctionValue;
type Map = PersistentMap;
}
impl FnValueName for FunctionValue {
fn name(&self) -> &str {
&self.name
}
}
pub type Arena = aver_memory::Arena<AverTypes>;
pub type ArenaEntry = aver_memory::ArenaEntry<AverTypes>;
pub type ArenaSymbol = aver_memory::ArenaSymbol<AverTypes>;
#[cfg(feature = "runtime")]
pub use convert::NanValueConvert;
#[cfg(feature = "runtime")]
mod convert;
#[cfg(test)]
#[allow(clippy::approx_constant)]
mod tests;