fn range_enum(&self) -> Option<(String, Vec<DataType>, String)> {
        if self.range.len() <= 1 { return None; }
        let mut rangekeys = self.range.clone();
        rangekeys.sort();
        let enums = rangekeys.iter()
            .map(|x| {
                let mut tmpnode = Node::default();
                tmpnode.id = Some(x.clone());
                (
                    Node::namespace(&tmpnode),
                    to_enum!(DataType, x),
                    Node::fieldname(&tmpnode).to_camel_case(),
                )
            })
            .collect::<Vec<_>>();
        Some((
            enums[0].0.clone(),
            enums.iter().map(|x| x.1.clone()).collect::<Vec<_>>(),
            enums.iter().map(|x| x.2.clone()).collect::<Vec<_>>().join("") + "Union",
        ))
    }
/// Determines if this node has a range enum (ie, a range union) and if so
/// returns the namespace of that union and the union name
Determines if this node has a range enum  and if so
returns the namespace of that union and the union name
Determines if this node has a range enum and if so returns the namespace of that union and the union name
fn range_enum(&self) -> Option<(String, Vec<DataType>, String)> {
        if self.range.len() <= 1 { return None; }
        let mut rangekeys = self.range.clone();
        rangekeys.sort();
        let enums = rangekeys.iter()
            .map(|x| {
                let mut tmpnode = Node::default();
                tmpnode.id = Some(x.clone());
                (
                    Node::namespace(&tmpnode),
                    to_enum!(DataType, x),
                    Node::fieldname(&tmpnode).to_camel_case(),
                )
            })
            .collect::<Vec<_>>();
        Some((
            enums[0].0.clone(),
            enums.iter().map(|x| x.1.clone()).collect::<Vec<_>>(),
            enums.iter().map(|x| x.2.clone()).collect::<Vec<_>>().join("") + "Union",
        ))
    }
fn range_enum ( & self ) -> Option < ( String , Vec < DataType > , String ) > { if self . range . len ( ) <= 1 { return None ; } let mut rangekeys = self . range . clone ( ) ; rangekeys . sort ( ) ; let enums = rangekeys . iter ( ) . map ( | x | { let mut tmpnode = Node :: default ( ) ; tmpnode . id = Some ( x . clone ( ) ) ; ( Node :: namespace ( & tmpnode ) , to_enum ! ( DataType x ) , Node :: fieldname ( & tmpnode ) . to_camel_case ( ) , ) } ) . collect :: < Vec < _ > > ( ) ; Some ( ( enums [ 0 ] . 0 . clone ( ) , enums . iter ( ) . map ( | x | x . 1 . clone ( ) ) . collect :: < Vec < _ > > ( ) , enums . iter ( ) . map ( | x | x . 2 . clone ( ) ) . collect :: < Vec < _ > > ( ) . join ( " " ) + " " , ) ) }
Determines if this node has a range enum (ie, a range union) and if so
returns the namespace of that union and the union name
Determines if this node has a range enum ( ie a range union ) and if so returns the namespace of that union and the union name
&self
&self