<A>(
capacity:
| number
| { readonly capacity: number; readonly replay?: number | undefined }
): PubSub.Atomic<A>Creates a bounded atomic PubSub implementation with optional replay buffer.
When to use
Use to provide bounded message storage when building a custom PubSub with
make and an explicit delivery strategy.
Details
Pass either a capacity number or an options object with capacity and
optional replay. A positive replay value enables a replay buffer for late
subscribers, and fractional replay sizes are rounded up.
Gotchas
The capacity must be greater than zero; invalid capacities throw synchronously before an atomic implementation is created.
export const const makeAtomicBounded: <A>(
capacity:
| number
| {
readonly capacity: number
readonly replay?: number | undefined
}
) => PubSub.Atomic<A>
Creates a bounded atomic PubSub implementation with optional replay buffer.
When to use
Use to provide bounded message storage when building a custom PubSub with
make and an explicit delivery strategy.
Details
Pass either a capacity number or an options object with capacity and
optional replay. A positive replay value enables a replay buffer for late
subscribers, and fractional replay sizes are rounded up.
Gotchas
The capacity must be greater than zero; invalid capacities throw
synchronously before an atomic implementation is created.
makeAtomicBounded = <function (type parameter) A in <A>(capacity: number | {
readonly capacity: number;
readonly replay?: number | undefined;
}): PubSub.Atomic<A>
A>(
capacity: | number
| {
readonly capacity: number
readonly replay?: number | undefined
}
capacity: number | {
readonly capacity: numbercapacity: number
readonly replay?: number | undefinedreplay?: number | undefined
}
): PubSub.interface PubSub<in out A>.Atomic<in out A>Low-level atomic PubSub interface that handles the core message storage and retrieval.
Atomic<function (type parameter) A in <A>(capacity: number | {
readonly capacity: number;
readonly replay?: number | undefined;
}): PubSub.Atomic<A>
A> => {
const const options: {
readonly capacity: number
readonly replay?: number | undefined
}
options = typeof capacity: | number
| {
readonly capacity: number
readonly replay?: number | undefined
}
capacity === "number" ? { capacity: numbercapacity } : capacity: {
readonly capacity: number
readonly replay?: number | undefined
}
capacity
const ensureCapacity: (
capacity: number
) => void
ensureCapacity(const options: {
readonly capacity: number
readonly replay?: number | undefined
}
options.capacity: numbercapacity)
const const replayBuffer:
| ReplayBuffer<A>
| undefined
replayBuffer = const options: {
readonly capacity: number
readonly replay?: number | undefined
}
options.replay?: number | undefinedreplay && const options: {
readonly capacity: number
readonly replay?: number | undefined
}
options.replay?: numberreplay > 0 ? new constructor ReplayBuffer<A>(capacity: number): ReplayBuffer<A>ReplayBuffer<function (type parameter) A in <A>(capacity: number | {
readonly capacity: number;
readonly replay?: number | undefined;
}): PubSub.Atomic<A>
A>(var Math: MathAn intrinsic object that provides basic mathematics functionality and constants.
Math.Math.ceil(x: number): numberReturns the smallest integer greater than or equal to its numeric argument.
ceil(const options: {
readonly capacity: number
readonly replay?: number | undefined
}
options.replay?: numberreplay)) : var undefinedundefined
if (const options: {
readonly capacity: number
readonly replay?: number | undefined
}
options.capacity: numbercapacity === 1) {
return new constructor BoundedPubSubSingle<A>(replayBuffer: ReplayBuffer<A> | undefined): BoundedPubSubSingle<A>BoundedPubSubSingle(const replayBuffer:
| ReplayBuffer<A>
| undefined
replayBuffer)
} else if (import nextPow2nextPow2(const options: {
readonly capacity: number
readonly replay?: number | undefined
}
options.capacity: numbercapacity) === const options: {
readonly capacity: number
readonly replay?: number | undefined
}
options.capacity: numbercapacity) {
return new constructor BoundedPubSubPow2<A>(capacity: number, replayBuffer: ReplayBuffer<A> | undefined): BoundedPubSubPow2<A>BoundedPubSubPow2(const options: {
readonly capacity: number
readonly replay?: number | undefined
}
options.capacity: numbercapacity, const replayBuffer:
| ReplayBuffer<A>
| undefined
replayBuffer)
} else {
return new constructor BoundedPubSubArb<A>(capacity: number, replayBuffer: ReplayBuffer<A> | undefined): BoundedPubSubArb<A>BoundedPubSubArb(const options: {
readonly capacity: number
readonly replay?: number | undefined
}
options.capacity: numbercapacity, const replayBuffer:
| ReplayBuffer<A>
| undefined
replayBuffer)
}
}