pub struct Artifact {
pub id: Uuid,
pub artifact_type: ArtifactType,
pub file_path: PathBuf,
pub size_bytes: u64,
pub content_hash: String,
pub mime_type: String,
pub content: Vec<u8>,
pub created_at: DateTime<Utc>,
pub metadata: HashMap<String, Value>,
}Expand description
Model artifact
Fields§
§id: UuidUnique identifier
artifact_type: ArtifactTypeArtifact type
file_path: PathBufOriginal file path
size_bytes: u64File size in bytes
content_hash: StringContent hash (SHA256)
mime_type: StringMIME type
content: Vec<u8>Binary content
created_at: DateTime<Utc>Creation timestamp
metadata: HashMap<String, Value>Optional metadata
Implementations§
Source§impl Artifact
impl Artifact
Sourcepub fn new(
artifact_type: ArtifactType,
file_path: PathBuf,
content: Vec<u8>,
) -> Self
pub fn new( artifact_type: ArtifactType, file_path: PathBuf, content: Vec<u8>, ) -> Self
Create a new artifact
Sourcepub async fn from_file(
artifact_type: ArtifactType,
file_path: PathBuf,
) -> Result<Self>
pub async fn from_file( artifact_type: ArtifactType, file_path: PathBuf, ) -> Result<Self>
Create artifact from file
Sourcepub fn with_metadata(self, key: String, value: Value) -> Self
pub fn with_metadata(self, key: String, value: Value) -> Self
Add metadata
Sourcepub fn verify_integrity(&self) -> bool
pub fn verify_integrity(&self) -> bool
Verify content integrity
Sourcepub fn file_extension(&self) -> Option<&str>
pub fn file_extension(&self) -> Option<&str>
Get file extension
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Artifact
impl<'de> Deserialize<'de> for Artifact
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Artifact
impl RefUnwindSafe for Artifact
impl Send for Artifact
impl Sync for Artifact
impl Unpin for Artifact
impl UnsafeUnpin for Artifact
impl UnwindSafe for Artifact
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> ConfigSerializable for Twhere
T: Serialize + for<'de> Deserialize<'de>,
impl<T> ConfigSerializable for Twhere
T: Serialize + for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more