1use crate::api1::cmd;
2use crate::CommandLineEmbeddingInterface;
3use std::fmt::Display;
4use std::io::Write;
5
6pub struct Data {
7 name: String,
8 value: String,
9}
10
11impl Data {
12 pub fn new<D: Display>(name: impl Into<String>, data: impl Iterator<Item = D>) -> Self {
13 Data {
14 name: name.into(),
15 value: data
16 .map(|d| format!("{d}"))
17 .collect::<Vec<String>>()
18 .join(", "),
19 }
20 }
21}
22
23impl CommandLineEmbeddingInterface for Data {
24 fn write<W: Write>(&self, writer: &mut W) -> std::io::Result<()> {
25 cmd::SetData(&self.name, &self.value).write(writer)
26 }
27}