Ref(value) is Effect's makeUnsafe; Ref.make is the effect.
Functions#
__init__#
__init__(value) -> None| Parameter | Type | Description |
|---|---|---|
value | A |
def __init__(self, value: A) -> None:
self._value = valuemake#
make(value) -> Effect[Ref[T]]| Parameter | Type | Description |
|---|---|---|
value | T |
Returns Effect[Ref[T]]
@staticmethod
def make[T](value: T) -> Effect[Ref[T]]:
return _Sync(lambda: Ref(value))unsafe_get#
unsafe_get() -> AReturns A
def unsafe_get(self) -> A:
return self._valueget#
get() -> Effect[A]Returns Effect[A]
def get(self) -> Effect[A]:
return _Sync(lambda: self._value)set#
set(value) -> Effect[None]| Parameter | Type | Description |
|---|---|---|
value | A |
Returns Effect[None]
def set(self, value: A) -> Effect[None]:
def run() -> None:
self._value = value
return _Sync(run)set_and_get#
set_and_get(value) -> Effect[A]| Parameter | Type | Description |
|---|---|---|
value | A |
Returns Effect[A]
def set_and_get(self, value: A) -> Effect[A]:
def run() -> A:
self._value = value
return value
return _Sync(run)get_and_set#
get_and_set(value) -> Effect[A]| Parameter | Type | Description |
|---|---|---|
value | A |
Returns Effect[A]
def get_and_set(self, value: A) -> Effect[A]:
def run() -> A:
old, self._value = self._value, value
return old
return _Sync(run)update#
update(f) -> Effect[None]| Parameter | Type | Description |
|---|---|---|
f | Callable[[A], A] |
Returns Effect[None]
def update(self, f: Callable[[A], A]) -> Effect[None]:
def run() -> None:
self._value = f(self._value)
return _Sync(run)update_and_get#
update_and_get(f) -> Effect[A]| Parameter | Type | Description |
|---|---|---|
f | Callable[[A], A] |
Returns Effect[A]
def update_and_get(self, f: Callable[[A], A]) -> Effect[A]:
def run() -> A:
self._value = f(self._value)
return self._value
return _Sync(run)get_and_update#
get_and_update(f) -> Effect[A]| Parameter | Type | Description |
|---|---|---|
f | Callable[[A], A] |
Returns Effect[A]
def get_and_update(self, f: Callable[[A], A]) -> Effect[A]:
def run() -> A:
old = self._value
self._value = f(old)
return old
return _Sync(run)update_some#
update_some(f) -> Effect[None]| Parameter | Type | Description |
|---|---|---|
f | Callable[[A], Option[A]] |
Returns Effect[None]
def update_some(self, f: Callable[[A], Option[A]]) -> Effect[None]:
def run() -> None:
if (new := f(self._value)) is not None:
self._value = new.value
return _Sync(run)update_some_and_get#
update_some_and_get(f) -> Effect[A]| Parameter | Type | Description |
|---|---|---|
f | Callable[[A], Option[A]] |
Returns Effect[A]
def update_some_and_get(self, f: Callable[[A], Option[A]]) -> Effect[A]:
def run() -> A:
if (new := f(self._value)) is not None:
self._value = new.value
return self._value
return _Sync(run)get_and_update_some#
get_and_update_some(f) -> Effect[A]| Parameter | Type | Description |
|---|---|---|
f | Callable[[A], Option[A]] |
Returns Effect[A]
def get_and_update_some(self, f: Callable[[A], Option[A]]) -> Effect[A]:
def run() -> A:
old = self._value
if (new := f(old)) is not None:
self._value = new.value
return old
return _Sync(run)modify#
modify(f) -> Effect[B]Compute a result and a new value from the current one, atomically.
| Parameter | Type | Description |
|---|---|---|
f | Callable[[A], tuple[B, A]] |
Returns Effect[B]
def modify[B](self, f: Callable[[A], tuple[B, A]]) -> Effect[B]:
"""Compute a result and a new value from the current one, atomically."""
def run() -> B:
result, self._value = f(self._value)
return result
return _Sync(run)modify_some#
modify_some(f) -> Effect[B]modify whose new value is optional: None keeps the current one.
| Parameter | Type | Description |
|---|---|---|
f | Callable[[A], tuple[B, Option[A]]] |
Returns Effect[B]
def modify_some[B](self, f: Callable[[A], tuple[B, Option[A]]]) -> Effect[B]:
"""``modify`` whose new value is optional: ``None`` keeps the current one."""
def run() -> B:
result, new = f(self._value)
if new is not None:
self._value = new.value
return result
return _Sync(run)