The largest value representable as a non-negative Int
,
which is PosZInt(2147483647)
.
The largest value representable as a non-negative Int
,
which is PosZInt(2147483647)
.
The smallest value representable as a non-negative Int
,
which is PosZInt(0)
.
The smallest value representable as a non-negative Int
,
which is PosZInt(0)
.
A factory method, implemented via a macro, that produces a
PosZInt
if passed a valid Int
literal, otherwise a compile time error.
A factory method, implemented via a macro, that produces a
PosZInt
if passed a valid Int
literal, otherwise a compile time error.
The macro that implements this method will inspect the
specified Int
expression at compile time. If
the expression is a non-negative Int
literal,
i.e., with a value greater than or equal to 0, it will return
a PosZInt
representing that value. Otherwise,
the passed Int
expression is either a literal
that is negative, or is not a literal, so this method
will give a compiler error.
This factory method differs from the from
factory method in that this method is implemented via a
macro that inspects Int
literals at compile
time, whereas from
inspects Int
values at run time.
the Int
literal expression to inspect at
compile time, and if non-negative, to return wrapped in a
PosZInt
at run time.
the specified, valid Int
literal value wrapped
in a PosZInt
. (If the specified expression is not a valid
Int
literal, the invocation of this method will not
compile.)
A factory/assertion method that produces an PosZInt
given a
valid Int
value, or throws AssertionError
,
if given an invalid Int
value.
A factory/assertion method that produces an PosZInt
given a
valid Int
value, or throws AssertionError
,
if given an invalid Int
value.
Note: you should use this method only when you are convinced that it will
always succeed, i.e., never throw an exception. It is good practice to
add a comment near the invocation of this method indicating why you think
it will always succeed to document your reasoning. If you are not sure an
ensuringValid
call will always succeed, you should use one of the other
factory or validation methods provided on this object instead: isValid
,
tryingValid
, passOrElse
, goodOrElse
, or rightOrElse
.
This method will inspect the passed Int
value
and if it is a non-negative Int
,
i.e., a value greater than or equal to 0, it will
return a PosZInt
representing that value.
Otherwise, the passed Int
value is negative, so this method
will throw AssertionError
.
This factory method differs from the apply
factory method in that apply
is implemented
via a macro that inspects Int
literals at
compile time, whereas this method inspects
Int
values at run time.
It differs from a vanilla assert
or ensuring
call in that you get something you didn't already have if the assertion
succeeds: a type that promises an Int
is positive or zero.
the Int
to inspect, and if non-negative, return
wrapped in a PosZInt
.
the specified Int
value wrapped
in a PosZInt
, if it is positive, else
throws AssertionError
.
if the passed value is not zero or positive
A factory method that produces an Option[PosZInt]
given an
Int
value.
A factory method that produces an Option[PosZInt]
given an
Int
value.
This method will inspect the passed Int
value
and if it is a non-negative Int
,
i.e., a value greater than or equal to 0, it will
return a PosZInt
representing that value,
wrapped in a Some
. Otherwise, the passed
Int
value is negative, so this method
will return None
.
This factory method differs from the apply
factory method in that apply
is implemented
via a macro that inspects Int
literals at
compile time, whereas from
inspects
Int
values at run time.
the Int
to inspect, and if non-negative, return
wrapped in a Some[PosZInt]
.
the specified Int
value wrapped
in a Some[PosZInt]
, if it is positive, else
None
.
A factory method that produces a PosZInt
given a
Int
value and a default PosZInt
.
A factory method that produces a PosZInt
given a
Int
value and a default PosZInt
.
This method will inspect the passed Int
value and if
it is a positive or zero Int
, i.e., a value greater
than or equal to 0, it will return a PosZInt
representing that value.
Otherwise, the passed Int
value is negative, so this
method will return the passed default
value.
This factory method differs from the apply
factory method in that apply
is implemented
via a macro that inspects Int
literals at
compile time, whereas from
inspects
Int
values at run time.
the Int
to inspect, and if positive or zero, return.
the PosZInt
to return if the passed
Int
value is not positive or zero.
the specified Int
value wrapped in a
PosZInt
, if it is positive or zero, else the
default
PosZInt
value.
A predicate method that returns true if a given
Int
value is positive or zero.
A predicate method that returns true if a given
Int
value is positive or zero.
the Int
to inspect, and if positive or zero, return true.
true if the specified Int
is positive or zero, else false.
Implicit Ordering instance.
Implicit widening conversion from PosZInt
to
Double
.
Implicit widening conversion from PosZInt
to
Double
.
the Int
value underlying the specified
PosZInt
, widened to Double
.
Implicit widening conversion from PosZInt
to
Float
.
Implicit widening conversion from PosZInt
to
Float
.
the Int
value underlying the specified
PosZInt
, widened to Float
.
Implicit widening conversion from PosZInt
to
Int
.
Implicit widening conversion from PosZInt
to
Int
.
the Int
value underlying the specified
PosZInt
.
Implicit widening conversion from PosZInt
to
Long
.
Implicit widening conversion from PosZInt
to
Long
.
the Int
value underlying the specified
PosZInt
, widened to Long
.
Implicit widening conversion from PosZInt
to
PosZDouble
.
Implicit widening conversion from PosZInt
to
PosZDouble
.
the Int
value underlying the specified
PosZInt
, widened to Double
and wrapped in a PosZDouble
.
Implicit widening conversion from PosZInt
to
PosZFloat
.
Implicit widening conversion from PosZInt
to
PosZFloat
.
the Int
value underlying the specified
PosZInt
, widened to Float
and
wrapped in a PosZFloat
.
Implicit widening conversion from PosZInt
to
PosZLong
.
Implicit widening conversion from PosZInt
to
PosZLong
.
the Int
value underlying the specified
PosZInt
, widened to Long
and
wrapped in a PosZLong
.
The companion object for
PosZInt
that offers factory methods that producePosZInt
s, implicit widening conversions fromPosZInt
to other numeric types, and maximum and minimum constant values forPosZInt
.