haystack-types 0.1.1

Haystack types and traits for Rust.
Documentation
use std::str::FromStr;
use core::fmt::Display;
use num::Float;
use crate::{h_bool::HBool, h_coord::HCoord, h_date::HDate, h_datetime::HDateTime, h_dict::HDict, h_grid::HGrid, h_list::HList, h_marker::HMarker, h_na::HNA, h_null::HNull, h_number::HNumber, h_ref::HRef, h_remove::HRemove, h_str::HStr, h_time::HTime, h_uri::HUri, io::HBox, HVal, NumTrait};


pub trait HCast<'a,FT> 
    where
        FT: NumTrait + 'a,
        //T: HVal<'a,FT> + ?Sized
    {
    fn get_null(&self) -> Option<&HNull>;
    fn get_marker(&self) -> Option<&HMarker>;
    fn get_remove(&self) -> Option<&HRemove>;
    fn get_na(&self) -> Option<&HNA>;
    fn get_bool(&self) -> Option<&HBool>;
    fn get_string(&self) -> Option<&HStr>;
    fn get_uri(&self) -> Option<&HUri>;
    fn get_coord(&self) -> Option<&HCoord<FT>>;
    fn get_number(&self) -> Option<&HNumber<FT>>;
    fn get_datetime(&self) -> Option<&HDateTime>;
    fn get_date(&self) -> Option<&HDate>;
    fn get_time(&self) -> Option<&HTime>;
    fn get_ref(&self) -> Option<&HRef>;
    fn get_dict(&'a self) -> Option<&'a HDict<'a,FT>>;
    fn get_list(&'a self) -> Option<&'a HList<'a,FT>>;
    fn get_grid(&'a self) -> Option<&'a HGrid<'a,FT>>;
}

impl <'a,FT>HCast<'a,FT> for HBox<'a,FT>
    where
        FT: NumTrait + 'a,
        //T: HVal<'a,FT> + ?Sized,
    {
    fn get_null(&self) -> Option<&HNull> { self.get_null_val() }
    fn get_marker(&self) -> Option<&HMarker> { self.get_marker_val() }
    fn get_remove(&self) -> Option<&HRemove> { self.get_remove_val() }
    fn get_na(&self) -> Option<&HNA> { self.get_na_val() }
    fn get_bool(&self) -> Option<&HBool> { self.get_bool_val() }
    fn get_string(&self) -> Option<&HStr> { self.get_string_val() }
    fn get_uri(&self) -> Option<&HUri> { self.get_uri_val() }
    fn get_coord(&self) -> Option<&HCoord<FT>> { self.get_coord_val() }
    fn get_number(&self) -> Option<&HNumber<FT>> { self.get_number_val() }
    fn get_datetime(&self) -> Option<&HDateTime> { self.get_datetime_val() }
    fn get_date(&self) -> Option<&HDate> { self.get_date_val() }
    fn get_time(&self) -> Option<&HTime> { self.get_time_val() }
    fn get_ref(&self) -> Option<&HRef> { self.get_ref_val() }
    fn get_dict(&'a self) -> Option<&'a HDict<'a,FT>> { self.get_dict_val() }
    fn get_list(&'a self) -> Option<&'a HList<'a,FT>> { self.get_list_val() }
    fn get_grid(&'a self) -> Option<&'a HGrid<'a,FT>> { self.get_grid_val() }
}