Current section

Files

Jump to
gossamer src utils queuing_strategy.ffi.mjs
Raw

src/utils/queuing_strategy.ffi.mjs

// src/utils/queuing_strategy.ffi.ts
import { byte_size } from "../../gleam_stdlib/gleam/bit_array.mjs";
import * as $stream from "../gossamer/stream.mjs";
import { BitArray$isBitArray } from "../../prelude.mjs";
function fromQueuingStrategy(strategy) {
if ($stream.QueuingStrategy$isUnlimited(strategy)) {
return new CountQueuingStrategy({ highWaterMark: Infinity });
}
if ($stream.QueuingStrategy$isByCount(strategy)) {
return new CountQueuingStrategy({
highWaterMark: $stream.QueuingStrategy$ByCount$high_water_mark(strategy)
});
}
return {
highWaterMark: $stream.QueuingStrategy$ByByteLength$high_water_mark(
strategy
),
size: (chunk) => BitArray$isBitArray(chunk) ? byte_size(chunk) : chunk.byteLength
};
}
export {
fromQueuingStrategy
};