kanata-tcp-protocol-0.190.0/.cargo_vcs_info.json0000644000000001520000000000100150630ustar { "git": { "sha1": "b111e370d2ec9fcff17a8a5193a1dbee775b88d9" }, "path_in_vcs": "tcp_protocol" }kanata-tcp-protocol-0.190.0/Cargo.lock0000644000000045770000000000100130550ustar # This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 4 [[package]] name = "itoa" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "kanata-tcp-protocol" version = "0.190.0" dependencies = [ "serde", "serde_derive", "serde_json", ] [[package]] name = "memchr" version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "proc-macro2" version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" dependencies = [ "unicode-ident", ] [[package]] name = "quote" version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] [[package]] name = "ryu" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "serde" version = "1.0.213" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" version = "1.0.213" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "serde_json" version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ "itoa", "memchr", "ryu", "serde", ] [[package]] name = "syn" version = "2.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "unicode-ident" version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" kanata-tcp-protocol-0.190.0/Cargo.toml0000644000000020330000000000100130610ustar # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO # # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies # to registry (e.g., crates.io) dependencies. # # If you are reading this file be aware that the original Cargo.toml # will likely look very different (and much more reasonable). # See Cargo.toml.orig for the original contents. [package] edition = "2021" name = "kanata-tcp-protocol" version = "0.190.0" build = false autolib = false autobins = false autoexamples = false autotests = false autobenches = false description = "TCP protocol for kanata. This does not follow semver." readme = false license = "LGPL-3.0-only" [lib] name = "kanata_tcp_protocol" path = "src/lib.rs" [dependencies.serde] version = "1" features = [ "alloc", "derive", ] default-features = false [dependencies.serde_derive] version = "1.0" [dependencies.serde_json] version = "1" features = ["alloc"] default-features = false kanata-tcp-protocol-0.190.0/Cargo.toml.orig000064400000000000000000000005641046102023000165510ustar 00000000000000[package] name = "kanata-tcp-protocol" version = "0.190.0" edition = "2021" description = "TCP protocol for kanata. This does not follow semver." license = "LGPL-3.0-only" [dependencies] serde = { version = "1", features = ["alloc", "derive"], default-features = false } serde_derive = "1.0" serde_json = { version = "1", features = ["alloc"], default-features = false } kanata-tcp-protocol-0.190.0/src/lib.rs000064400000000000000000000024021046102023000155560ustar 00000000000000use serde::{Deserialize, Serialize}; use std::str::FromStr; #[derive(Debug, Serialize, Deserialize)] pub enum ServerMessage { LayerChange { new: String }, LayerNames { names: Vec }, CurrentLayerInfo { name: String, cfg_text: String }, ConfigFileReload { new: String }, CurrentLayerName { name: String }, MessagePush { message: serde_json::Value }, Error { msg: String }, } impl ServerMessage { pub fn as_bytes(&self) -> Vec { let mut msg = serde_json::to_vec(self).expect("ServerMessage should serialize"); msg.push(b'\n'); msg } } #[derive(Debug, Serialize, Deserialize)] pub enum ClientMessage { ChangeLayer { new: String, }, RequestLayerNames {}, RequestCurrentLayerInfo {}, RequestCurrentLayerName {}, ActOnFakeKey { name: String, action: FakeKeyActionMessage, }, SetMouse { x: u16, y: u16, }, } #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)] pub enum FakeKeyActionMessage { Press, Release, Tap, Toggle, } impl FromStr for ClientMessage { type Err = serde_json::Error; fn from_str(s: &str) -> std::result::Result { serde_json::from_str(s) } }