38 lines
1.4 KiB
Rust
38 lines
1.4 KiB
Rust
//! Endpoints for sending and interacting with delayed events.
|
|
|
|
pub mod delayed_message_event;
|
|
pub mod delayed_state_event;
|
|
pub mod update_delayed_event;
|
|
|
|
use serde::{Deserialize, Serialize};
|
|
use web_time::Duration;
|
|
|
|
/// The query parameters for a delayed event request.
|
|
/// It contains the `timeout` configuration for a delayed event.
|
|
///
|
|
/// ### Note:
|
|
///
|
|
/// This is an Enum since the following properties might be added:
|
|
///
|
|
/// The **Timeout** case might get an additional optional `delay_parent_id` property.
|
|
/// The optional parent id is used to create a secondary timeout.
|
|
/// In a delay group with two timeouts only one of them will ever be sent.
|
|
///
|
|
/// The **Action** case might be added:
|
|
/// Adds an additional action to a delay event without a timeout but requires a `delay_id` (of the
|
|
/// parent delay event). A possible matrix event that can be send as an alternative to the parent
|
|
/// delay.
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
|
|
#[serde(untagged)]
|
|
pub enum DelayParameters {
|
|
/// Sending a delayed event with a timeout. The response will contain a (server
|
|
/// generated) `delay_id` instead of an `event_id`.
|
|
Timeout {
|
|
/// The timeout duration for this delayed event.
|
|
#[serde(with = "ruma_common::serde::duration::ms")]
|
|
#[serde(rename = "org.matrix.msc4140.delay")]
|
|
timeout: Duration,
|
|
},
|
|
}
|