]> git.seodisparate.com - swaybar_info/commitdiff
Add swaybar protocol header
authorStephen Seo <seo.disparate@gmail.com>
Sat, 9 Jul 2022 07:33:59 +0000 (16:33 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Sat, 9 Jul 2022 07:33:59 +0000 (16:33 +0900)
src/main.rs
src/swaybar_object.rs

index c543311b531803de9de79d7b41624350bf76f78f..785d28ba2d411a6f11f019a7f62744a57f7b4761 100644 (file)
@@ -1,8 +1,12 @@
 mod swaybar_object;
 
 fn main() {
-    println!("Hello, world!");
-
+    println!(
+        "{}",
+        serde_json::to_string(&swaybar_object::SwaybarHeader::new())
+            .expect("Should be able to serialize SwaybarHeader")
+    );
+    println!("[");
     let mut array = swaybar_object::SwaybarArray::new();
     array.push_object(swaybar_object::SwaybarObject::default());
     array.push_object(swaybar_object::SwaybarObject::new());
index 672b56c5c5ddc03f9bb4c9c312e414dfb59ca0bd..4ae99df86bd3d9637389d21e61f302cfb707d0e5 100644 (file)
@@ -3,6 +3,17 @@ use std::fmt::Display;
 use chrono::prelude::*;
 use serde::{Deserialize, Serialize};
 
+#[derive(Serialize, Deserialize, Debug)]
+pub struct SwaybarHeader {
+    pub version: u32,
+    #[serde(skip_serializing_if = "Option::is_none")]
+    pub click_events: Option<bool>,
+    #[serde(skip_serializing_if = "Option::is_none")]
+    pub cont_signal: Option<u16>,
+    #[serde(skip_serializing_if = "Option::is_none")]
+    pub stop_signal: Option<u16>,
+}
+
 #[derive(Serialize, Deserialize, Debug)]
 pub struct SwaybarObject {
     pub full_text: String,
@@ -45,6 +56,17 @@ pub struct SwaybarArray {
     objects: Vec<SwaybarObject>,
 }
 
+impl SwaybarHeader {
+    pub fn new() -> Self {
+        Self {
+            version: 1,
+            click_events: None,
+            cont_signal: None,
+            stop_signal: None,
+        }
+    }
+}
+
 impl SwaybarObject {
     pub fn new() -> Self {
         Self {