#[non_exhaustive]pub struct Participant {Show 28 fields
pub at_type: String,
pub name: Option<String>,
pub email: Option<String>,
pub description: Option<String>,
pub send_to: Option<BTreeMap<String, String>>,
pub kind: Option<String>,
pub roles: BTreeMap<String, bool>,
pub location_id: Option<String>,
pub language: Option<String>,
pub participation_status: Option<String>,
pub participation_comment: Option<String>,
pub expect_reply: Option<bool>,
pub schedule_agent: Option<String>,
pub calendar_address: Option<String>,
pub invited_by: Option<String>,
pub delegated_to: Option<BTreeMap<String, bool>>,
pub delegated_from: Option<BTreeMap<String, bool>>,
pub member_of: Option<BTreeMap<String, bool>>,
pub links: Option<BTreeMap<String, Link>>,
pub schedule_sequence: Option<u64>,
pub schedule_updated: Option<UTCDate>,
pub schedule_status: Option<Vec<String>>,
pub schedule_force_send: Option<bool>,
pub sent_by: Option<String>,
pub progress: Option<String>,
pub progress_updated: Option<UTCDate>,
pub percent_complete: Option<u8>,
pub extra: Map<String, Value>,
}Expand description
A participant in an event (RFC 8984 §4.4.6).
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.at_type: StringObject type discriminator; always "Participant" on the wire.
Deserialize is liberal: if @type is absent (spec-violating
vendor input), this field defaults to "Participant" rather
than failing the whole parent object’s deserialize. Serialize
always emits the field. See bd:JMAP-ky8g.10.
name: Option<String>Display name of the participant.
email: Option<String>Email address (addr-spec) of the participant.
description: Option<String>Additional description.
send_to: Option<BTreeMap<String, String>>Map of scheduling method → URI for sending scheduling messages.
kind: Option<String>Kind of participant: "individual", "group", "location", "resource".
roles: BTreeMap<String, bool>Map of role URIs → true (e.g. "owner", "attendee", "chair").
RFC 8984 §4.4.6: “At least one role MUST be specified for the participant”. The non-empty mandate is NOT enforced by the type system or by deserialize; consumers check it themselves (bd:JMAP-ops7.38).
location_id: Option<String>Id of the location this participant is associated with.
language: Option<String>BCP 47 language tag for this participant.
participation_status: Option<String>Participation status (default "needs-action").
participation_comment: Option<String>Free-form comment on participation.
expect_reply: Option<bool>Whether the participant is expected to send a reply (default false).
schedule_agent: Option<String>Scheduling agent: "server", "client", or "none" (default "server").
calendar_address: Option<String>iTIP scheduling address URI for this participant.
invited_by: Option<String>Id of the participant who invited this participant, if any.
delegated_to: Option<BTreeMap<String, bool>>Map of participant ids → true for participants this one delegated to.
delegated_from: Option<BTreeMap<String, bool>>Map of participant ids → true for participants who delegated to this one.
member_of: Option<BTreeMap<String, bool>>Map of group participant ids → true that this participant is a member of.
links: Option<BTreeMap<String, Link>>Links associated with this participant.
schedule_sequence: Option<u64>iTIP scheduling sequence number for this participant (RFC 8984 §5.2.1).
Context: Participant — this is a per-participant iTIP tracking field, not an event-level field. The server updates it when an iTIP message is processed.
schedule_updated: Option<UTCDate>UTC date-time of the last iTIP scheduling message processed for this participant (RFC 8984 §5.2.2).
Context: Participant — per-participant iTIP tracking, not event-level.
schedule_status: Option<Vec<String>>iTIP status codes from the most recent scheduling message sent to this participant (RFC 8984 §4.4.6).
An array of iTIP status code strings (e.g. "1.0", "2.0", "5.0").
Server-set and persisted; absent when no scheduling has occurred.
schedule_force_send: Option<bool>Client request to force a scheduling message (RFC 8984 §4.4.6,
default false).
A client sets this to true to ask the server to send a scheduling
message to the participant even when it would not normally do so
(e.g. no significant change was made, or scheduleAgent is
"client"). Per the spec this property MUST NOT be stored on the
server or appear in a scheduling message — it is request-only.
sent_by: Option<String>Email address of the iMIP sender, if different from the
participant’s imip send-to URI (RFC 8984 §4.4.6).
SHOULD only be set when the From-header address of the email that
last updated this participant differs from the mailto: URI in
sendTo["imip"]. If set, MUST be a valid addr-spec per
RFC 5322 §3.4.1.
progress: Option<String>Task-only: progress of the participant for this task (RFC 8984 §4.4.6; allowed values in §5.2.5).
MUST NOT be set when participationStatus is anything other than
"accepted". Only meaningful on a Task; ignored on an Event.
Type-level forward-compatibility: this field is kept as
Option<String> rather than a typed enum because RFC 8984 §5.2.5
defines an open value set extensible via the IANA “JSCalendar
Enum Values” registry.
progress_updated: Option<UTCDate>Task-only: timestamp the progress property was last set
(RFC 8984 §4.4.6; semantics in §5.2.6).
Only meaningful on a Task; ignored on an Event.
percent_complete: Option<u8>Task-only: percent completion of the participant for this task (RFC 8984 §4.4.6).
MUST be a value in the range 0..=100 per the spec. Only
meaningful on a Task; ignored on an Event. The type permits
the full u8 range; values outside 0..=100 are wire-invalid
and the consumer is responsible for range-checking on input.
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 Participant
impl Clone for Participant
Source§fn clone(&self) -> Participant
fn clone(&self) -> Participant
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more