Major Changes:
- Moved Rhai support from rhai_support/ to rhai/ module
- Implemented context-based execution with signatory access control
- Added TypeRegistry for dynamic type registration and object creation
- Refactored engine to use context (Vec<String>) instead of instance
- Removed old runner binary (moved to runner_rust crate)
Rhai Module:
- engine.rs: Core Rhai engine with context-based get_context()
- functions.rs: Rhai function bindings (create_note, create_event, etc.)
- mod.rs: Module exports and organization
Store Improvements:
- TypeRegistry for registering object types and creators
- Generic store uses type registry for dynamic object creation
- Improved error handling and type safety
Documentation:
- RHAI_REFACTOR_COMPLETE.md: Refactoring details
- SIGNATORY_ACCESS_CONTROL.md: Context-based access control
- TYPE_REGISTRY_DESIGN.md: Type registry architecture
- REFACTORING_COMPLETE.md: Overall refactoring summary
- TESTS_COMPLETE.md: Testing documentation
Build Status: ✅ Compiles successfully with minor warnings
30 lines
750 B
Rust
30 lines
750 B
Rust
/// Rhai integration for OSIRIS
|
|
///
|
|
/// Provides OsirisContext - a complete context with HeroDB storage and member management.
|
|
|
|
mod builder;
|
|
mod instance;
|
|
pub mod engine;
|
|
|
|
use crate::objects::note::rhai::register_note_api;
|
|
use crate::objects::event::rhai::register_event_api;
|
|
|
|
// Main exports
|
|
pub use builder::OsirisContextBuilder;
|
|
pub use instance::{
|
|
OsirisContext,
|
|
OsirisInstance,
|
|
register_context_api,
|
|
};
|
|
|
|
pub use engine::{
|
|
create_osiris_engine,
|
|
};
|
|
|
|
/// Register all OSIRIS functions (Note, Event, etc.) in a Rhai engine
|
|
/// This does NOT include context management - use register_context_api for that
|
|
pub fn register_osiris_functions(engine: &mut rhai::Engine) {
|
|
register_note_api(engine);
|
|
register_event_api(engine);
|
|
}
|