nee-core / dev.neeffect.nee.effects.env / FlexibleEnv

FlexibleEnv

interface FlexibleEnv

Allows for runtime expandable Environment.

This neglects type safety of R, but might be in fact way easier to use. TODO actually needed sealed class but it did not work

Functions

get

abstract fun <T : Any> get(id: ResourceId<T>): Option<T>

set

abstract fun <T : Any> set(id: ResourceId<T>, t: T): FlexibleEnv

Companion Object Functions

create

fun <T : Any> create(id: ResourceId<T>, t: T): FlexibleEnv
fun <T : Any> create(t: T): FlexibleEnv

empty

fun empty(): FlexibleEnv

Extension Functions

with

Add next type to env.

fun <T : Any> FlexibleEnv.with(t: T): FlexibleEnvfun <T : Any> FlexibleEnv.with(id: ResourceId<T>, t: T): FlexibleEnv

withTxProvider

fun <R, G : TxProvider<R, G>> FlexibleEnv.withTxProvider(provider: TxProvider<R, G>): FlexibleEnv

Inheritors

EnvLeaf

object EnvLeaf : FlexibleEnv

FlexSecurityProvider

Provider of flex sec.

class FlexSecurityProvider<USER, ROLE> : FlexibleEnv, SecurityProvider<USER, ROLE>

WrappedEnv

Node instance of flexibleEnv

data class WrappedEnv<Y : Any> : FlexibleEnv