mastodon-async/entities/src/filter.rs

32 lines
892 B
Rust
Raw Normal View History

use serde::{Deserialize, Serialize};
use time::{serde::iso8601, OffsetDateTime};
2022-11-27 14:44:43 +00:00
/// Represents a single Filter
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2022-11-27 14:44:43 +00:00
pub struct Filter {
id: String,
phrase: String,
context: Vec<FilterContext>,
#[serde(with = "iso8601::option")]
expires_at: Option<OffsetDateTime>,
2022-11-27 14:44:43 +00:00
irreversible: bool,
whole_word: bool,
}
/// Represents the various types of Filter contexts
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2022-11-27 14:44:43 +00:00
pub enum FilterContext {
/// Represents the "home" context
#[serde(rename = "home")]
Home,
/// Represents the "notifications" context
#[serde(rename = "notifications")]
Notifications,
/// Represents the "public" context
#[serde(rename = "public")]
Public,
/// Represents the "thread" context
#[serde(rename = "thread")]
Thread,
}