//! Endor 对象、数值、已验证代码和存储的公共 API;compiler/core 和宿主都从这里导入。 //! 不包含 VM 指令求值器;数值精确运算使用 num_* 依赖,句柄/计数/载荷修改仍封装在本 crate。 //! 下方示例由文档测试调用:创建拥有根、读写属性,最后 release,不把复制句柄误当新增根。 //! //! ``` //! use objects::{ObjectStore, Value}; //! let mut store = ObjectStore::new()?; //! let object = store.new_object()?; //! store.set_attr(object, "name", Value::Text("Endor".into()))?; //! assert_eq!(store.get_attr(object, "name")?, Value::Text("Endor".into())); //! store.release(object)?; //! assert_eq!(store.object_count(), 0); //! # Ok::<(), objects::VmError>(()) //! ``` // 内部内置载荷:字符串、字典、函数、闭包槽和异常。 mod builtins; // 内部变更通知结构,消费者据此失效缓存。 mod changes; // 代码布局和构造校验,不执行代码。 mod code; // 各层共享错误,避免对象层依赖 VM。 mod error; // 私有堆:代际身份、根/边计数、只读追踪和回收。 mod heap; // 指令协议及字节编解码,供编译器和执行器共用。 mod instruction; // 宿主回调契约、上下文和结果根移交。 mod native; // 无损数值表示和受预算约束的精确运算。 mod number; // 直接值、载荷协议及公共对象实体。 mod object; // 受控对象操作门面,宿主可独立于 VM 使用。 mod store; // 字典/Cell/函数等内置载荷的 Store 扩展。 mod store_builtins; // 名义类型、能力、字段注解及子模块中的契约/效果分析。 mod types; // 向宿主公开内置载荷,分配和修改仍经 Store。 pub use builtins::{ EndorBaseExceptionObject, EndorCellObject, EndorDictObject, EndorFunctionObject, EndorStringObject, EndorTracebackEntry, }; // 向缓存消费者公开借用变更通知,不提供对象拥有根。 pub use changes::{ChangeBatch, ChangeKey, ObjectChange}; // 编译器构造与 VM 共享执行数据需要的代码 API。 pub use code::{CodeLayout, EndorCode, EndorCodeObject, SourceSignature}; // 调用者结构化匹配的统一错误。 pub use error::VmError; // 只公开句柄和读取观察结果,不导出可变 Heap。 pub use heap::{ObjectRef, ReadAccess, ReadDependency, ReadSet, TrackedReads, WeakObjectRef}; // 编译器/宿主组装指令,执行器读取解码结果。 pub use instruction::{DecodedInstruction, Instruction, Opcode}; // 宿主实现原生函数并声明参数、返回值和效果。 pub use native::{ CallArity, CallEffect, CallSignature, CallType, ContextNativeFunction, NativeCallable, NativeContext, NativeResult, }; // 编译器字面量、VM 算术和宿主显式转换共用数值 API。 pub use number::{ ArithmeticOp, EndorDecimal, EndorInteger, EndorNumber, EndorNumberObject, EndorRational, EndorReal, }; // 宿主实现载荷及等待协议,保留旧原生函数别名兼容。 pub use object::{ AwaitPoll, CompareOp, EndorNativeCall, EndorNativeFunctionObject, EndorObject, NativeCall, NativeFunction, ObjectHeader, ObjectPayload, Record, Value, }; // 独立存储的主要入口,VM 也持有同一门面。 pub use store::ObjectStore; // 宿主注册类型/能力,执行器检查构造和调用契约。 pub use types::{ AnnotationType, ClassField, EndorTraitObject, EndorTypeObject, MethodRequirement, RootTypes, TypeConstructor, TypedMethodRequirement, };