<A = unknown, E = unknown>(u: unknown): u is Enqueue<A, E>Type guard to check if a value is an Enqueue.
When to use
Use to narrow an unknown value before calling queue operations that require write-side access.
Gotchas
A full Queue also satisfies this guard because every queue includes the
enqueue side.
export const const isEnqueue: <
A = unknown,
E = unknown
>(
u: unknown
) => u is Enqueue<A, E>
Type guard to check if a value is an Enqueue.
When to use
Use to narrow an unknown value before calling queue operations that require
write-side access.
Gotchas
A full Queue also satisfies this guard because every queue includes the
enqueue side.
isEnqueue = <function (type parameter) A in <A = unknown, E = unknown>(u: unknown): u is Enqueue<A, E>A = unknown, function (type parameter) E in <A = unknown, E = unknown>(u: unknown): u is Enqueue<A, E>E = unknown>(
u: unknownu: unknown
): u: unknownu is interface Enqueue<in A, in E = never>An Enqueue is a queue that can be offered to.
Details
This interface represents the write-only part of a Queue, allowing you to offer
elements to the queue but not take elements from it.
Example (Offering through enqueue handles)
import { Effect, Queue } from "effect"
// Function that only needs write access to a queue
const producer = (enqueue: Queue.Enqueue<string>) =>
Effect.gen(function*() {
yield* Queue.offer(enqueue, "hello")
yield* Queue.offerAll(enqueue, ["world", "!"])
})
const program = Effect.gen(function*() {
const queue = yield* Queue.bounded<string>(10)
yield* producer(queue)
})
Companion namespace containing type-level metadata for the Enqueue
write-only queue interface.
Enqueue<function (type parameter) A in <A = unknown, E = unknown>(u: unknown): u is Enqueue<A, E>A, function (type parameter) E in <A = unknown, E = unknown>(u: unknown): u is Enqueue<A, E>E> => hasProperty<"~effect/Queue/Enqueue">(self: unknown, property: "~effect/Queue/Enqueue"): self is { [K in "~effect/Queue/Enqueue"]: unknown; } (+1 overload)Checks whether a value has a given property key.
When to use
Use when you need a Predicate guard for property access on unknown
values with a simple structural object check.
Details
Uses the in operator and isObjectKeyword. This does not check property
value types.
Example (Guarding object properties)
import { Predicate } from "effect"
const hasName = Predicate.hasProperty("name")
const data: unknown = { name: "Ada" }
if (hasName(data)) {
console.log(data.name)
}
hasProperty(u: unknownu, const EnqueueTypeId: "~effect/Queue/Enqueue"EnqueueTypeId)