/** * Representation of a stream item, as received from the zot api streams. * * SPDX-FileCopyrightText: 2023 Eilertsens Kodeknekkeri * SPDX-FileCopyrightText: 2023 Harald Eilertsen * * SPDX-License-Identifier: AGPL-3.0-or-later */ use super::verb::Verb; use serde::Deserialize; #[derive(Debug, Deserialize, PartialEq)] pub enum StreamItemType { #[serde(rename="activity")] Activity, } #[derive(Debug, Deserialize, PartialEq)] pub enum StreamItemEncoding { #[serde(rename="zot")] Zot, } /** * Represents an item as returned by the stream API's. */ #[derive(Debug, Deserialize, PartialEq)] pub struct StreamItem { #[serde(rename="type")] pub item_type: StreamItemType, pub encoding: StreamItemEncoding, pub verb: Verb, pub title: String, pub summary: String, pub body: String, } impl StreamItem { pub fn is_post(&self) -> bool { self.verb == Verb::Post } }