oxygen.meta.typing

Members list

Type members

Classlikes

sealed trait TypeRelationship[A, B]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait DisjointRelationship[A, B]
class Disjoint[A, B]
trait NotDisjoint[A, B]
class Equals[A, B]
class StrictSubType[A, B]
class StrictSuperType[A, B]
trait EqualsRelationship[A, B]
trait NotEquals[A, B]
trait NotStrictSubType[A, B]
trait NotStrictSuperType[A, B]
trait SubTypeRelationship[A, B]
trait NotSubType[A, B]
trait SubType[A, B]
trait SuperTypeRelationship[A, B]
trait NotSuperType[A, B]
trait SuperType[A, B]
Show all
Self type
Constraints[A, B]

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
trait UnionRemoving[_Total, _Removing]

Given a type Total and type Removing, gives you a Remaining such that: Total <:< (Removing | Remaining)

Given a type Total and type Removing, gives you a Remaining such that: Total <:< (Removing | Remaining)

extension[A](self: A) def filterPartial[B](using ev: UnionRemoving[B]): Either[ev.Remaining, B] = ev(self).flip

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Instance[_Total, _Removing, _Remaining]
trait NothingRemainingInstance[_Total, _Removing]
object UnionRemoving

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type

Types

type !<:<[A, B] = NotSubType[A, B]
type !<<:<[A, B] = NotStrictSubType[A, B]
type !>:>[A, B] = NotSuperType[A, B]
type !>>:>[A, B] = NotStrictSuperType[A, B]
type <:<[A, B] = SubType[A, B]
type <<:<[A, B] = StrictSubType[A, B]
type =!=[A, B] = NotEquals[A, B]
type =:=[A, B] = Equals[A, B]
type >!<[A, B] = NotDisjoint[A, B]
type >:<[A, B] = Disjoint[A, B]
type >:>[A, B] = SuperType[A, B]
type >>:>[A, B] = StrictSuperType[A, B]