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}