Struct auditor::domain::RecordUpdate
source · pub struct RecordUpdate {
pub record_id: ValidName,
pub meta: Option<ValidMeta>,
pub components: Vec<Component>,
pub start_time: Option<DateTime<Utc>>,
pub stop_time: DateTime<Utc>,
}
Expand description
RecordUpdate
represents a single accountable unit that is used to set the stop_time
of a
Record
.
Initially, records are added to Auditor by pushing a RecordAdd
, where the stop_time
field
is optional. To later set the stop_time
of the record, push a RecordUpdate
with the same
record_id
to auditor.
Use the constructor to build a new record.
§Note
All strings must not include the characters /()"<>\{}
.
When created using the constructor, the record is already valid in terms of all checks that Auditor performs when receiving it.
Currently, only the stop_time
can be updated.
Setting other fields such as meta
or components
has no effect.
§Examples
Create a valid record
use chrono::{DateTime, TimeZone, Utc};
let stop_time: DateTime<Utc> = Utc.with_ymd_and_hms(2023, 1, 1, 12, 0, 0).unwrap();
let record = RecordUpdate::new("123456", HashMap::new(), Vec::new(), stop_time)?;
Create a record with an invalid ID:
let record = RecordUpdate::new("123/456", HashMap::new(), Vec::new(), stop_time);
assert!(record.is_err());
Fields§
§record_id: ValidName
Unique identifier of the record.
meta: Option<ValidMeta>
Meta information, a collection of key value pairs in the form of String
-> Vec<String>
.
components: Vec<Component>
List of components that are accounted for.
start_time: Option<DateTime<Utc>>
Start time of the record.
stop_time: DateTime<Utc>
Stop time of the record.
Implementations§
Trait Implementations§
source§impl Clone for RecordUpdate
impl Clone for RecordUpdate
source§fn clone(&self) -> RecordUpdate
fn clone(&self) -> RecordUpdate
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for RecordUpdate
impl Debug for RecordUpdate
source§impl<'de> Deserialize<'de> for RecordUpdate
impl<'de> Deserialize<'de> for RecordUpdate
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 Serialize for RecordUpdate
impl Serialize for RecordUpdate
Auto Trait Implementations§
impl Freeze for RecordUpdate
impl RefUnwindSafe for RecordUpdate
impl Send for RecordUpdate
impl Sync for RecordUpdate
impl Unpin for RecordUpdate
impl UnwindSafe for RecordUpdate
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> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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