megalodon 1.3.0

Fediverse API client library for Rust.
Documentation
use serde::{Deserialize, Serialize};

use super::status::Status;

#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct ShallowQuote {
    pub state: QuoteState,
    pub quoted_status_id: Option<String>,
}

#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum QuoteState {
    Pending,
    Accepted,
    Rejected,
    Revoked,
    Deleted,
    Unauthorized,
    BlockedAccount,
    BlockedDomain,
    MutedAccount,
}

#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct Quote {
    pub state: QuoteState,
    pub quoted_status: Option<Box<Status>>,
}

#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(untagged)]
pub enum QuotedStatus {
    Quote(Quote),
    ShallowQuote(ShallowQuote),
}