pub struct ContentHash {
pub id: Uuid,
pub hash: String,
pub size_bytes: i64,
pub storage_key: String,
pub storage_backend: StorageBackend,
pub reference_count: i32,
pub first_uploaded_at: DateTime<Utc>,
pub last_referenced_at: DateTime<Utc>,
pub fingerprint: Option<String>,
pub metadata: AuditMetadata,
}Fields§
§id: Uuid§hash: String§size_bytes: i64§storage_key: String§storage_backend: StorageBackend§reference_count: i32§first_uploaded_at: DateTime<Utc>§last_referenced_at: DateTime<Utc>§fingerprint: Option<String>§metadata: AuditMetadataImplementations§
Source§impl ContentHash
impl ContentHash
Sourcepub fn increment_reference(&mut self) -> Result<(), DedupError>
pub fn increment_reference(&mut self) -> Result<(), DedupError>
Increment reference count
Sourcepub fn decrement_reference(&mut self) -> Result<bool, DedupError>
pub fn decrement_reference(&mut self) -> Result<bool, DedupError>
Decrement reference count (min 0), return true if now 0 (eligible for deletion)
Sourcepub fn can_delete(&self) -> bool
pub fn can_delete(&self) -> bool
Check if content can be deleted (ref_count == 0)
Sourcepub fn storage_saved(&self) -> i64
pub fn storage_saved(&self) -> i64
Calculate storage saved by deduplication: size_bytes * (reference_count - 1)
Sourcepub fn days_since_last_reference(&self) -> i32
pub fn days_since_last_reference(&self) -> i32
Days since last reference
Source§impl ContentHash
impl ContentHash
Sourcepub fn builder() -> ContentHashBuilder
pub fn builder() -> ContentHashBuilder
Create a builder for ContentHash
Sourcepub fn new(
hash: String,
size_bytes: i64,
storage_key: String,
storage_backend: StorageBackend,
reference_count: i32,
first_uploaded_at: DateTime<Utc>,
last_referenced_at: DateTime<Utc>,
) -> Self
pub fn new( hash: String, size_bytes: i64, storage_key: String, storage_backend: StorageBackend, reference_count: i32, first_uploaded_at: DateTime<Utc>, last_referenced_at: DateTime<Utc>, ) -> Self
Create a new ContentHash with required fields
Sourcepub fn typed_id(&self) -> ContentHashId
pub fn typed_id(&self) -> ContentHashId
Get a strongly-typed ID for this entity
Sourcepub fn created_at(&self) -> Option<&DateTime<Utc>>
pub fn created_at(&self) -> Option<&DateTime<Utc>>
Get when this entity was created
Sourcepub fn updated_at(&self) -> Option<&DateTime<Utc>>
pub fn updated_at(&self) -> Option<&DateTime<Utc>>
Get when this entity was last updated
Sourcepub fn is_deleted(&self) -> bool
pub fn is_deleted(&self) -> bool
Check if this entity is soft deleted
Sourcepub fn deleted_at(&self) -> Option<&DateTime<Utc>>
pub fn deleted_at(&self) -> Option<&DateTime<Utc>>
Get when this entity was deleted
Sourcepub fn created_by(&self) -> Option<&Uuid>
pub fn created_by(&self) -> Option<&Uuid>
Get who created this entity
Sourcepub fn updated_by(&self) -> Option<&Uuid>
pub fn updated_by(&self) -> Option<&Uuid>
Get who last updated this entity
Sourcepub fn deleted_by(&self) -> Option<&Uuid>
pub fn deleted_by(&self) -> Option<&Uuid>
Get who deleted this entity
Sourcepub fn with_fingerprint(self, value: String) -> Self
pub fn with_fingerprint(self, value: String) -> Self
Set the fingerprint field (chainable)
Sourcepub fn apply_patch(&mut self, fields: HashMap<String, Value>)
pub fn apply_patch(&mut self, fields: HashMap<String, Value>)
Apply partial updates from a map of field name to JSON value
Trait Implementations§
Source§impl ApplyUpdateDto<UpdateContentHashDto> for ContentHash
impl ApplyUpdateDto<UpdateContentHashDto> for ContentHash
fn apply_update(self, dto: UpdateContentHashDto) -> ServiceResult<Self>
Source§impl Clone for ContentHash
impl Clone for ContentHash
Source§impl CrudRepository<ContentHash> for ContentHashRepository
impl CrudRepository<ContentHash> for ContentHashRepository
Hydrate
?include= relations: fetch rows from table by id list, as JSON
(raw row_to_json). table comes from EntityRepoMeta::relations()
(generator-emitted), never client input. Default: no expansion. The
Postgres-backed generated repos override this via impl_crud_repository!.Source§fn create<'life0, 'async_trait>(
&'life0 self,
entity: ContentHash,
) -> Pin<Box<dyn Future<Output = Result<ContentHash, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create<'life0, 'async_trait>(
&'life0 self,
entity: ContentHash,
) -> Pin<Box<dyn Future<Output = Result<ContentHash, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Create a new entity
Source§fn find_by_id<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<ContentHash>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find_by_id<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<ContentHash>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Find entity by ID (excluding soft-deleted)
Source§fn find_by_id_including_deleted<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<ContentHash>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find_by_id_including_deleted<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<ContentHash>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Find entity by ID (including soft-deleted, for trash operations)
Source§fn update<'life0, 'async_trait>(
&'life0 self,
entity: ContentHash,
) -> Pin<Box<dyn Future<Output = Result<ContentHash, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update<'life0, 'async_trait>(
&'life0 self,
entity: ContentHash,
) -> Pin<Box<dyn Future<Output = Result<ContentHash, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Update an existing entity
Source§fn soft_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn soft_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Soft delete an entity
Source§fn restore<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<ContentHash>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn restore<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<ContentHash>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Restore a soft-deleted entity
Source§fn hard_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn hard_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Permanently delete an entity
Source§fn list<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
) -> Pin<Box<dyn Future<Output = Result<(Vec<ContentHash>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
) -> Pin<Box<dyn Future<Output = Result<(Vec<ContentHash>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List entities with pagination (excluding soft-deleted)
Source§fn list_filtered<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(Vec<ContentHash>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_filtered<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(Vec<ContentHash>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List entities with pagination and filters (excluding soft-deleted) Read more
Source§fn list_filtered_with_info<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(Vec<ContentHash>, PaginationInfo), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_filtered_with_info<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(Vec<ContentHash>, PaginationInfo), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
list_filtered, carrying the pagination info (cursor positions
included) so the HTTP layer can surface keyset paging. Default: the
tuple form with the cursor fields absent; the generated Postgres
repositories override this with the real keyset walk.Source§fn table_name(&self) -> Option<&str>
fn table_name(&self) -> Option<&str>
Group and reduce entities under the same filters as
list_filtered. Read morefn aggregate_filtered<'life0, 'life1, 'async_trait>(
&'life0 self,
spec: &'life1 AggregateSpec,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<AggregateResult, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn list_deleted<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
) -> Pin<Box<dyn Future<Output = Result<(Vec<ContentHash>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_deleted<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
) -> Pin<Box<dyn Future<Output = Result<(Vec<ContentHash>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List soft-deleted entities with pagination
Source§fn count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Count all entities (excluding soft-deleted)
Source§fn count_deleted<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count_deleted<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Count soft-deleted entities
Source§fn bulk_create<'life0, 'async_trait>(
&'life0 self,
entities: Vec<ContentHash>,
) -> Pin<Box<dyn Future<Output = Result<Vec<ContentHash>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn bulk_create<'life0, 'async_trait>(
&'life0 self,
entities: Vec<ContentHash>,
) -> Pin<Box<dyn Future<Output = Result<Vec<ContentHash>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Bulk create entities
Source§fn empty_trash<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn empty_trash<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Permanently delete all soft-deleted entities
Source§fn bulk_soft_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn bulk_soft_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Soft-delete many entities by id. Returns the number affected.
Source§fn bulk_restore<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<ContentHash>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn bulk_restore<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<ContentHash>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Restore many soft-deleted entities by id. Returns the restored entities.
Source§fn bulk_hard_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn bulk_hard_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Permanently delete many entities by id. Returns the number affected.
Source§fn restore_all<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ContentHash>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn restore_all<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ContentHash>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Restore every soft-deleted entity. Returns the restored entities.
Source§fn bulk_update<'life0, 'async_trait>(
&'life0 self,
entities: Vec<ContentHash>,
) -> Pin<Box<dyn Future<Output = Result<Vec<ContentHash>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn bulk_update<'life0, 'async_trait>(
&'life0 self,
entities: Vec<ContentHash>,
) -> Pin<Box<dyn Future<Output = Result<Vec<ContentHash>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Update many entities atomically. Returns the updated entities.
Source§impl Debug for ContentHash
impl Debug for ContentHash
Source§impl<'de> Deserialize<'de> for ContentHash
impl<'de> Deserialize<'de> for ContentHash
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
Source§impl Entity for ContentHash
impl Entity for ContentHash
Source§impl EntityRepoMeta for ContentHash
impl EntityRepoMeta for ContentHash
Source§fn column_types() -> HashMap<String, String>
fn column_types() -> HashMap<String, String>
PostgreSQL type hints for filter/sort (e.g.
{"id": "uuid"}).Source§fn search_fields() -> &'static [&'static str]
fn search_fields() -> &'static [&'static str]
Text columns to include in full-text / ILIKE search.
Source§fn private_fields() -> &'static [&'static str]
fn private_fields() -> &'static [&'static str]
Response fields visible only to the row owner and platform/root callers
(
@private). Stripped for everyone else.Source§fn secret_fields() -> &'static [&'static str]
fn secret_fields() -> &'static [&'static str]
Response fields (camelCase) that never leave the server (
@sensitive): no
caller is served them, a platform caller or the row’s owner included.Source§fn relation_secret_fields(_relation: &str) -> &'static [&'static str]
fn relation_secret_fields(_relation: &str) -> &'static [&'static str]
The
@sensitive fields (camelCase response keys) of the model a to-one
relation points at, stripped from the related row an ?include= expands.
Keyed by the relation name of relations. Default: none.Source§fn owner_field() -> Option<&'static str>
fn owner_field() -> Option<&'static str>
The response field (camelCase) holding the owner/company id (
@owner),
compared against the caller’s access scope to decide private-field
visibility. None = the entity has no owner concept.Source§impl From<&ContentHash> for ContentHashResponseDto
impl From<&ContentHash> for ContentHashResponseDto
Source§fn from(entity: &ContentHash) -> Self
fn from(entity: &ContentHash) -> Self
Converts to this type from the input type.
Source§impl From<ContentHash> for ContentHashResponseDto
impl From<ContentHash> for ContentHashResponseDto
Source§fn from(entity: ContentHash) -> Self
fn from(entity: ContentHash) -> Self
Converts to this type from the input type.
Source§impl From<ContentHash> for ContentHashSummaryDto
impl From<ContentHash> for ContentHashSummaryDto
Source§fn from(entity: ContentHash) -> Self
fn from(entity: ContentHash) -> Self
Converts to this type from the input type.
Source§impl From<CreateContentHashDto> for ContentHash
impl From<CreateContentHashDto> for ContentHash
Source§fn from(dto: CreateContentHashDto) -> Self
fn from(dto: CreateContentHashDto) -> Self
Converts to this type from the input type.
Source§impl FromCreateDto<CreateContentHashDto> for ContentHash
impl FromCreateDto<CreateContentHashDto> for ContentHash
fn from_create_dto(dto: CreateContentHashDto) -> ServiceResult<Self>
Source§impl<'a, R: Row> FromRow<'a, R> for ContentHashwhere
&'a str: ColumnIndex<R>,
Uuid: Decode<'a, R::Database> + Type<R::Database>,
String: Decode<'a, R::Database> + Type<R::Database>,
i64: Decode<'a, R::Database> + Type<R::Database>,
StorageBackend: Decode<'a, R::Database> + Type<R::Database>,
i32: Decode<'a, R::Database> + Type<R::Database>,
DateTime<Utc>: Decode<'a, R::Database> + Type<R::Database>,
Option<String>: Decode<'a, R::Database> + Type<R::Database>,
Json<AuditMetadata>: Decode<'a, R::Database> + Type<R::Database>,
impl<'a, R: Row> FromRow<'a, R> for ContentHashwhere
&'a str: ColumnIndex<R>,
Uuid: Decode<'a, R::Database> + Type<R::Database>,
String: Decode<'a, R::Database> + Type<R::Database>,
i64: Decode<'a, R::Database> + Type<R::Database>,
StorageBackend: Decode<'a, R::Database> + Type<R::Database>,
i32: Decode<'a, R::Database> + Type<R::Database>,
DateTime<Utc>: Decode<'a, R::Database> + Type<R::Database>,
Option<String>: Decode<'a, R::Database> + Type<R::Database>,
Json<AuditMetadata>: Decode<'a, R::Database> + Type<R::Database>,
Source§impl PersistentEntity for ContentHash
impl PersistentEntity for ContentHash
Source§fn set_entity_id(&mut self, id: String)
fn set_entity_id(&mut self, id: String)
Set the entity’s unique identifier
Source§fn set_created_at(&mut self, ts: DateTime<Utc>)
fn set_created_at(&mut self, ts: DateTime<Utc>)
Set creation timestamp
Source§fn set_updated_at(&mut self, ts: DateTime<Utc>)
fn set_updated_at(&mut self, ts: DateTime<Utc>)
Set last update timestamp
Source§fn is_deleted(&self) -> bool
fn is_deleted(&self) -> bool
Check if entity is soft-deleted
Source§fn mark_deleted(&mut self)
fn mark_deleted(&mut self)
Mark entity as deleted (soft delete)
Source§fn generate_id() -> String
fn generate_id() -> String
Generate a new ID for this entity type
Source§fn write_protected_fields() -> &'static [&'static str]
fn write_protected_fields() -> &'static [&'static str]
Fields that a generic write (PUT, PATCH and their bulk forms) may not
change, by their serialized name. Read more
Source§impl Serialize for ContentHash
impl Serialize for ContentHash
Source§impl WriteGuard<ContentHash> for ContentHashRowRules
impl WriteGuard<ContentHash> for ContentHashRowRules
fn check<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 WriteCtx<'life2, ContentHash>,
) -> Pin<Box<dyn Future<Output = GuardOutcome> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Auto Trait Implementations§
impl Freeze for ContentHash
impl RefUnwindSafe for ContentHash
impl Send for ContentHash
impl Sync for ContentHash
impl Unpin for ContentHash
impl UnsafeUnpin for ContentHash
impl UnwindSafe for ContentHash
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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<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 moreCreates a shared type from an unshared type.