kueue_lib/
lib.rs

1//! # Kueue
2//!
3//! A robust, user-level, work-stealing, distributed task scheduler.
4//!
5//! The Kueue package consists of multiple binary crates (client, server, worker)
6//! to realize the distributed task scheduler. This library crate contains
7//! shared code between the Kueue binaries. To obtain the Kueue task scheduler,
8//! use "cargo install" instead:
9//!
10//! ```text
11//! cargo install kueue
12//! ```
13//!
14//! Find more information on [crates.io](https://crates.io/crates/kueue).
15//! The [client](../kueue/index.html), [server](../kueue_server/index.html), and
16//! [worker](../kueue_worker/index.html) crates are documented separately.
17
18#![warn(clippy::missing_docs_in_private_items)]
19
20pub mod config;
21pub mod messages;
22pub mod structs;
23
24#[cfg(test)]
25mod tests {
26    use crate::{
27        config::Config,
28        messages::{ClientToServerMessage, HelloMessage},
29    };
30
31    #[test]
32    fn general_test_setup() {
33        // TODO: Is it possible to have some kind of integration test here?
34        let _config = Config::new(None);
35        // TODO...
36    }
37
38    #[test]
39    fn serde_message() {
40        // Run tests with `cargo test --lib -- --nocapture` to see output.
41
42        let message = HelloMessage::HelloFromClient;
43        let buffer = serde_json::to_vec(&message).unwrap();
44        println!("Hello: {}", String::from_utf8(buffer).unwrap());
45
46        let message = ClientToServerMessage::ListWorkers;
47        let buffer = serde_json::to_vec(&message).unwrap();
48        println!("ListWorkers: {}", String::from_utf8(buffer).unwrap());
49
50        let message = ClientToServerMessage::Bye;
51        let buffer = serde_json::to_vec(&message).unwrap();
52        println!("Bye: {}", String::from_utf8(buffer).unwrap());
53    }
54}