pub fn upper(&self) -> &T {
        match self.dir {
            RangeDir::To => &self.right,
            RangeDir::Downto => &self.left,
        }
    }
/// Return the upper bound of the range.
///
/// # Example
///
/// ```
/// use moore_vhdl::ty2::{IntegerRange, BigInt};
///
/// let a = IntegerRange::ascending(0, 42);
/// let b = IntegerRange::descending(42, 0);
///
/// assert_eq!(a.upper(), &BigInt::from(42));
/// assert_eq!(b.upper(), &BigInt::from(42));
/// ```
Return the upper bound of the range.
Return the upper bound of the range .
pub fn upper(&self) -> &T {
        match self.dir {
            RangeDir::To => &self.right,
            RangeDir::Downto => &self.left,
        }
    }
pub fn upper ( & self ) -> & T { match self . dir { RangeDir :: To => & self . right , RangeDir :: Downto => & self . left , } }
Return the upper bound of the range.
Return the upper bound of the range .
&self
&self
example
```
use moore_vhdl::ty2::{IntegerRange, BigInt}.

let a = IntegerRange::ascending(0, 42);
let b = IntegerRange::descending(42, 0).


` ` ` use moore_vhdl :: ty2 :: { IntegerRange BigInt } . let a = IntegerRange :: ascending ( 0 42 ) ; let b = IntegerRange :: descending ( 42 0 ) .