[][src]Enum edn_rs::edn::Edn

pub enum Edn {
    Vector(Vector),
    Set(Set),
    Map(Map),
    List(List),
    Key(String),
    Symbol(String),
    Str(String),
    Int(isize),
    UInt(usize),
    Double(Double),
    Rational(String),
    Char(char),
    Bool(bool),
    Nil,
    Empty,
}

EdnType is an Enum with possible values for an EDN type Symbol and Char are not yet implemented

Variants

Vector(Vector)
Set(Set)
Map(Map)
List(List)
Key(String)
Symbol(String)
Str(String)
Int(isize)
UInt(usize)
Double(Double)
Rational(String)
Char(char)
Bool(bool)
Nil
Empty

Implementations

impl Edn[src]

pub fn to_float(&self) -> Option<f64>[src]

to_float takes an Edn and returns an Option<f64> with its value. Most types return None

use edn_rs::edn::{Edn, Vector};

let key = Edn::Key(String::from("1234"));
let q = Edn::Rational(String::from("3/4"));
let i = Edn::Int(12isize);

assert_eq!(Edn::Vector(Vector::empty()).to_float(), None);
assert_eq!(key.to_float().unwrap(),1234f64);
assert_eq!(q.to_float().unwrap(), 0.75f64);
assert_eq!(i.to_float().unwrap(), 12f64);

pub fn to_int(&self) -> Option<isize>[src]

to_int takes an Edn and returns an Option<isize> with its value. Most types return None

use edn_rs::edn::{Edn, Vector};

let key = Edn::Key(String::from("1234"));
let q = Edn::Rational(String::from("3/4"));
let f = Edn::Double(12.3f64.into());

assert_eq!(Edn::Vector(Vector::empty()).to_float(), None);
assert_eq!(key.to_int().unwrap(),1234isize);
assert_eq!(q.to_int().unwrap(), 1isize);
assert_eq!(f.to_int().unwrap(), 12isize);

pub fn get<I: Index>(&self, index: I) -> Option<&Edn>[src]

Index into a EDN vector, list, set or map. A string index can be used to access a value in a map, and a usize index can be used to access an element of a seqs.

Returns None if the type of self does not match the type of the index, for example if the index is a string and self is a seq or a number. Also returns None if the given key does not exist in the map or the given index is not within the bounds of the seq.

#[macro_use]
extern crate edn_rs;
use edn_rs::edn::{Edn, Map, Vector};

fn main() {
    let edn = edn!([ 1 1.2 3 {false :f nil 3/4}]);

    assert_eq!(edn[1], edn!(1.2));
    assert_eq!(edn.get(1).unwrap(), &edn!(1.2));
    assert_eq!(edn[3]["false"], edn!(:f));
    assert_eq!(edn[3].get("false").unwrap(), &Edn::Key("f".to_string()));
}

pub fn get_mut<I: Index>(&mut self, index: I) -> Option<&mut Edn>[src]

Mutably index into a EDN vector, set, list or map. A string index can be used to access a value in a map, and a usize index can be used to access an element of a seq.

Returns None if the type of self does not match the type of the index, for example if the index is a string and self is a seq or a number. Also returns None if the given key does not exist in the map or the given index is not within the bounds of the seq.

#[macro_use]
extern crate edn_rs;
use edn_rs::edn::{Edn, Map, Vector};

fn main() {
    let mut edn = edn!([ 1 1.2 3 {false :f nil 3/4}]);

    assert_eq!(edn[1], edn!(1.2));
    assert_eq!(edn.get_mut(1).unwrap(), &edn!(1.2));
    assert_eq!(edn[3]["false"], edn!(:f));
    assert_eq!(edn[3].get_mut("false").unwrap(), &Edn::Key("f".to_string()));
}

Trait Implementations

impl Clone for Edn[src]

impl Debug for Edn[src]

impl Display for Edn[src]

impl Eq for Edn[src]

impl FromStr for Edn[src]

type Err = String

The associated error which can be returned from parsing.

impl Hash for Edn[src]

impl<I> Index<I> for Edn where
    I: Index, 
[src]

type Output = Edn

The returned type after indexing.

impl<I> IndexMut<I> for Edn where
    I: Index, 
[src]

impl Ord for Edn[src]

impl PartialEq<Edn> for Edn[src]

impl PartialOrd<Edn> for Edn[src]

impl StructuralEq for Edn[src]

impl StructuralPartialEq for Edn[src]

Auto Trait Implementations

impl RefUnwindSafe for Edn

impl Send for Edn

impl Sync for Edn

impl Unpin for Edn

impl UnwindSafe for Edn

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.