[−][src]Enum hocon::Hocon
An HOCON document
Values can be retrieved as a basic type, with basic cast between some of the value types:
Automatic type conversions.
If the value if not of the expected type, a None
will be returned.
If the value is a Hocon::Hash
, its values can be
accessed by indexing with a str
, as in hash[key]
. If the value is an
Hocon::Array
, its values can be accessed by indexing
with a usize
. An Hocon::Hash
whose keys can be
converted to numeric values ("0"
, "1"
, ...) can be indexed with a usize
following
the rules described in
Conversion of numerically-indexed objects to arrays.
Indexing a Hocon
value with a wrong key type, or a type of value that can't be indexed
will return a Hocon::BadValue
with an error of type
crate::Error::InvalidKey
.
Indexing a Hocon
value with a key that is not present will return a
Hocon::BadValue
with an error of type
crate::Error::MissingKey
.
Values can also be accessed as a Duration
or a size following the rules described in
Units format.
Usage
// Accessing a value of the expected type assert_eq!( HoconLoader::new().load_str(r#"{ a: 7 }"#)?.hocon()?["a"].as_i64(), Some(7) ); // Accessing a value with automatic conversion assert_eq!( HoconLoader::new().load_str(r#"{ a: off }"#)?.hocon()?["a"].as_bool(), Some(false) ); // Accessing an Array assert_eq!( HoconLoader::new().load_str(r#"{ a: [ first, second ] }"#)?.hocon()?["a"][0].as_string(), Some(String::from("first")) ); // Accessing an Hash with a missing key assert_eq!( HoconLoader::new().load_str(r#"{ a: 7 }"#)?.hocon()?["b"], Hocon::BadValue(Error::MissingKey) ); // Accessing an Hash as if it was an Array assert_eq!( HoconLoader::new().load_str(r#"{ a: 7 }"#)?.hocon()?[0], Hocon::BadValue(Error::InvalidKey) );
Variants
Real(f64)
A floating value
Integer(i64)
An integer value
String(String)
A string
Boolean(bool)
A boolean
Array(Vec<Hocon>)
An array of Hocon
values
Hash(HashMap<String, Hocon>)
An HashMap of Hocon
values with keys
Null
A null value
BadValue(Error)
A BadValue
, marking an error in parsing or a missing value
Methods
impl Hocon
[src]
pub fn as_f64(&self) -> Option<f64>
[src]
Try to cast a value as a f64
value
pub fn as_i64(&self) -> Option<i64>
[src]
Try to cast a value as a i64
value
pub fn as_string(&self) -> Option<String>
[src]
Try to cast a value as a String
value
pub fn as_bool(&self) -> Option<bool>
[src]
Try to cast a value as a bool
value
impl Hocon
[src]
pub fn as_bytes(&self) -> Option<f64>
[src]
Try to return a value as a size in bytes according to size in bytes format.
Bare numbers are taken to be in bytes already, while strings are parsed as a number plus an optional unit string.
Example
assert_eq!( HoconLoader::new().load_str(r#"{ size = 1.5KiB }"#)?.hocon()?["size"].as_bytes(), Some(1536.0) );
pub fn as_milliseconds(&self) -> Option<f64>
[src]
Try to return a value as a duration in milliseconds according to duration format.
Bare numbers are taken to be in bytes already, while strings are parsed as a number plus an optional unit string.
Example
assert_eq!( HoconLoader::new().load_str(r#"{ duration = 1.5 hour }"#)? .hocon()?["duration"].as_milliseconds(), Some(5400000.0) );
pub fn as_nanoseconds(&self) -> Option<f64>
[src]
Try to return a value as a duration in nanoseconds according to duration format.
Bare numbers are taken to be in bytes already, while strings are parsed as a number plus an optional unit string.
Example
assert_eq!( HoconLoader::new().load_str(r#"{ duration = 1.5 hour }"#)? .hocon()?["duration"].as_nanoseconds(), Some(5400000000000.0) );
pub fn as_microseconds(&self) -> Option<f64>
[src]
Try to return a value as a duration in microseconds according to duration format.
Bare numbers are taken to be in bytes already, while strings are parsed as a number plus an optional unit string.
Example
assert_eq!( HoconLoader::new().load_str(r#"{ duration = 1.5 hour }"#)? .hocon()?["duration"].as_microseconds(), Some(5400000000.0) );
pub fn as_seconds(&self) -> Option<f64>
[src]
Try to return a value as a duration in seconds according to duration format.
Bare numbers are taken to be in bytes already, while strings are parsed as a number plus an optional unit string.
Example
assert_eq!( HoconLoader::new().load_str(r#"{ duration = 1.5 hour }"#)? .hocon()?["duration"].as_seconds(), Some(5400.0) );
pub fn as_minutes(&self) -> Option<f64>
[src]
Try to return a value as a duration in minutes according to duration format.
Bare numbers are taken to be in bytes already, while strings are parsed as a number plus an optional unit string.
Example
assert_eq!( HoconLoader::new().load_str(r#"{ duration = 1.5 hour }"#)? .hocon()?["duration"].as_minutes(), Some(90.0) );
pub fn as_hours(&self) -> Option<f64>
[src]
Try to return a value as a duration in hours according to duration format.
Bare numbers are taken to be in bytes already, while strings are parsed as a number plus an optional unit string.
Example
assert_eq!( HoconLoader::new().load_str(r#"{ duration = 1.5 hour }"#)? .hocon()?["duration"].as_hours(), Some(1.5) );
pub fn as_days(&self) -> Option<f64>
[src]
Try to return a value as a duration in days according to duration format.
Bare numbers are taken to be in bytes already, while strings are parsed as a number plus an optional unit string.
Example
assert_eq!( HoconLoader::new().load_str(r#"{ duration = 1.5 hour }"#)? .hocon()?["duration"].as_days(), Some(0.0625) );
pub fn as_weeks(&self) -> Option<f64>
[src]
Try to return a value as a duration in weeks according to duration format.
Bare numbers are taken to be in bytes already, while strings are parsed as a number plus an optional unit string.
Example
assert_eq!( HoconLoader::new().load_str(r#"{ duration = 1.5 days }"#)? .hocon()?["duration"].as_weeks(), Some(0.21428571428571427) );
pub fn as_months(&self) -> Option<f64>
[src]
Try to return a value as a duration in months according to duration format.
Bare numbers are taken to be in bytes already, while strings are parsed as a number plus an optional unit string.
Example
assert_eq!( HoconLoader::new().load_str(r#"{ duration = 1.5 days }"#)? .hocon()?["duration"].as_months(), Some(0.05) );
pub fn as_years(&self) -> Option<f64>
[src]
Try to return a value as a duration in years according to duration format.
Bare numbers are taken to be in bytes already, while strings are parsed as a number plus an optional unit string.
Example
assert_eq!( HoconLoader::new().load_str(r#"{ duration = 1.5 days }"#)? .hocon()?["duration"].as_years(), Some(0.00410958904109589) );
pub fn as_duration(&self) -> Option<Duration>
[src]
Try to return a value as a duration according to duration format.
Bare numbers are taken to be in bytes already, while strings are parsed as a number plus an optional unit string.
Example
assert_eq!( HoconLoader::new().load_str(r#"{ duration = 1.5 hours }"#)? .hocon()?["duration"].as_duration(), Some(std::time::Duration::from_secs(5400)) );
Trait Implementations
impl PartialEq<Hocon> for Hocon
[src]
impl Clone for Hocon
[src]
fn clone(&self) -> Hocon
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Debug for Hocon
[src]
impl<'a> Index<&'a str> for Hocon
[src]
type Output = Hocon
The returned type after indexing.
fn index(&self, idx: &'a str) -> &Self::Output
[src]
impl Index<usize> for Hocon
[src]
Auto Trait Implementations
Blanket Implementations
impl<T> From for T
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,