Skip to main content

CalendarEventNotification

Struct CalendarEventNotification 

Source
#[non_exhaustive]
pub struct CalendarEventNotification { pub id: Id, pub created: UTCDate, pub changed_by: Person, pub comment: Option<String>, pub notification_type: NotificationType, pub calendar_event_id: Id, pub is_draft: Option<bool>, pub event: Value, pub event_patch: Option<PatchObject>, pub extra: Map<String, Value>, }
Expand description

A JMAP CalendarEventNotification object (draft-ietf-jmap-calendars-33 §7).

Records a change made to a calendar event by an external entity or another client. Apart from hideAttendees filtering, a notification has no per-user data, so one object may be shared by all users with access to the calendar; but the server MUST NOT create one for anyone other than the calendar’s owner when the event’s privacy is "private" or "secret" before or after the change (§7).

Only destroyed notifications may be explicitly managed via CalendarEventNotification/set; created and updated notifications are server-set.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§id: Id

Server-assigned identifier for this notification.

§created: UTCDate

UTC date-time when this notification was created.

§changed_by: Person

Who made the change.

§comment: Option<String>

Comment sent along with the change (e.g. iTIP COMMENT property), if any.

§notification_type: NotificationType

Type of change recorded.

Wire field name is type.

§calendar_event_id: Id

Id of the CalendarEvent this notification is about (always the base event id, even for single-instance changes).

§is_draft: Option<bool>

Whether the event is a draft. Present for created and updated notifications only.

§event: Value

The CalendarEvent data before the change (for updated or destroyed), or the data after creation (for created).

§event_patch: Option<PatchObject>

A PatchObject encoding the change between event and the state after the update. Present for updated notifications only.

Wire format is byte-identical to a plain JSON object via PatchObject’s #[serde(transparent)].

§extra: Map<String, Value>

Catch-all for vendor / site / private extension fields not covered by the typed fields above. Preserves unknown fields across deserialize/serialize round-trip per workspace extras-preservation policy (see workspace AGENTS.md).

Trait Implementations§

Source§

impl Clone for CalendarEventNotification

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CalendarEventNotification

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for CalendarEventNotification

Source§

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 GetObject for CalendarEventNotification

Source§

impl JmapObject for CalendarEventNotification

Source§

const TYPE_NAME: &'static str = "CalendarEventNotification"

The JMAP type name string (e.g. "Email", "Mailbox", "Chat").
Source§

type Property = CalendarEventNotificationProperty

The property selector enum for this type (server-side only, no serde).
Source§

impl PartialEq for CalendarEventNotification

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl QueryObject for CalendarEventNotification

Source§

type Filter = Filter<NotificationFilterCondition>

The filter condition type. Read more
Source§

type Comparator = CalendarEventNotificationComparator

The comparator type for sort operations.
Source§

impl Serialize for CalendarEventNotification

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl SetObject for CalendarEventNotification

SetObject for CalendarEventNotification is destroy-only. The Patch type is never used in practice; PatchObject is a safe placeholder that satisfies the trait bound while keeping the type-system contract aligned with sibling types (RFC 8620 §5.3).

draft-ietf-jmap-calendars-33 §7.3: “Only destroy is supported; any attempt to create/update MUST be rejected”, so every property is server-set; id (line 2601) is also “(immutable; server-set)”.

Source§

const SERVER_SET: &'static [&'static str]

Wire names of the properties the spec marks “server-set”: “Only the server can set the value for this property. The client MUST NOT send this property when creating a new object of this type.” (RFC 8620 §1.1). A property the type’s /set method text never accepts from a client, on create or update, is server-set too. Read more
Source§

const CLIENT_SETTABLE: &'static [&'static str]

Wire names of every property that is not SERVER_SET: the ones a client may set through /set. Read more
Source§

const IMMUTABLE: &'static [&'static str]

The CLIENT_SETTABLE properties the spec marks “immutable”: “The value MUST NOT change after the object is created.” (RFC 8620 §1.1). A property the /set method text accepts on create but not on update is immutable too. Read more
Source§

type Patch = PatchObject

The patch type for update operations. Read more
Source§

impl StructuralPartialEq for CalendarEventNotification

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.