Refactor Rhai integration with context-based execution and type registry
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
			
			
This commit is contained in:
		
							
								
								
									
										12
									
								
								src/lib.rs
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								src/lib.rs
									
									
									
									
									
								
							@@ -8,16 +8,14 @@ pub mod interfaces;
 | 
			
		||||
pub mod objects;
 | 
			
		||||
pub mod retrieve;
 | 
			
		||||
pub mod store;
 | 
			
		||||
 | 
			
		||||
#[cfg(feature = "rhai-support")]
 | 
			
		||||
pub mod rhai_support;
 | 
			
		||||
pub mod rhai;
 | 
			
		||||
 | 
			
		||||
pub use error::{Error, Result};
 | 
			
		||||
pub use store::{BaseData, IndexKey, Object, Storable};
 | 
			
		||||
pub use objects::{Event, Note};
 | 
			
		||||
 | 
			
		||||
// OsirisContext is the main type for Rhai integration
 | 
			
		||||
pub use rhai::{OsirisContext, OsirisInstance};
 | 
			
		||||
 | 
			
		||||
// Re-export the derive macro
 | 
			
		||||
pub use osiris_derive::Object as DeriveObject;
 | 
			
		||||
 | 
			
		||||
// OsirisInstance is the main type for Rhai integration
 | 
			
		||||
#[cfg(feature = "rhai-support")]
 | 
			
		||||
pub use rhai_support::OsirisInstance;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user