pub trait SchemaLoader: Send + Sync {
// Required methods
fn load_domain(&self, name: &str) -> Result<DomainInfo>;
fn load_predicate(&self, name: &str) -> Result<PredicateInfo>;
fn has_domain(&self, name: &str) -> bool;
fn has_predicate(&self, name: &str) -> bool;
fn list_domains(&self) -> Result<Vec<String>>;
fn list_predicates(&self) -> Result<Vec<String>>;
// Provided methods
fn load_domains_batch(&self, names: &[String]) -> Result<Vec<DomainInfo>> { ... }
fn load_predicates_batch(
&self,
names: &[String],
) -> Result<Vec<PredicateInfo>> { ... }
}Expand description
A loader trait for fetching schema elements on demand.
Implementations can load from files, databases, or remote services.
Required Methods§
Sourcefn load_domain(&self, name: &str) -> Result<DomainInfo>
fn load_domain(&self, name: &str) -> Result<DomainInfo>
Load a domain by name.
Sourcefn load_predicate(&self, name: &str) -> Result<PredicateInfo>
fn load_predicate(&self, name: &str) -> Result<PredicateInfo>
Load a predicate by name.
Sourcefn has_domain(&self, name: &str) -> bool
fn has_domain(&self, name: &str) -> bool
Check if a domain exists without loading it.
Sourcefn has_predicate(&self, name: &str) -> bool
fn has_predicate(&self, name: &str) -> bool
Check if a predicate exists without loading it.
Sourcefn list_domains(&self) -> Result<Vec<String>>
fn list_domains(&self) -> Result<Vec<String>>
List all available domain names.
Sourcefn list_predicates(&self) -> Result<Vec<String>>
fn list_predicates(&self) -> Result<Vec<String>>
List all available predicate names.
Provided Methods§
Sourcefn load_domains_batch(&self, names: &[String]) -> Result<Vec<DomainInfo>>
fn load_domains_batch(&self, names: &[String]) -> Result<Vec<DomainInfo>>
Load a batch of domains by name.
Sourcefn load_predicates_batch(&self, names: &[String]) -> Result<Vec<PredicateInfo>>
fn load_predicates_batch(&self, names: &[String]) -> Result<Vec<PredicateInfo>>
Load a batch of predicates by name.