ModelLoader

Struct ModelLoader 

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

Model loader that uses a storage backend

Implementations§

Source§

impl<B: StorageBackend> ModelLoader<B>

Source

pub fn new(storage: B) -> Self

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 tables/ subdirectory with YAML files
  • 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

Scans the workspace for domain directories and loads each domain along with its associated ODCS tables, ODPS products, and CADS assets.

Domain directories are identified by the presence of a domain.yaml file.

Source

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

Load domains from explicit domain directory names

This is more reliable than load_domains() when you know the domain directory names, as it doesn’t rely on directory discovery which may be limited by the storage backend.

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>

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

This is a helper method used by BPMN/DMN/OpenAPI loaders to get the domain ID.

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

The domain UUID if found in domain.yaml, or None

Source

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

Load all domain configurations from a workspace

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

A vector of all DomainConfig found in 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