121 lines
2.4 KiB
Dart
121 lines
2.4 KiB
Dart
import 'package:adaptive_number/src/number.dart';
|
|
import 'package:fixnum/fixnum.dart';
|
|
|
|
class NumberInt64 implements Number {
|
|
final Int64 _value;
|
|
|
|
NumberInt64(this._value);
|
|
|
|
@override
|
|
NumberInt64 operator +(Number value) {
|
|
return NumberInt64(_value + (value.val as Int64));
|
|
}
|
|
|
|
@override
|
|
NumberInt64 operator -(Number value) {
|
|
return NumberInt64(_value - (value.val as Int64));
|
|
}
|
|
|
|
@override
|
|
NumberInt64 operator -() {
|
|
return NumberInt64(-(val));
|
|
}
|
|
|
|
@override
|
|
NumberInt64 operator *(Number value) {
|
|
return NumberInt64(_value * (value.val as Int64));
|
|
}
|
|
|
|
@override
|
|
NumberInt64 operator &(Number value) {
|
|
return NumberInt64(_value & (value.val as Int64));
|
|
}
|
|
|
|
@override
|
|
NumberInt64 operator >>(int value) {
|
|
return NumberInt64(_value >> value);
|
|
}
|
|
|
|
@override
|
|
NumberInt64 operator <<(int value) {
|
|
return NumberInt64(_value << value);
|
|
}
|
|
|
|
@override
|
|
NumberInt64 operator ^(Number value) {
|
|
return NumberInt64(_value ^ (value.val as Int64));
|
|
}
|
|
|
|
@override
|
|
NumberInt64 operator |(Number value) {
|
|
return NumberInt64(_value | (value.val as Int64));
|
|
}
|
|
|
|
@override
|
|
bool operator <(Number value) {
|
|
return (intValue < value.intValue);
|
|
}
|
|
|
|
@override
|
|
bool operator <=(Number value) {
|
|
return (intValue <= value.intValue);
|
|
}
|
|
|
|
@override
|
|
bool operator >(Number value) {
|
|
return (intValue > value.intValue);
|
|
}
|
|
|
|
@override
|
|
bool operator >=(Number value) {
|
|
return (intValue >= value.intValue);
|
|
}
|
|
|
|
@override
|
|
NumberInt64 operator %(Number value) {
|
|
return NumberInt64(_value % (value.val as Int64));
|
|
}
|
|
|
|
@override
|
|
Number operator ~/(Number value) {
|
|
return NumberInt64(_value ~/ (value.val as Int64));
|
|
}
|
|
|
|
@override
|
|
Int64 get val => _value;
|
|
|
|
@override
|
|
int get intValue => _value.toInt();
|
|
|
|
@override
|
|
bool operator ==(Object other) =>
|
|
identical(this, other) ||
|
|
other is NumberInt64 &&
|
|
runtimeType == other.runtimeType &&
|
|
_value == other._value;
|
|
|
|
@override
|
|
int get hashCode => _value.hashCode;
|
|
|
|
@override
|
|
String toString() {
|
|
return _value.toString();
|
|
}
|
|
|
|
@override
|
|
String toRadixString(int radix) {
|
|
return _value.toRadixString(radix);
|
|
}
|
|
|
|
@override
|
|
NumberInt64 abs() {
|
|
return NumberInt64(_value.abs());
|
|
}
|
|
|
|
@override
|
|
int compareTo(Number value) {
|
|
return _value.compareTo(value.val as Int64);
|
|
}
|
|
}
|
|
|
|
Number createNumber(int val) => NumberInt64(Int64(val));
|