zagens_runtime_adapters/persist/
context_reference.rs1use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
9pub struct ContextReference {
10 pub kind: ContextReferenceKind,
11 pub source: ContextReferenceSource,
12 pub badge: String,
14 pub label: String,
16 pub target: String,
18 pub included: bool,
19 pub expanded: bool,
20 #[serde(default, skip_serializing_if = "Option::is_none")]
21 pub detail: Option<String>,
22}
23
24#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
25#[serde(rename_all = "snake_case")]
26pub enum ContextReferenceKind {
27 File,
28 Directory,
29 Missing,
30 Unsupported,
31 MediaMention,
32 MediaAttachment,
33}
34
35#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
36#[serde(rename_all = "snake_case")]
37pub enum ContextReferenceSource {
38 AtMention,
39 Attachment,
40}