pub struct AssetEntry {
pub filename: String,
pub source: Option<PathBuf>,
pub derive: Option<AssetDerive>,
pub blake3: BlakeHash,
}Expand description
A single file entry in the static-asset catalog.
One [[asset]] row per bucket object. Multiple rows for different variants
(e.g. q5 and q4 whisper models) are fine — each declares its own filename
and hash. The reconciler treats the catalog as exhaustive and append-only:
new rows trigger a PUT; removed rows surface as drift (never a DELETE).
Source-vs-derive XOR. Exactly one of source or derive must be set.
Legacy local-bytes assets keep source = "..."; W164 derived assets set
[asset.derive] instead. validate::shape_static_asset enforces the
XOR; both-set and neither-set are hard ShapeError::Field.
Fields§
§filename: StringDestination path within the bucket, e.g.
"whisper/distil-large-v3-q5_1.bin". Must be unique in the catalog.
Used as the S3 object key by the reconciler.
source: Option<PathBuf>Path to a local source file, relative to the workload.toml directory.
Mutually exclusive with derive.
derive: Option<AssetDerive>Declared fetch (+ optional transform) provenance chain. The reconciler
materializes the bytes into a content-addressed cache; the cache path
then replaces source for the rest of the upload pipeline. Mutually
exclusive with source.
blake3: BlakeHashExpected BLAKE3 hash of the final asset bytes (64 hex characters).
For source mode, this is hashed before upload. For derive mode,
it’s the post-transform (or post-fetch when no transform) output.
Mismatch aborts the upload.
Trait Implementations§
Source§impl Clone for AssetEntry
impl Clone for AssetEntry
Source§fn clone(&self) -> AssetEntry
fn clone(&self) -> AssetEntry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AssetEntry
impl Debug for AssetEntry
Source§impl<'de> Deserialize<'de> for AssetEntry
impl<'de> Deserialize<'de> for AssetEntry
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>,
impl Eq for AssetEntry
Source§impl PartialEq for AssetEntry
impl PartialEq for AssetEntry
Source§fn eq(&self, other: &AssetEntry) -> bool
fn eq(&self, other: &AssetEntry) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for AssetEntry
impl Serialize for AssetEntry
impl StructuralPartialEq for AssetEntry
Source§impl TS for AssetEntry
impl TS for AssetEntry
Source§type WithoutGenerics = AssetEntry
type WithoutGenerics = AssetEntry
WithoutGenerics should just be Self.
If the type does have generic parameters, then all generic parameters must be replaced with
a dummy type, e.g ts_rs::Dummy or (). The only requirement for these dummy types is that
EXPORT_TO must be None. Read moreSource§type OptionInnerType = AssetEntry
type OptionInnerType = AssetEntry
std::option::Option<T>, then this associated type is set to T.
All other implementations of TS should set this type to Self instead.Source§fn docs() -> Option<String>
fn docs() -> Option<String>
TS is derived, docs are
automatically read from your doc comments or #[doc = ".."] attributesSource§fn decl_concrete(cfg: &Config) -> String
fn decl_concrete(cfg: &Config) -> String
TS::decl().
If this type is not generic, then this function is equivalent to TS::decl().Source§fn decl(cfg: &Config) -> String
fn decl(cfg: &Config) -> String
type User = { user_id: number, ... }.
This function will panic if the type has no declaration. Read moreSource§fn inline(cfg: &Config) -> String
fn inline(cfg: &Config) -> String
{ user_id: number }.
This function will panic if the type cannot be inlined.Source§fn inline_flattened(cfg: &Config) -> String
fn inline_flattened(cfg: &Config) -> String
Source§fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn output_path() -> Option<PathBuf>
fn output_path() -> Option<PathBuf>
T should be exported, relative to the output directory.
The returned path does not include any base directory. Read moreSource§fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
Source§fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export_all. Read moreSource§fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export. Read moreSource§fn export_to_string(cfg: &Config) -> Result<String, ExportError>where
Self: 'static,
fn export_to_string(cfg: &Config) -> Result<String, ExportError>where
Self: 'static,
Auto Trait Implementations§
impl Freeze for AssetEntry
impl RefUnwindSafe for AssetEntry
impl Send for AssetEntry
impl Sync for AssetEntry
impl Unpin for AssetEntry
impl UnsafeUnpin for AssetEntry
impl UnwindSafe for AssetEntry
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.