pub struct FileComment {
pub id: Uuid,
pub file_id: Uuid,
pub user_id: Uuid,
pub parent_id: Option<Uuid>,
pub content: String,
pub annotation_region: Option<Value>,
pub mentions: Vec<Uuid>,
pub resolved: bool,
pub resolved_by: Option<Uuid>,
pub resolved_at: Option<DateTime<Utc>>,
pub metadata: AuditMetadata,
/* private fields */
}Fields§
§id: Uuid§file_id: Uuid§user_id: Uuid§parent_id: Option<Uuid>§content: String§annotation_region: Option<Value>§mentions: Vec<Uuid>§resolved: bool§resolved_by: Option<Uuid>§resolved_at: Option<DateTime<Utc>>§metadata: AuditMetadataImplementations§
Source§impl FileComment
impl FileComment
Sourcepub fn has_annotations(&self) -> bool
pub fn has_annotations(&self) -> bool
Check if comment has region annotations
Sourcepub fn get_replies(&self) -> Vec<FileComment>
pub fn get_replies(&self) -> Vec<FileComment>
Get reply comments (aggregate pattern - replies loaded separately via repository)
Sourcepub fn resolve(&mut self, by_user_id: Uuid) -> Result<(), CommentError>
pub fn resolve(&mut self, by_user_id: Uuid) -> Result<(), CommentError>
Mark comment as resolved
Sourcepub fn unresolve(&mut self) -> Result<(), CommentError>
pub fn unresolve(&mut self) -> Result<(), CommentError>
Mark comment as unresolved
Sourcepub fn mention_count(&self) -> i32
pub fn mention_count(&self) -> i32
Count mentioned users
Source§impl FileComment
impl FileComment
Sourcepub fn builder() -> FileCommentBuilder
pub fn builder() -> FileCommentBuilder
Create a builder for FileComment
Sourcepub fn new(
file_id: Uuid,
user_id: Uuid,
content: String,
mentions: Vec<Uuid>,
resolved: bool,
status: CommentStatus,
) -> Self
pub fn new( file_id: Uuid, user_id: Uuid, content: String, mentions: Vec<Uuid>, resolved: bool, status: CommentStatus, ) -> Self
Create a new FileComment with required fields
Sourcepub fn typed_id(&self) -> FileCommentId
pub fn typed_id(&self) -> FileCommentId
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 status(&self) -> &CommentStatus
pub fn status(&self) -> &CommentStatus
Get the current status
Sourcepub fn with_parent_id(self, value: Uuid) -> Self
pub fn with_parent_id(self, value: Uuid) -> Self
Set the parent_id field (chainable)
Sourcepub fn with_annotation_region(self, value: Value) -> Self
pub fn with_annotation_region(self, value: Value) -> Self
Set the annotation_region field (chainable)
Sourcepub fn with_resolved_by(self, value: Uuid) -> Self
pub fn with_resolved_by(self, value: Uuid) -> Self
Set the resolved_by field (chainable)
Sourcepub fn with_resolved_at(self, value: DateTime<Utc>) -> Self
pub fn with_resolved_at(self, value: DateTime<Utc>) -> Self
Set the resolved_at field (chainable)
Sourcepub fn transition_to(
&mut self,
new_state: FileCommentState,
) -> Result<(), StateMachineError>
pub fn transition_to( &mut self, new_state: FileCommentState, ) -> Result<(), StateMachineError>
Transition to a new state via the status state machine.
Returns Err if the transition is not permitted from the current state.
Use this method instead of assigning self.status directly.
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<UpdateFileCommentDto> for FileComment
impl ApplyUpdateDto<UpdateFileCommentDto> for FileComment
fn apply_update(self, dto: UpdateFileCommentDto) -> ServiceResult<Self>
Source§impl Clone for FileComment
impl Clone for FileComment
Source§impl CrudRepository<FileComment> for FileCommentRepository
impl CrudRepository<FileComment> for FileCommentRepository
?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: FileComment,
) -> Pin<Box<dyn Future<Output = Result<FileComment, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create<'life0, 'async_trait>(
&'life0 self,
entity: FileComment,
) -> Pin<Box<dyn Future<Output = Result<FileComment, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn find_by_id<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<FileComment>, 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<FileComment>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn find_by_id_including_deleted<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<FileComment>, 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<FileComment>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn update<'life0, 'async_trait>(
&'life0 self,
entity: FileComment,
) -> Pin<Box<dyn Future<Output = Result<FileComment, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update<'life0, 'async_trait>(
&'life0 self,
entity: FileComment,
) -> Pin<Box<dyn Future<Output = Result<FileComment, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
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,
Source§fn restore<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<FileComment>, 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<FileComment>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
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,
Source§fn list<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
) -> Pin<Box<dyn Future<Output = Result<(Vec<FileComment>, 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<FileComment>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn list_filtered<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(Vec<FileComment>, 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<FileComment>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
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<FileComment>, 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<FileComment>, 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>
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<FileComment>, 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<FileComment>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
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,
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,
Source§fn bulk_create<'life0, 'async_trait>(
&'life0 self,
entities: Vec<FileComment>,
) -> Pin<Box<dyn Future<Output = Result<Vec<FileComment>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn bulk_create<'life0, 'async_trait>(
&'life0 self,
entities: Vec<FileComment>,
) -> Pin<Box<dyn Future<Output = Result<Vec<FileComment>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
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,
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,
Source§fn bulk_restore<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<FileComment>, 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<FileComment>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
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,
Source§fn restore_all<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<FileComment>, 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<FileComment>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn bulk_update<'life0, 'async_trait>(
&'life0 self,
entities: Vec<FileComment>,
) -> Pin<Box<dyn Future<Output = Result<Vec<FileComment>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn bulk_update<'life0, 'async_trait>(
&'life0 self,
entities: Vec<FileComment>,
) -> Pin<Box<dyn Future<Output = Result<Vec<FileComment>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl Debug for FileComment
impl Debug for FileComment
Source§impl<'de> Deserialize<'de> for FileComment
impl<'de> Deserialize<'de> for FileComment
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>,
Source§impl DomainPolicy<FileComment> for FileCommentDomainPolicy
impl DomainPolicy<FileComment> for FileCommentDomainPolicy
Source§fn can_create<'life0, 'life1, 'async_trait>(
&'life0 self,
_entity: &'life1 E,
) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn can_create<'life0, 'life1, 'async_trait>(
&'life0 self,
_entity: &'life1 E,
) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Source§fn can_update<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_current: &'life1 E,
_updated: &'life2 E,
) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn can_update<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_current: &'life1 E,
_updated: &'life2 E,
) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
current to updated state?Source§fn can_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
_entity: &'life1 E,
) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn can_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
_entity: &'life1 E,
) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Source§fn can_restore<'life0, 'life1, 'async_trait>(
&'life0 self,
_entity: &'life1 E,
) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn can_restore<'life0, 'life1, 'async_trait>(
&'life0 self,
_entity: &'life1 E,
) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Source§impl Entity for FileComment
impl Entity for FileComment
Source§impl EntityRepoMeta for FileComment
impl EntityRepoMeta for FileComment
Source§fn column_types() -> HashMap<String, String>
fn column_types() -> HashMap<String, String>
{"id": "uuid"}).Source§fn search_fields() -> &'static [&'static str]
fn search_fields() -> &'static [&'static str]
Source§fn private_fields() -> &'static [&'static str]
fn private_fields() -> &'static [&'static str]
@private). Stripped for everyone else.Source§fn secret_fields() -> &'static [&'static str]
fn secret_fields() -> &'static [&'static str]
@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]
@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>
@owner),
compared against the caller’s access scope to decide private-field
visibility. None = the entity has no owner concept.Source§impl From<&FileComment> for FileCommentResponseDto
impl From<&FileComment> for FileCommentResponseDto
Source§fn from(entity: &FileComment) -> Self
fn from(entity: &FileComment) -> Self
Source§impl From<CreateFileCommentDto> for FileComment
impl From<CreateFileCommentDto> for FileComment
Source§fn from(dto: CreateFileCommentDto) -> Self
fn from(dto: CreateFileCommentDto) -> Self
Source§impl From<FileComment> for FileCommentResponseDto
impl From<FileComment> for FileCommentResponseDto
Source§fn from(entity: FileComment) -> Self
fn from(entity: FileComment) -> Self
Source§impl From<FileComment> for FileCommentSummaryDto
impl From<FileComment> for FileCommentSummaryDto
Source§fn from(entity: FileComment) -> Self
fn from(entity: FileComment) -> Self
Source§impl FromCreateDto<CreateFileCommentDto> for FileComment
impl FromCreateDto<CreateFileCommentDto> for FileComment
fn from_create_dto(dto: CreateFileCommentDto) -> ServiceResult<Self>
Source§impl<'a, R: Row> FromRow<'a, R> for FileCommentwhere
&'a str: ColumnIndex<R>,
Uuid: Decode<'a, R::Database> + Type<R::Database>,
Option<Uuid>: Decode<'a, R::Database> + Type<R::Database>,
String: Decode<'a, R::Database> + Type<R::Database>,
Option<Value>: Decode<'a, R::Database> + Type<R::Database>,
Vec<Uuid>: Decode<'a, R::Database> + Type<R::Database>,
bool: Decode<'a, R::Database> + Type<R::Database>,
Option<DateTime<Utc>>: Decode<'a, R::Database> + Type<R::Database>,
CommentStatus: Decode<'a, R::Database> + Type<R::Database>,
Json<AuditMetadata>: Decode<'a, R::Database> + Type<R::Database>,
impl<'a, R: Row> FromRow<'a, R> for FileCommentwhere
&'a str: ColumnIndex<R>,
Uuid: Decode<'a, R::Database> + Type<R::Database>,
Option<Uuid>: Decode<'a, R::Database> + Type<R::Database>,
String: Decode<'a, R::Database> + Type<R::Database>,
Option<Value>: Decode<'a, R::Database> + Type<R::Database>,
Vec<Uuid>: Decode<'a, R::Database> + Type<R::Database>,
bool: Decode<'a, R::Database> + Type<R::Database>,
Option<DateTime<Utc>>: Decode<'a, R::Database> + Type<R::Database>,
CommentStatus: Decode<'a, R::Database> + Type<R::Database>,
Json<AuditMetadata>: Decode<'a, R::Database> + Type<R::Database>,
Source§impl HasComputedFields for FileComment
Computed fields for FileComment entity
impl HasComputedFields for FileComment
Computed fields for FileComment entity
Source§fn computed_fields(&self) -> ComputedFieldValues
fn computed_fields(&self) -> ComputedFieldValues
Source§impl PersistentEntity for FileComment
impl PersistentEntity for FileComment
Source§fn set_entity_id(&mut self, id: String)
fn set_entity_id(&mut self, id: String)
Source§fn set_created_at(&mut self, ts: DateTime<Utc>)
fn set_created_at(&mut self, ts: DateTime<Utc>)
Source§fn set_updated_at(&mut self, ts: DateTime<Utc>)
fn set_updated_at(&mut self, ts: DateTime<Utc>)
Source§fn is_deleted(&self) -> bool
fn is_deleted(&self) -> bool
Source§fn mark_deleted(&mut self)
fn mark_deleted(&mut self)
Source§fn generate_id() -> String
fn generate_id() -> String
Source§fn write_protected_fields() -> &'static [&'static str]
fn write_protected_fields() -> &'static [&'static str]
Source§impl Serialize for FileComment
impl Serialize for FileComment
Source§impl WriteGuard<FileComment> for FileCommentRowRules
impl WriteGuard<FileComment> for FileCommentRowRules
fn check<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 WriteCtx<'life2, FileComment>,
) -> 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 FileComment
impl RefUnwindSafe for FileComment
impl Send for FileComment
impl Sync for FileComment
impl Unpin for FileComment
impl UnsafeUnpin for FileComment
impl UnwindSafe for FileComment
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
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> ⓘ
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> ⓘ
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