reactive_graph_instance_system_api/
entity_instance_import_export_manager.rs

1use async_trait::async_trait;
2use reactive_graph_lifecycle::Lifecycle;
3use springtime_di::injectable;
4use uuid::Uuid;
5
6use reactive_graph_reactive_model_impl::ReactiveEntity;
7
8use crate::EntityInstanceExportError;
9use crate::EntityInstanceImportError;
10
11#[injectable]
12#[async_trait]
13pub trait EntityInstanceImportExportManager: Send + Sync + Lifecycle {
14    /// Imports an entity instance from the given path.
15    async fn import(&self, path: &str) -> Result<ReactiveEntity, EntityInstanceImportError>;
16
17    /// Exports an entity instance to the given path.
18    async fn export(&self, id: Uuid, path: &str) -> Result<(), EntityInstanceExportError>;
19}