veusz/
data.rs

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}