1
0
Fork 0
polytree-session/src/main.rs

56 lines
981 B
Rust
Raw Normal View History

2021-12-05 15:26:22 +00:00
mod task;
use crate::task::*;
2021-11-17 17:43:30 +00:00
fn main() {
2021-12-05 16:04:36 +00:00
let wm_task = WMTask::start(TaskConfig::new("polytreewm")).unwrap();
2021-12-05 16:09:52 +00:00
let comp_task = CompTask::start(TaskConfig::new("picom")).unwrap();
2021-12-05 16:18:14 +00:00
let bar_task = BarTask::start(TaskConfig::new("polybar")).unwrap();
2021-12-05 16:09:52 +00:00
2021-12-05 15:39:41 +00:00
let wm_task_result = wm_task.wait();
2021-12-05 16:09:52 +00:00
comp_task.terminate();
2021-12-05 16:18:14 +00:00
bar_task.terminate();
2021-12-05 16:09:52 +00:00
2021-12-05 16:04:36 +00:00
unsafe { libc::exit(wm_task_result.status()) }
2021-11-17 17:43:30 +00:00
}
2021-12-05 16:00:23 +00:00
#[derive(Debug)]
2021-12-05 15:39:41 +00:00
struct WMTask(TaskInfo);
2021-11-19 05:09:39 +00:00
2021-12-05 16:09:52 +00:00
#[derive(Debug)]
struct CompTask(TaskInfo);
2021-12-05 16:18:14 +00:00
#[derive(Debug)]
struct BarTask(TaskInfo);
2021-12-05 15:07:27 +00:00
impl Task for WMTask {
fn new(info: TaskInfo) -> Self {
Self(info)
2021-12-05 15:07:27 +00:00
}
fn info(&self) -> &TaskInfo {
&self.0
2021-12-05 15:07:27 +00:00
}
2021-11-17 17:43:30 +00:00
}
2021-12-05 16:09:52 +00:00
impl Task for CompTask {
fn new(info: TaskInfo) -> Self {
Self(info)
}
fn info(&self) -> &TaskInfo {
&self.0
}
}
2021-12-05 16:18:14 +00:00
impl Task for BarTask {
fn new(info: TaskInfo) -> Self {
Self(info)
}
fn info(&self) -> &TaskInfo {
&self.0
}
}