io.github.iltotore.iron
Members list
Type members
Classlikes
A typeclass representing the implementation of a constraint of a certain type of value.
A typeclass representing the implementation of a constraint of a certain type of value.
Type parameters
- A
-
the type of the value to test.
- C
-
the constraint associated with this implementation.
Attributes
- Companion
- object
- Source
- Constraint.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
Show all
Attributes
- Companion
- trait
- Source
- Constraint.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Constraint.type
An algebraic implication between two constraints (e.g transitivity for constraint.numeric.Greater).
An algebraic implication between two constraints (e.g transitivity for constraint.numeric.Greater).
Type parameters
- C1
-
the assumed constraint.
- C2
-
the constraint implied by
C1
.
Attributes
- Companion
- object
- Source
- Implication.scala
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Companion
- class
- Source
- Implication.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Implication.type
Attributes
- Source
- package.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
IronType.type
Attributes
- Companion
- object
- Source
- NegShift.scala
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Companion
- trait
- Source
- NegShift.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
NegShift.type
Attributes
- Companion
- object
- Source
- PosShift.scala
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Companion
- trait
- Source
- PosShift.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
PosShift.type
Utility trait for new types' companion object.
Utility trait for new types' companion object.
Type parameters
- A
-
the base type of the new type
- C
-
the constraint type of the new type
- T
-
the new type (equivalent to
A :| C
ifT
is a transparent alias)
Attributes
- Companion
- object
- Source
- RefinedTypeOps.scala
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Companion
- trait
- Source
- RefinedTypeOps.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
RefinedTypeOps.type
A RuntimeConstraint is similar to a Constraint with the difference that it can be used in non-inlined methods.
A RuntimeConstraint is similar to a Constraint with the difference that it can be used in non-inlined methods.
This allows refinement of values in polymorphic methods / givens without the use of inline
. e.g., the code below would fail to compile if Constraint was used instead.
def foo[A, C](value: A)(using c: RuntimeConstraint[A, C]): Either[String, A :| C] =
if c.test(value) then Right(value.assume[C]) else Left(c.message)
In cases that one does not exist in scope, one will be automatically derived from a Constraint.
Attributes
- Companion
- object
- Source
- RuntimeConstraint.scala
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Companion
- class
- Source
- RuntimeConstraint.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
RuntimeConstraint.type
Attributes
- Source
- cats.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
cats.type
Implicit Encoders and Decoders for refined types.
Implicit Encoders and Decoders for refined types.
Attributes
- Source
- circe.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
circe.type
Attributes
- Source
- ciris.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ciris.type
Methods and types to ease compile-time operations.
Methods and types to ease compile-time operations.
Attributes
- Source
- compileTime.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
compileTime.type
Attributes
- Source
- decline.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
decline.type
Attributes
- Source
- jsoniter.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
jsoniter.type
Attributes
- Source
- skunk.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
skunk.type
Implicit Reader
s and Writer
s for refined types using uPickle.
Implicit Reader
s and Writer
s for refined types using uPickle.
Attributes
- Source
- upickle.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
upickle.type
Attributes
- Source
- zioJson.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
zioJson.type
Types
Alias for IronType. Similar to the mathematical symbol |
in e.g {x in R | x > 0}
.
Alias for IronType. Similar to the mathematical symbol |
in e.g {x in R | x > 0}
.
Attributes
- Source
- package.scala
Alias for Implication. Similar to the mathematical implication symbol, often represented by an arrow.
Alias for Implication. Similar to the mathematical implication symbol, often represented by an arrow.
Attributes
- Source
- Implication.scala
An Iron type (refined).
An Iron type (refined).
Type parameters
- A
-
the underlying type.
- C
-
the predicate/constraint guarding this type.
Attributes
- Source
- package.scala
Extensions
Extensions
Refine the given value at runtime, assuming the constraint holds.
Refine the given value at runtime, assuming the constraint holds.
Value parameters
- constraint
-
the constraint to test with the value to refine.
Attributes
- Returns
-
a constrained value, without performing constraint checks.
- See also
-
autoRefine, refine.
- Source
- package.scala
Refine the given value at runtime, resulting in an Either.
Refine the given value at runtime, resulting in an Either.
Value parameters
- constraint
-
the constraint to test with the value to refine.
Attributes
- Returns
-
a Right containing this value as IronType or a Left containing the constraint message.
- See also
-
autoRefine, refine, refineOption.
- Source
- package.scala
Refine the given value at runtime, resulting in an Option.
Refine the given value at runtime, resulting in an Option.
Value parameters
- constraint
-
the constraint to test with the value to refine.
Attributes
- Returns
-
an Option containing this value as IronType or None.
- See also
-
autoRefine, refine, refineEither.
- Source
- package.scala
Refine the given value again at runtime, assuming the constraint holds.
Refine the given value again at runtime, assuming the constraint holds.
Attributes
- Returns
-
a constrained value, without performing constraint checks.
- See also
-
assume.
- Source
- conversion.scala
Refine the given value again at runtime, resulting in an Either.
Refine the given value again at runtime, resulting in an Either.
Value parameters
- constraint
-
the new constraint to test.
Attributes
- Returns
-
a Right containing this value refined with
C1 & C2
or a Left containing the constraint message. - See also
- Source
- conversion.scala
Refine the given value again at runtime, resulting in an Option.
Refine the given value again at runtime, resulting in an Option.
Value parameters
- constraint
-
the new constraint to test.
Attributes
- Returns
-
a Option containing this value refined with
C1 & C2
or None. - See also
- Source
- conversion.scala
Transform A :| C1 :| C2
to A :| (C1 & C2)
Transform A :| (C1 & C2)
to A :| C1 :| C2
Implicits
Implicits
Implicitly cast a constrained value to another if verified.
Implicitly cast a constrained value to another if verified.
Type parameters
- A
-
the refined type.
- C1
-
the original constraint.
- C2
-
the target constraint.
Value parameters
- `C1
-
==> C2
the evidence that the original constraint
C1implies
C2`. - value
-
the refined to value to cast.
Attributes
- Returns
-
the given value constrained by
C2
. - Source
- conversion.scala
Implicitly cast an iterable constrained by ForAll[C1]
into an iterable of elements constrained by C2
if C1
implies C2
.
Implicitly cast an iterable constrained by ForAll[C1]
into an iterable of elements constrained by C2
if C1
implies C2
.
Type parameters
- A
-
the refined type.
- C1
-
the original constraint.
- C2
-
the target constraint.
- I
-
the iterable type.
Value parameters
- `C1
-
==> C2
the evidence that
C1implies
C2`. - iterable
-
the iterable to factorize.
Attributes
- Returns
-
the given value as instance of
I[A :| C2]
. - See also
- Source
- conversion.scala
Implicitly cast an iterable of elements constrained by C1
into an iterable constrained by ForAll[C2]
if C1
implies C2
.
Implicitly cast an iterable of elements constrained by C1
into an iterable constrained by ForAll[C2]
if C1
implies C2
.
Type parameters
- A
-
the refined type.
- C1
-
the original constraint.
- C2
-
the target constraint.
- I
-
the iterable type.
Value parameters
- `C1
-
==> C2
the evidence that
C1implies
C2`. - iterable
-
the iterable to factorize.
Attributes
- Returns
-
the given value as instance of
I[A] :| ForAll[C2]
. - See also
- Source
- conversion.scala
Implicitly refine at compile-time the given value.
Implicitly refine at compile-time the given value.
Type parameters
- A
-
the refined type.
- C
-
the constraint applied to the type.
Value parameters
- constraint
-
the implementation of
C
to check. - value
-
the value to refine.
Attributes
- Returns
-
the given value typed as IronType
- Note
-
This method ensures that the value satisfies the constraint. If it doesn't or isn't evaluable at compile-time, the compilation is aborted.
- Source
- conversion.scala
Exports
Defined exports
Attributes
- Source
- package.scala
Attributes
- Source
- package.scala
Attributes
- Source
- package.scala
Attributes
- Source
- package.scala
Attributes
- Source
- package.scala
Attributes
- Source
- package.scala
Attributes
- Source
- package.scala
Attributes
- Source
- package.scala
Attributes
- Source
- package.scala