Skip to main content

sim_lib_namespace/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3//! Namespace records and capability-aware source module lifecycle for the SIM runtime.
4//!
5//! The kernel defines the registry and operation contracts; this crate supplies
6//! the concrete namespace organ (namespaces, import options, export/rename/
7//! shadow handling).
8
9mod claims;
10mod module;
11mod namespace;
12mod specifier;
13
14pub use claims::{
15    namespace_export_op_key, namespace_import_op_key, namespace_module_op_key, namespace_op_keys,
16    namespace_organ_symbol, namespace_package_op_key, namespace_rename_op_key,
17    namespace_shadow_op_key, publish_namespace_organ_claims,
18    publish_namespace_organ_claims_for_lib,
19};
20pub use module::{
21    ModuleIdentity, ModuleInstance, ModuleLoader, ModuleRequest, ModuleResolutionOutcome,
22    ModuleResolutionReceipt, SourceModulePolicy, module_load_capability,
23};
24pub use namespace::{
25    ImportOptions, Namespace, NamespaceBindingSource, NamespaceEntry, NamespaceKind,
26    namespace_shadow_conflict_symbol,
27};
28pub use specifier::{
29    IdentitySpecifierPolicy, MAX_SPECIFIER_BYTES, MAX_SPECIFIER_CANDIDATES, ModuleSpecifierPolicy,
30    NormalizedSpecifier, SpecifierPolicyRequest, SpecifierRefusal, SpecifierRefusalCode,
31};
32
33/// Cookbook recipes for this lib, embedded at build time.
34pub static RECIPES: sim_cookbook::EmbeddedDir =
35    include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
36
37#[cfg(test)]
38mod tests;