flow_record_common/
record_descriptor.rs

1use rmpv::Value;
2
3use crate::RecordField;
4
5#[derive(Clone, Eq, PartialEq, Debug, Hash)]
6pub struct RecordDescriptor {
7    name: String,
8    fields: Vec<RecordField>,
9}
10
11impl RecordDescriptor {
12    pub const fn new(name: String, fields: Vec<RecordField>) -> Self {
13        Self { name, fields }
14    }
15}
16
17impl From<RecordDescriptor> for Value {
18    fn from(value: RecordDescriptor) -> Self {
19        Value::Array(vec![
20            Value::String(value.name.into()),
21            Value::Array(value.fields.into_iter().map(Value::from).collect()),
22        ])
23    }
24}