RefinedTypeOps

io.github.iltotore.iron.RefinedTypeOps
See theRefinedTypeOps companion object
trait RefinedTypeOps[A, C, T](using _rtc: RuntimeConstraint[A, C])

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 if T is a transparent alias)

Attributes

Companion
object
Source
RefinedTypeOps.scala
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

inline def apply(value: IronType[A, C]): T

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

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
RefinedTypeOps.scala
inline def applyAllUnsafe[F[_]](wrapper: F[A])(using mapLogic: MapLogic[F]): F[T]

Refine the given value(s) at runtime.

Refine the given value(s) at runtime.

Attributes

Returns

the given values as T.

Throws
IllegalArgumentException

if the constraint is not satisfied.

See also

applyUnsafe.

Source
RefinedTypeOps.scala
inline def assume(value: A): T

Refine the given value, assuming the constraint holds.

Refine the given value, assuming the constraint holds.

Attributes

Returns

a constrained value, without performing constraint checks.

See also

assumeAll, apply, applyUnsafe.

Source
RefinedTypeOps.scala
inline def assumeAll[F[_]](wrapper: F[A]): F[T]

Refine the given value(s), assuming the constraint holds.

Refine the given value(s), assuming the constraint holds.

Attributes

Returns

a wrapper of constrained values, without performing constraint checks.

See also

assume.

Source
RefinedTypeOps.scala
def either(value: A): Either[String, T]

Refine the given value at runtime, resulting in an Either.

Refine the given value at runtime, resulting in an Either.

Attributes

Returns

a Right containing this value as T or a Left containing the constraint message.

See also

fromIronType, option, applyUnsafe.

Source
RefinedTypeOps.scala
inline def eitherAll[F[_]](wrapper: F[A])(using mapLogic: MapLogic[F]): Either[String, F[T]]

Refine the given value(s) at runtime, resulting in an Either.

Refine the given value(s) at runtime, resulting in an Either.

Attributes

Returns

a Right containing the given values as T or a Left containing the constraint message.

See also
Source
RefinedTypeOps.scala
def option(value: A): Option[T]

Refine the given value at runtime, resulting in an Option.

Refine the given value at runtime, resulting in an Option.

Attributes

Returns

an Option containing this value as T or None.

See also

fromIronType, either, applyUnsafe.

Source
RefinedTypeOps.scala
inline def optionAll[F[_]](wrapper: F[A])(using mapLogic: MapLogic[F]): Option[F[T]]

Refine the given value at runtime, resulting in an Option.

Refine the given value at runtime, resulting in an Option.

Attributes

Returns

an Option containing the refined values as F[T] or None.

See also
Source
RefinedTypeOps.scala
inline def rtc: RuntimeConstraint[A, C]

The runtime constraint of the underlying IronType. Can be used in non-inline methods and to improve runtime performances.

The runtime constraint of the underlying IronType. Can be used in non-inline methods and to improve runtime performances.

Attributes

Source
RefinedTypeOps.scala
def unapply(value: T): Option[IronType[A, C]]

Attributes

Source
RefinedTypeOps.scala

Givens

Givens

inline given given_Mirror_T: given_Mirror_T

Attributes

Source
RefinedTypeOps.scala
given given_TypeTest_L_T[L](using test: TypeTest[L, A]): given_TypeTest_L_T[L]

Attributes

Source
RefinedTypeOps.scala
inline given given_TypeTest_T_R[R]: TypeTest[T, R]

Attributes

Source
RefinedTypeOps.scala

Extensions

Extensions

extension (wrapper: T)
inline def value: IronType[A, C]

Attributes

Source
RefinedTypeOps.scala