warptrixy 0.1.3

Simple API Wrapper for the AWTRIX 3
Documentation
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug, Default)]
pub struct Draw {
    #[serde(rename = "dp", skip_serializing_if = "Option::is_none")]
    pub pixel : Option<Vec<DrawPixel>>,
    #[serde(rename = "dl", skip_serializing_if = "Option::is_none")]
    pub line : Option<Vec<DrawLine>>,
    #[serde(rename = "dr", skip_serializing_if = "Option::is_none")]
    pub rectangle : Option<Vec<DrawObject>>,
    #[serde(rename = "df", skip_serializing_if = "Option::is_none")]
    pub filled_rectangle : Option<Vec<DrawObject>>,
    #[serde(rename = "dc", skip_serializing_if = "Option::is_none")]
    pub circle : Option<Vec<DrawObject>>,
    #[serde(rename = "dfc", skip_serializing_if = "Option::is_none")]
    pub filled_circle : Option<Vec<DrawObject>>,
    #[serde(rename = "dt", skip_serializing_if = "Option::is_none")]
    pub text : Option<Vec<DrawText>>,
    #[serde(rename = "db", skip_serializing_if = "Option::is_none")]
    pub rgb : Option<Vec<DrawRGB>>,
}

#[derive(Serialize, Deserialize, Debug, Default)]
pub struct DrawPixel {
    pub x : i16,
    pub y : i16,
    pub cl : String,
}

#[derive(Serialize, Deserialize, Debug, Default)]
pub struct DrawLine {
    pub x0 : i16,
    pub y0: i16,
    pub x1 : i16,
    pub y1: i16,
    pub cl : String,
}

#[derive(Serialize, Deserialize, Debug, Default)]
pub struct DrawObject {
    pub x : Option<i16>,
    pub y : Option<i16>,
    pub w : Option<i16>,
    pub h : Option<i16>,
    pub r : Option<i16>,
    pub cl : String,
}

#[derive(Serialize, Deserialize, Debug, Default)]
pub struct DrawText {
    pub x : Option<i16>,
    pub y : Option<i16>,
    pub t: String,
    pub cl : String,
}

#[derive(Serialize, Deserialize, Debug, Default)]
pub struct DrawRGB {
    pub x : Option<i16>,
    pub y : Option<i16>,
    pub w : Option<i16>,
    pub h : Option<i16>,
    pub bmp : Vec<u8>,
}