muster/domain/pty/
request.rs1use std::{collections::BTreeMap, ffi::OsString, path::PathBuf};
2
3use getset::{CopyGetters, Getters};
4use typed_builder::TypedBuilder;
5
6use crate::domain::{agent_session::AgentSessionId, pty::PtySize, value::CommandLine};
7
8#[derive(Clone, Debug, Getters, CopyGetters, TypedBuilder)]
10pub struct SpawnRequest {
11 #[getset(get = "pub")]
13 #[builder(default)]
14 command: Option<CommandLine>,
15 #[getset(get = "pub")]
17 #[builder(default)]
18 working_dir: Option<PathBuf>,
19 #[getset(get = "pub")]
22 #[builder(default)]
23 project: Option<PathBuf>,
24 #[getset(get = "pub")]
26 #[builder(default)]
27 environment: BTreeMap<OsString, OsString>,
28 #[getset(get = "pub")]
30 #[builder(default)]
31 agent_session_id: Option<AgentSessionId>,
32 #[getset(get_copy = "pub")]
34 size: PtySize,
35}