reactive_graph_instance_system_api/flow_instance_import_export_manager.rs
1// use async_trait::async_trait;
2// // use reactive_graph_core_plugins::EntityInstanceCreationError;
3//
4// // use crate::api::RelationInstanceCreationError;
5// use reactive_graph_graph::FlowInstance;
6//
7// #[derive(Debug)]
8// pub enum FlowInstanceCreationError {
9// EntityInstanceCreationError(EntityInstanceCreationError),
10// RelationInstanceCreationError(RelationInstanceCreationError),
11// }
12//
13// impl From<EntityInstanceCreationError> for FlowInstanceCreationError {
14// fn from(e: EntityInstanceCreationError) -> Self {
15// FlowInstanceCreationError::EntityInstanceCreationError(e)
16// }
17// }
18//
19// impl From<RelationInstanceCreationError> for FlowInstanceCreationError {
20// fn from(e: RelationInstanceCreationError) -> Self {
21// FlowInstanceCreationError::RelationInstanceCreationError(e)
22// }
23// }
24//
25// #[derive(Debug)]
26// pub enum FlowInstanceImportError {
27// Io(std::io::Error),
28// Deserialization(serde_json::Error),
29// FlowInstanceCreation(FlowInstanceCreationError),
30// }
31//
32// impl From<std::io::Error> for FlowInstanceImportError {
33// fn from(e: std::io::Error) -> Self {
34// FlowInstanceImportError::Io(e)
35// }
36// }
37//
38// impl From<serde_json::Error> for FlowInstanceImportError {
39// fn from(e: serde_json::Error) -> Self {
40// FlowInstanceImportError::Deserialization(e)
41// }
42// }
43//
44// impl From<FlowInstanceCreationError> for FlowInstanceImportError {
45// fn from(e: FlowInstanceCreationError) -> Self {
46// FlowInstanceImportError::FlowInstanceCreation(e)
47// }
48// }
49//
50// #[async_trait]
51// pub trait FlowInstanceManager: Send + Sync {
52// fn create(&self, flow_instance: FlowInstance) -> Result<FlowInstance, FlowInstanceCreationError>;
53//
54// fn commit(&self, flow_instance: FlowInstance);
55//
56// fn delete(&self, flow_instance: FlowInstance);
57//
58// fn import(&self, path: &str) -> Result<FlowInstance, FlowInstanceImportError>;
59//
60// fn export(&self, flow_instance: FlowInstance, path: &str);
61// }