pub trait IntAccess {
    fn as_i64(&self) -> Option<i64>;
    fn as_big_int(&self) -> Option<&BigInt>;
}
Expand description

Provides convenient integer accessors for integer values that are like AnyInt

Required Methods

Returns the value as an i64 if it can be represented as such.

Usage
let big_any = AnyInt::BigInt(BigInt::from(100));
let i64_any = AnyInt::I64(100);
assert_eq!(big_any.as_i64(), i64_any.as_i64());

// works on element too
let big_elem: OwnedElement = OwnedValue::Integer(big_any).into();
let i64_elem: BorrowedElement = BorrowedValue::Integer(i64_any).into();

assert_eq!(big_elem.as_i64(), i64_elem.as_i64());

Returns a reference as a BigInt if it is represented as such. Note that this method may return None if the underlying representation is not stored in a BigInt such as if it is represented as an i64 so it is somewhat asymmetric with respect to IntAccess::as_i64.

Usage
let big_any = AnyInt::BigInt(BigInt::from(100));
assert_eq!(BigInt::from_str("100").unwrap(), *big_any.as_big_int().unwrap());
let i64_any = AnyInt::I64(100);
assert_eq!(None, i64_any.as_big_int());

// works on element too
let big_elem: BorrowedElement = BorrowedValue::Integer(big_any).into();
assert_eq!(BigInt::from_str("100").unwrap(), *big_elem.as_big_int().unwrap());
let i64_elem: OwnedElement = OwnedValue::Integer(i64_any).into();
assert_eq!(None, i64_elem.as_big_int());

Implementors