simploxide_api_types/
utils.rs1pub trait CommandSyntax {
2 const COMMAND_BUF_SIZE: usize;
3
4 fn to_command_string(&self) -> String {
6 let mut buf = String::with_capacity(Self::COMMAND_BUF_SIZE);
7 self.append_command_syntax(&mut buf);
8 buf
9 }
10
11 fn append_command_syntax(&self, buf: &mut String);
12}
13
14impl<T: CommandSyntax> CommandSyntax for Option<T> {
16 const COMMAND_BUF_SIZE: usize = T::COMMAND_BUF_SIZE;
17
18 fn append_command_syntax(&self, buf: &mut String) {
19 if let Some(command) = self {
20 command.append_command_syntax(buf);
21 }
22 }
23}