pub struct SchemaMerger { /* private fields */ }Expand description
A schema merger with configurable strategies.
Implementations§
Source§impl SchemaMerger
impl SchemaMerger
Sourcepub fn new(strategy: MergeStrategy) -> Self
pub fn new(strategy: MergeStrategy) -> Self
Create a new schema merger with the given strategy.
Sourcepub fn merge(
&self,
base: &SymbolTable,
incoming: &SymbolTable,
) -> Result<MergeResult>
pub fn merge( &self, base: &SymbolTable, incoming: &SymbolTable, ) -> Result<MergeResult>
Merge two symbol tables according to the configured strategy.
§Examples
use tensorlogic_adapters::{SymbolTable, DomainInfo, SchemaMerger, MergeStrategy};
let mut base = SymbolTable::new();
base.add_domain(DomainInfo::new("Person", 100)).unwrap();
let mut incoming = SymbolTable::new();
incoming.add_domain(DomainInfo::new("Organization", 50)).unwrap();
let merger = SchemaMerger::new(MergeStrategy::Union);
let result = merger.merge(&base, &incoming).unwrap();
assert_eq!(result.merged.domains.len(), 2);Trait Implementations§
Auto Trait Implementations§
impl Freeze for SchemaMerger
impl RefUnwindSafe for SchemaMerger
impl Send for SchemaMerger
impl Sync for SchemaMerger
impl Unpin for SchemaMerger
impl UnwindSafe for SchemaMerger
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more