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
26#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
27#[serde(rename_all = "lowercase")]
28pub enum ColumnType {
29    String,
30    Integer,
31    Number,
32    Currency,
33    Percentage,
34    Date,
35    Boolean,
36    Link,
37}
38
39#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
40#[serde(rename_all = "lowercase")]
41pub enum ChartType {
42    #[default]
43    Line,
44    Bar,
45    Pie,
46    Doughnut,
47    Area,
48}
49
50#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
51#[serde(rename_all = "lowercase")]
52pub enum AxisType {
53    Category,
54    #[default]
55    Linear,
56    Logarithmic,
57    Time,
58}
59
60#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
61#[serde(rename_all = "lowercase")]
62pub enum SortOrder {
63    Asc,
64    Desc,
65}
66
67#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
68#[serde(rename_all = "lowercase")]
69pub enum Alignment {
70    Left,
71    Center,
72    Right,
73}