turbolift.internals.engine.stacked.FrameKind.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of turbolift-core_3 Show documentation
Show all versions of turbolift-core_3 Show documentation
Algebraic Effects for Scala 3
The newest version!
package turbolift.internals.engine.stacked
private[engine] opaque type FrameKind = Int
private[engine] object FrameKind:
inline def wrap(n: Int): FrameKind = n
def plain: FrameKind = PLAIN
def guard: FrameKind = GUARD
def warp: FrameKind = WARP
def exec: FrameKind = EXEC
def suppress: FrameKind = SUPPRESS
extension (thiz: FrameKind)
inline def unwrap: Int = thiz
inline val PLAIN = 0
inline val GUARD = 1
inline val WARP = 2
inline val EXEC = 3
inline val SUPPRESS = 4
//---------------------
inline val BIT_COUNT = 3
inline val MASK = (1 << BIT_COUNT) - 1