/**
    Get references to both bounds of the interval.

    Returns ```None``` if the interval is empty.

    # Example

    ```
    use advanced_collections::interval::{Interval, LowerBound, UpperBound};
    fn main() {
       let i = Interval::open(3,5);
       let u = i.lower();
       let l = LowerBound::new(3, false);
       let u = UpperBound::new(5, false);
       assert_eq!(i.bounds(), Some((&l, &u)));
    }
    ```
    */
Get references to both bounds of the interval.
Get references to both bounds of the interval .
pub fn bounds(&self) -> Option<(&LowerBound<T>, &UpperBound<T>)> {
        match &self.imp{
            None => None,
            Some(a) => Some((
                &a.lo,
                &a.up
            ))
        }
    }
pub fn bounds ( & self ) -> Option < ( & LowerBound < T > , & UpperBound < T > ) > { match & self . imp { None => None , Some ( a ) => Some ( ( & a . lo , & a . up ) ) } }
Get references to both bounds of the interval.
Get references to both bounds of the interval .
&self
example
```
use advanced_collections::interval::{Interval, LowerBound, UpperBound};
fn main() {
let i = Interval::open(3,5);
let u = i.lower();
let l = LowerBound::new(3, false);
let u = UpperBound::new(5, false);
assert_eq!(i.bounds(), Some((&l, &u)));
}
```
` ` ` use advanced_collections :: interval :: { Interval LowerBound UpperBound } ; fn main () { let i = Interval :: open ( 3 5 ) ; let u = i . lower () ; let l = LowerBound :: new ( 3 false ) ; let u = UpperBound :: new ( 5 false ) ; assert_eq! ( i . bounds () Some (( &l &u ))) ; } ` ` `