Type Alias Value

Source
pub type Value = Value;
Expand description

Protobuf (and consequently the Google Cloud APIs) use Value to represent JSON values. We need a type that can be referenced from the generated code.

Aliased Type§

enum Value {
    Null,
    Bool(bool),
    Number(Number),
    String(String),
    Array(Vec<Value>),
    Object(Map<String, Value>),
}

Variants§

§

Null

Represents a JSON null value.

let v = json!(null);
§

Bool(bool)

Represents a JSON boolean.

let v = json!(true);
§

Number(Number)

Represents a JSON number, whether integer or floating point.

let v = json!(12.5);
§

String(String)

Represents a JSON string.

let v = json!("a string");
§

Array(Vec<Value>)

Represents a JSON array.

let v = json!(["an", "array"]);
§

Object(Map<String, Value>)

Represents a JSON object.

By default the map is backed by a BTreeMap. Enable the preserve_order feature of serde_json to use IndexMap instead, which preserves entries in the order they are inserted into the map. In particular, this allows JSON data to be deserialized into a Value and serialized to a string while retaining the order of map keys in the input.

let v = json!({ "an": "object" });

Trait Implementations§

Source§

impl Message for Value

Source§

fn typename() -> &'static str

The typename of this message.
Source§

fn to_map(&self) -> Result<Map<String, Value>, AnyError>
where Self: Serialize + Sized,

Store the value into a JSON object.
Source§

fn from_map(map: &Map<String, Value>) -> Result<Self, AnyError>
where Self: DeserializeOwned,

Extract the value from a JSON object.