pub struct FileArtifactService { /* private fields */ }Expand description
Filesystem-backed artifact storage with versioning.
Each artifact version is stored in its own directory with a data file
and a metadata.json sidecar. Session IDs and artifact names are sanitized
to prevent path traversal attacks.
Implementations§
Trait Implementations§
Source§impl ArtifactService for FileArtifactService
impl ArtifactService for FileArtifactService
Source§fn save<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
artifact: Artifact,
) -> Pin<Box<dyn Future<Output = Result<ArtifactMetadata, ArtifactError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn save<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
artifact: Artifact,
) -> Pin<Box<dyn Future<Output = Result<ArtifactMetadata, ArtifactError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Save an artifact, creating a new version if it already exists.
Source§fn load<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
name: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Artifact>, ArtifactError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn load<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
name: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Artifact>, ArtifactError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Load the latest version of an artifact.
Source§fn load_version<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
name: &'life2 str,
version: u32,
) -> Pin<Box<dyn Future<Output = Result<Option<Artifact>, ArtifactError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn load_version<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
name: &'life2 str,
version: u32,
) -> Pin<Box<dyn Future<Output = Result<Option<Artifact>, ArtifactError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Load a specific version of an artifact.
Source§fn list<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<ArtifactMetadata>, ArtifactError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<ArtifactMetadata>, ArtifactError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
List all artifact metadata for a session.
Source§fn delete<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
name: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), ArtifactError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn delete<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
name: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), ArtifactError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Delete all versions of an artifact.
Auto Trait Implementations§
impl Freeze for FileArtifactService
impl RefUnwindSafe for FileArtifactService
impl Send for FileArtifactService
impl Sync for FileArtifactService
impl Unpin for FileArtifactService
impl UnsafeUnpin for FileArtifactService
impl UnwindSafe for FileArtifactService
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more