massa_versioning/
grpc_mapping.rs1use crate::versioning::{ComponentStateTypeId, MipComponent, MipInfo};
3use massa_proto_rs::massa::model::v1 as grpc_model;
4
5impl From<&ComponentStateTypeId> for grpc_model::ComponentStateId {
6 fn from(value: &ComponentStateTypeId) -> Self {
7 match value {
8 ComponentStateTypeId::Error => grpc_model::ComponentStateId::Error,
9 ComponentStateTypeId::Defined => grpc_model::ComponentStateId::Defined,
10 ComponentStateTypeId::Started => grpc_model::ComponentStateId::Started,
11 ComponentStateTypeId::LockedIn => grpc_model::ComponentStateId::Lockedin,
12 ComponentStateTypeId::Active => grpc_model::ComponentStateId::Active,
13 ComponentStateTypeId::Failed => grpc_model::ComponentStateId::Failed,
14 }
15 }
16}
17
18impl From<&MipComponent> for grpc_model::MipComponent {
19 fn from(value: &MipComponent) -> Self {
20 match value {
21 MipComponent::KeyPair => grpc_model::MipComponent::Keypair,
22 MipComponent::Address => grpc_model::MipComponent::Address,
23 _ => grpc_model::MipComponent::Unspecified,
24 }
25 }
26}
27
28impl From<&MipInfo> for grpc_model::MipInfo {
29 fn from(value: &MipInfo) -> Self {
30 let components = value
31 .components
32 .iter()
33 .map(|(mip_component, version)| grpc_model::MipComponentEntry {
34 kind: grpc_model::MipComponent::from(mip_component).into(),
35 version: *version,
36 })
37 .collect();
38 Self {
39 name: value.name.clone(),
40 version: value.version,
41 start: Some(value.start.into()),
42 timeout: Some(value.timeout.into()),
43 activation_delay: Some(value.activation_delay.into()),
44 components,
45 }
46 }
47}