ModelLoader

Struct ModelLoader 

Source
pub struct ModelLoader<B>
where B: StorageBackend,
{ /* private fields */ }
Expand description

Model loader that uses a storage backend

Implementations§

Source§

impl<B> ModelLoader<B>
where B: StorageBackend,

Source

pub fn new(storage: B) -> ModelLoader<B>

Create a new model loader with the given storage backend

Source

pub async fn load_model( &self, workspace_path: &str, ) -> Result<ModelLoadResult, StorageError>

Load a model from storage

For file-based backends (FileSystemStorageBackend, BrowserStorageBackend):

  • Loads from flat files in workspace root using naming convention
  • Loads from relationships.yaml file

For API backend (ApiStorageBackend), use load_model_from_api() instead.

Returns the loaded model data and a list of orphaned relationships (relationships that reference non-existent tables).

Source

pub async fn load_domains( &self, workspace_path: &str, ) -> Result<DomainLoadResult, StorageError>

Load all domains from storage

Loads domains and assets from flat files in the workspace root directory. Uses the file naming convention: {workspace}{domain}{system}_{resource}.xxx.yaml

Domain and system information is extracted from filenames and the workspace.yaml file.

Source

pub async fn load_domains_from_list( &self, workspace_path: &str, _domain_directory_names: &[String], ) -> Result<DomainLoadResult, StorageError>

👎Deprecated since 2.0.0: Use load_domains() with flat file structure instead. Domain directories are no longer supported.

Load domains from explicit domain directory names (DEPRECATED)

This method is deprecated. Use load_domains() with flat file structure instead.

Source

pub async fn load_decisions( &self, workspace_path: &str, ) -> Result<DecisionLoadResult, StorageError>

Load all decisions from workspace using flat file structure

Loads all .madr.yaml files from the workspace directory and parses them into Decision structs using DecisionImporter.

§Arguments
  • workspace_path - Path to the workspace directory
§Returns

A DecisionLoadResult containing loaded decisions and any errors encountered

Source

pub async fn load_decision_index( &self, workspace_path: &str, ) -> Result<Option<DecisionIndex>, StorageError>

Load the decision index from decisions.yaml

§Arguments
  • workspace_path - Path to the workspace directory
§Returns

The DecisionIndex if found, or None if decisions.yaml doesn’t exist

Source

pub async fn load_knowledge( &self, workspace_path: &str, ) -> Result<KnowledgeLoadResult, StorageError>

Load all knowledge articles from workspace using flat file structure

Loads all .kb.yaml files from the workspace directory and parses them into KnowledgeArticle structs using KnowledgeImporter.

§Arguments
  • workspace_path - Path to the workspace directory
§Returns

A KnowledgeLoadResult containing loaded articles and any errors encountered

Source

pub async fn load_knowledge_index( &self, workspace_path: &str, ) -> Result<Option<KnowledgeIndex>, StorageError>

Load the knowledge index from knowledge.yaml

§Arguments
  • workspace_path - Path to the workspace directory
§Returns

The KnowledgeIndex if found, or None if knowledge.yaml doesn’t exist

Source

pub async fn load_knowledge_by_domain( &self, workspace_path: &str, domain: &str, ) -> Result<KnowledgeLoadResult, StorageError>

Load knowledge articles by domain

Filters knowledge articles by their domain field.

§Arguments
  • workspace_path - Path to the workspace directory
  • domain - Domain name to filter by
§Returns

A KnowledgeLoadResult containing matching articles and any errors encountered

Source

pub async fn load_decisions_by_domain( &self, workspace_path: &str, domain: &str, ) -> Result<DecisionLoadResult, StorageError>

Load decisions by domain

Filters decisions by their domain field.

§Arguments
  • workspace_path - Path to the workspace directory
  • domain - Domain name to filter by
§Returns

A DecisionLoadResult containing matching decisions and any errors encountered

Source

pub async fn load_workspace( &self, workspace_path: &str, ) -> Result<Option<Workspace>, StorageError>

Load workspace configuration from workspace.yaml

§Arguments
  • workspace_path - Path to the workspace directory
§Returns

The Workspace configuration if found, or None if workspace.yaml doesn’t exist

Source

pub async fn save_workspace( &self, workspace_path: &str, workspace: &Workspace, ) -> Result<(), StorageError>

Save workspace configuration to workspace.yaml

§Arguments
  • workspace_path - Path to the workspace directory
  • workspace - The Workspace configuration to save
Source

pub async fn load_domain_config( &self, domain_dir: &str, ) -> Result<Option<DomainConfig>, StorageError>

Load domain configuration from domain.yaml

§Arguments
  • domain_dir - Path to the domain directory
§Returns

The DomainConfig if found, or None if domain.yaml doesn’t exist

Source

pub async fn save_domain_config( &self, domain_dir: &str, config: &DomainConfig, ) -> Result<(), StorageError>

Save domain configuration to domain.yaml

§Arguments
  • domain_dir - Path to the domain directory
  • config - The DomainConfig to save
Source

pub async fn load_domain_config_by_name( &self, workspace_path: &str, domain_name: &str, ) -> Result<Option<DomainConfig>, StorageError>

Load domain configuration by name from a workspace

§Arguments
  • workspace_path - Path to the workspace directory
  • domain_name - Name of the domain (folder name)
§Returns

The DomainConfig if found

Source

pub async fn get_domain_id( &self, domain_dir: &str, ) -> Result<Option<Uuid>, StorageError>

👎Deprecated since 2.0.0: Domain directories are no longer supported. Domain info is in workspace.yaml

Get domain ID from domain.yaml, or None if not found

Get domain ID from domain.yaml (DEPRECATED)

This method is deprecated. Domain information is now stored in workspace.yaml.

Source

pub async fn load_all_domain_configs( &self, workspace_path: &str, ) -> Result<Vec<DomainConfig>, StorageError>

👎Deprecated since 2.0.0: Domain directories are no longer supported. Use load_workspace() instead

Load all domain configurations from a workspace (DEPRECATED)

This method is deprecated. Use load_workspace() and access domains from the workspace.

Auto Trait Implementations§

§

impl<B> Freeze for ModelLoader<B>
where B: Freeze,

§

impl<B> RefUnwindSafe for ModelLoader<B>
where B: RefUnwindSafe,

§

impl<B> Send for ModelLoader<B>

§

impl<B> Sync for ModelLoader<B>

§

impl<B> Unpin for ModelLoader<B>
where B: Unpin,

§

impl<B> UnwindSafe for ModelLoader<B>
where B: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more