Skip to main content

over_there/core/msg/content/request/io/
proc.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4#[derive(
5    JsonSchema, Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq,
6)]
7pub struct ExecProcArgs {
8    pub command: String,
9    pub args: Vec<String>,
10    pub stdin: bool,
11    pub stdout: bool,
12    pub stderr: bool,
13
14    /// If provided, sets the current directory where the proc will be executed
15    pub current_dir: Option<String>,
16}
17
18impl crate::core::SchemaInfo for ExecProcArgs {}
19
20#[derive(
21    JsonSchema, Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq,
22)]
23pub struct WriteProcStdinArgs {
24    pub id: u32,
25    pub input: Vec<u8>,
26}
27
28impl crate::core::SchemaInfo for WriteProcStdinArgs {}
29
30#[derive(
31    JsonSchema, Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq,
32)]
33pub struct ReadProcStdoutArgs {
34    pub id: u32,
35}
36
37impl crate::core::SchemaInfo for ReadProcStdoutArgs {}
38
39#[derive(
40    JsonSchema, Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq,
41)]
42pub struct ReadProcStderrArgs {
43    pub id: u32,
44}
45
46impl crate::core::SchemaInfo for ReadProcStderrArgs {}
47
48#[derive(
49    JsonSchema, Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq,
50)]
51pub struct KillProcArgs {
52    pub id: u32,
53}
54
55impl crate::core::SchemaInfo for KillProcArgs {}
56
57#[derive(
58    JsonSchema, Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq,
59)]
60pub struct ReadProcStatusArgs {
61    pub id: u32,
62}
63
64impl crate::core::SchemaInfo for ReadProcStatusArgs {}