ableos/kernel/src/ipc/protocol.rs

41 lines
890 B
Rust
Raw Normal View History

2024-03-22 05:13:17 -05:00
use {
alloc::{string::String, vec::Vec},
hashbrown::HashMap,
log::info,
};
2024-08-19 13:13:58 -05:00
#[derive(Debug, PartialEq, Clone)]
2024-03-22 05:13:17 -05:00
pub struct Type {}
2024-08-19 13:13:58 -05:00
#[derive(Debug, PartialEq, Clone)]
2024-03-22 05:13:17 -05:00
pub struct Funct {
takes: Vec<String>,
gives: Vec<String>,
}
2024-08-19 13:13:58 -05:00
#[derive(Debug, PartialEq, Clone)]
2024-03-22 05:13:17 -05:00
pub struct Protocol {
types: HashMap<String, Type>,
fns: HashMap<String, Funct>,
}
impl Protocol {
pub fn void() -> Self {
Self {
types: HashMap::new(),
fns: HashMap::new(),
}
}
// Check if a protocol defines all types it needs too
fn validate_protocol() -> bool {
false
}
}
impl From<String> for Protocol {
fn from(value: alloc::string::String) -> Self {
let mut hm_t = HashMap::new();
hm_t.insert(value, Type {});
2024-03-22 05:13:17 -05:00
Self {
types: hm_t,
2024-03-22 05:13:17 -05:00
fns: HashMap::new(),
}
}
}