pub enum Value {
Scalar(String),
Array(Vec<Value>),
Object(IndexMap<String, Value>),
}Expand description
A node in the structprop value tree produced by parse().
The tree maps directly onto structprop’s three syntactic forms:
| Structprop syntax | Variant |
|---|---|
key = value | Value::Scalar |
key = { a b c } | Value::Array |
key { … } | Value::Object |
Scalar strings are stored verbatim; numeric or boolean coercion is
performed lazily via the Value::as_bool, Value::as_i64, and
Value::as_f64 helpers.
Variants§
Scalar(String)
A bare or quoted string token, stored as-is (no coercion applied).
Use Value::as_bool, Value::as_i64, or Value::as_f64 to
attempt type coercion, or Value::is_null to test for null.
Array(Vec<Value>)
An ordered list of values, corresponding to key = { … } syntax.
Array items may themselves be Value::Scalars or
Value::Objects (the latter written as { key = val … } inside the
outer braces).
Object(IndexMap<String, Value>)
An ordered map from string keys to values, corresponding to either a
key { … } block or the implicit top-level document object.
Key insertion order is preserved via IndexMap.
Implementations§
Source§impl Value
impl Value
Sourcepub fn as_bool(&self) -> Option<bool>
pub fn as_bool(&self) -> Option<bool>
Try to interpret this Value::Scalar as a bool.
Returns Some(true) for the literal string "true", Some(false) for
"false", and None for any other value or non-scalar variant.
This mirrors the Python implementation’s json.loads coercion.
Sourcepub fn as_i64(&self) -> Option<i64>
pub fn as_i64(&self) -> Option<i64>
Try to interpret this Value::Scalar as an i64.
Returns Some(n) if the string parses as a signed 64-bit integer, or
None otherwise.
Sourcepub fn as_f64(&self) -> Option<f64>
pub fn as_f64(&self) -> Option<f64>
Try to interpret this Value::Scalar as an f64.
Returns Some(n) if the string parses as a 64-bit float, or None
otherwise.
Sourcepub fn is_null(&self) -> bool
pub fn is_null(&self) -> bool
Returns true if this value is the scalar string "null".
Used by the deserializer to map structprop’s null token to
Option::None.