y-compositor-protocol/src/lib.rs

46 lines
944 B
Rust

#![no_std]
extern crate alloc;
use alloc::vec::Vec;
use rkyv::{Archive, Deserialize, Serialize};
#[derive(Archive, Deserialize, Serialize, PartialEq, Debug)]
pub struct WindowOption {
// funct: WindowFunction,
symbol: char,
}
// #[derive(Encode, Decode, PartialEq, Debug)]
pub type WindowBar = Vec<WindowOption>;
pub type WindowID = u64;
#[derive(Archive, Deserialize, Serialize, PartialEq, Debug)]
pub struct Window {
// bar: WindowBar,
}
// TODO: Seperate out this versioning into ableos-ver
#[derive(Archive, Deserialize, Serialize, PartialEq, Debug)]
pub struct Version {
pub major: u8,
pub minor: u8,
pub patch: u8,
}
pub type WindowFunction = fn() -> ();
#[derive(Archive, Deserialize, Serialize, PartialEq, Debug)]
pub enum Protocol {
Version(Version),
WindowCreate(Window),
WindowClose(WindowID),
ReturnWindowID(WindowID),
// WindowAccess(WindowID),
}
#[test]
fn test_version() {}