prost_types/
conversions.rs
1use crate::protobuf::Value;
2use crate::value;
3use crate::String;
4use crate::Vec;
5use ::prost::alloc::collections::BTreeMap;
6
7impl From<value::Kind> for Value {
8 fn from(value: value::Kind) -> Self {
9 Value { kind: Some(value) }
10 }
11}
12
13macro_rules! impl_number_value {
14 ($t: ty) => {
15 impl From<$t> for Value {
16 fn from(value: $t) -> Self {
17 value::Kind::NumberValue(value.into()).into()
18 }
19 }
20 };
21}
22
23impl_number_value!(u8);
24impl_number_value!(u16);
25impl_number_value!(u32);
26
27impl_number_value!(i8);
28impl_number_value!(i16);
29impl_number_value!(i32);
30
31impl_number_value!(f32);
32impl_number_value!(f64);
33
34impl From<bool> for Value {
35 fn from(value: bool) -> Self {
36 value::Kind::BoolValue(value).into()
37 }
38}
39
40impl From<String> for Value {
41 fn from(value: String) -> Self {
42 value::Kind::StringValue(value).into()
43 }
44}
45
46impl From<&str> for Value {
47 fn from(value: &str) -> Self {
48 value::Kind::StringValue(value.into()).into()
49 }
50}
51
52impl From<Vec<Value>> for Value {
53 fn from(value: Vec<Value>) -> Self {
54 value::Kind::ListValue(crate::protobuf::ListValue { values: value }).into()
55 }
56}
57
58impl From<BTreeMap<String, Value>> for Value {
59 fn from(value: BTreeMap<String, Value>) -> Self {
60 value::Kind::StructValue(crate::protobuf::Struct { fields: value }).into()
61 }
62}