Use serde to serialize responses (#96)

This commit is contained in:
TrueDoctor
2021-05-07 02:47:38 -07:00
committed by Keavon Chambers
parent 9ad5f4ce78
commit 721a442b75
13 changed files with 99 additions and 45 deletions
+1
View File
@@ -11,3 +11,4 @@ license = "Apache-2.0"
[dependencies]
log = "0.4"
kurbo = "0.8.0"
serde = { version = "1.0", features = ["derive"] }
+3 -1
View File
@@ -1,5 +1,7 @@
use serde::{Deserialize, Serialize};
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Default)]
#[derive(Debug, Clone, Copy, PartialEq, Default, Serialize, Deserialize)]
pub struct Color {
red: f32,
green: f32,
+4 -3
View File
@@ -1,7 +1,8 @@
use crate::color::Color;
use serde::{Deserialize, Serialize};
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Default)]
#[derive(Debug, Clone, Copy, PartialEq, Default, Serialize, Deserialize)]
pub struct Fill {
color: Option<Color>,
}
@@ -21,7 +22,7 @@ impl Fill {
}
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Default)]
#[derive(Debug, Clone, Copy, PartialEq, Default, Serialize, Deserialize)]
pub struct Stroke {
color: Color,
width: f32,
@@ -37,7 +38,7 @@ impl Stroke {
}
#[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Default)]
#[derive(Debug, Clone, Copy, PartialEq, Default, Serialize, Deserialize)]
pub struct PathStyle {
stroke: Option<Stroke>,
fill: Option<Fill>,
+3 -1
View File
@@ -1,6 +1,8 @@
use crate::{layers::style, LayerId};
#[derive(Debug, Clone, PartialEq)]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub enum Operation {
AddCircle {
path: Vec<LayerId>,
+4 -3
View File
@@ -1,14 +1,15 @@
use crate::LayerId;
use serde::{Deserialize, Serialize};
use std::fmt;
#[derive(Debug, Clone)]
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LayerPanelEntry {
pub name: String,
pub visible: bool,
pub layer_type: LayerType,
}
#[derive(Debug, Clone)]
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum LayerType {
Folder,
Shape,
@@ -25,7 +26,7 @@ impl fmt::Display for LayerType {
}
}
#[derive(Debug, Clone)]
#[derive(Debug, Clone, Serialize, Deserialize)]
#[repr(C)]
// TODO - Make Copy when possible
pub enum DocumentResponse {
+1
View File
@@ -12,6 +12,7 @@ license = "Apache-2.0"
log = "0.4"
bitflags = "1.2.1"
thiserror = "1.0.24"
serde = { version = "1.0", features = ["derive"] }
[dependencies.document-core]
path = "../document"
+4 -2
View File
@@ -2,6 +2,8 @@ use crate::tools::ToolType;
use crate::Color;
use bitflags::bitflags;
use serde::{Deserialize, Serialize};
#[doc(inline)]
pub use document_core::DocumentResponse;
@@ -29,7 +31,7 @@ pub enum Event {
KeyDown(Key),
}
#[derive(Debug, Clone)]
#[derive(Debug, Clone, Serialize, Deserialize)]
#[repr(C)]
pub enum ToolResponse {
SetActiveTool { tool_name: String },
@@ -49,7 +51,7 @@ impl fmt::Display for ToolResponse {
}
}
#[derive(Debug, Clone)]
#[derive(Debug, Clone, Serialize, Deserialize)]
#[repr(C)]
// TODO - Make Copy when possible
pub enum Response {