Use serde to serialize responses (#96)

This commit is contained in:
TrueDoctor
2021-05-02 22:46:47 +02:00
committed by Keavon Chambers
parent f10a3c63d1
commit f8ebff033d
13 changed files with 99 additions and 45 deletions

View File

@@ -11,3 +11,4 @@ license = "Apache-2.0"
[dependencies]
log = "0.4"
kurbo = "0.8.0"
serde = { version = "1.0", features = ["derive"] }

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,

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>,

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>,

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 {

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"

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 {