Make the generic rangedint interface untouchable
This commit is contained in:
parent
1f4e836828
commit
3a6031482d
1 changed files with 10 additions and 7 deletions
|
@ -1,8 +1,11 @@
|
|||
import bigi.{type BigInt}
|
||||
import ranged_int/interface.{type Interface, type Overflowable, Interface}
|
||||
|
||||
pub type GenericInterface(overflow_mode) =
|
||||
Interface(RangedInt(overflow_mode), overflow_mode)
|
||||
pub opaque type GenericInterface(overflow_mode) {
|
||||
GenericInterface(
|
||||
interface: Interface(RangedInt(overflow_mode), overflow_mode),
|
||||
)
|
||||
}
|
||||
|
||||
pub opaque type RangedInt(overflow_mode) {
|
||||
RangedInt(
|
||||
|
@ -31,7 +34,7 @@ pub fn to_bigint(int: RangedInt(overflow_mode)) {
|
|||
}
|
||||
|
||||
pub fn get_interface(int: RangedInt(overflow_mode)) {
|
||||
int.interface()
|
||||
GenericInterface(int.interface())
|
||||
}
|
||||
|
||||
pub fn compare(a: RangedInt(overflow_mode), b: RangedInt(overflow_mode)) {
|
||||
|
@ -68,16 +71,16 @@ pub fn power(a: RangedInt(overflow_mode), b: RangedInt(overflow_mode)) {
|
|||
|
||||
pub fn overflow(
|
||||
op: interface.OpResult(RangedInt(Overflowable)),
|
||||
interface: Interface(RangedInt(Overflowable), Overflowable),
|
||||
interface: GenericInterface(Overflowable),
|
||||
) {
|
||||
interface.overflow(op, interface)
|
||||
interface.overflow(op, interface.interface)
|
||||
}
|
||||
|
||||
pub fn eject(
|
||||
op: interface.OpResult(RangedInt(overflow_mode)),
|
||||
interface: Interface(RangedInt(overflow_mode), overflow_mode),
|
||||
interface: GenericInterface(overflow_mode),
|
||||
) {
|
||||
interface.eject(op, interface)
|
||||
interface.eject(op, interface.interface)
|
||||
}
|
||||
|
||||
fn gen_overflowable_interface(min: BigInt, max: BigInt) {
|
||||
|
|
Loading…
Reference in a new issue