Skip to main content

solti_api/grpc/convert/
meta.rs

1//! # Object Metadata Conversion
2//!
3//! Converts domain object metadata into protobuf response values.
4
5use solti_model::ObjectMeta;
6
7use super::time::system_time_to_ms;
8use crate::error::ApiError;
9use crate::proto_api;
10
11impl TryFrom<&ObjectMeta> for proto_api::ObjectMeta {
12    type Error = ApiError;
13
14    fn try_from(m: &ObjectMeta) -> Result<Self, Self::Error> {
15        Ok(proto_api::ObjectMeta {
16            name: m.name().to_string(),
17            uid: m.uid().to_string(),
18            resource_version: m.resource_version().to_owned(),
19            generation: m.generation(),
20            creation_timestamp: system_time_to_ms(m.creation_timestamp())?,
21            labels: m
22                .labels()
23                .iter()
24                .map(|(key, value)| (key.to_owned(), value.to_owned()))
25                .collect(),
26            annotations: m
27                .annotations()
28                .iter()
29                .map(|(key, value)| (key.to_owned(), value.to_owned()))
30                .collect(),
31        })
32    }
33}