stdtx/amino/msg/
field.rs

1//! Message fields
2
3use super::{Tag, Value};
4use crate::amino::type_name::TypeName;
5
6/// Message fields
7#[derive(Clone, Debug)]
8pub struct Field {
9    /// Field number to use as the key in an Amino message.
10    tag: Tag,
11
12    /// Name of this field
13    name: TypeName,
14
15    /// Amino type to serialize this field as
16    value: Value,
17}
18
19impl Field {
20    /// Create a new message field
21    pub fn new(tag: Tag, name: TypeName, value: impl Into<Value>) -> Self {
22        Self {
23            tag,
24            name,
25            value: value.into(),
26        }
27    }
28
29    /// Get this field's [`Tag`]
30    pub fn tag(&self) -> Tag {
31        self.tag
32    }
33
34    /// Get this field's [`TypeName`]
35    pub fn name(&self) -> &TypeName {
36        &self.name
37    }
38
39    /// Get this field's [`Value`]
40    pub fn value(&self) -> &Value {
41        &self.value
42    }
43}