Skip to main content

systemprompt_models/artifacts/
types.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
5#[serde(rename_all = "lowercase")]
6pub enum ArtifactType {
7    Text,
8    Table,
9    Chart,
10    Form,
11    Dashboard,
12    #[serde(rename = "presentation_card")]
13    PresentationCard,
14    List,
15    #[serde(rename = "copy_paste_text")]
16    CopyPasteText,
17    Image,
18    Video,
19    Audio,
20    /// Custom artifact types defined by extensions (e.g., "blog", "product",
21    /// etc.)
22    #[serde(untagged)]
23    Custom(String),
24}
25
26impl std::fmt::Display for ArtifactType {
27    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
28        match self {
29            Self::Text => write!(f, "text"),
30            Self::Table => write!(f, "table"),
31            Self::Chart => write!(f, "chart"),
32            Self::Form => write!(f, "form"),
33            Self::Dashboard => write!(f, "dashboard"),
34            Self::PresentationCard => write!(f, "presentation_card"),
35            Self::List => write!(f, "list"),
36            Self::CopyPasteText => write!(f, "copy_paste_text"),
37            Self::Image => write!(f, "image"),
38            Self::Video => write!(f, "video"),
39            Self::Audio => write!(f, "audio"),
40            Self::Custom(s) => write!(f, "{}", s),
41        }
42    }
43}
44
45#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
46#[serde(rename_all = "lowercase")]
47pub enum ColumnType {
48    String,
49    Integer,
50    Number,
51    Currency,
52    Percentage,
53    Date,
54    Boolean,
55    Link,
56}
57
58#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
59#[serde(rename_all = "lowercase")]
60pub enum ChartType {
61    #[default]
62    Line,
63    Bar,
64    Pie,
65    Doughnut,
66    Area,
67}
68
69#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
70#[serde(rename_all = "lowercase")]
71pub enum AxisType {
72    Category,
73    #[default]
74    Linear,
75    Logarithmic,
76    Time,
77}
78
79#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
80#[serde(rename_all = "lowercase")]
81pub enum SortOrder {
82    Asc,
83    Desc,
84}
85
86#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
87#[serde(rename_all = "lowercase")]
88pub enum Alignment {
89    Left,
90    Center,
91    Right,
92}