A refiner that transforms decoded values into refined types and vice versa.
Example 1
Example 1
import { assertEquals } from "@std/assert"; import type { Context } from "@hertzg/binstruct"; import { createContext } from "@hertzg/binstruct"; const booleanRefiner: Refiner<number, boolean, []> = { refine: (unrefined: number, _context: Context) => unrefined !== 0, unrefine: (refined: boolean, _context: Context) => refined ? 1 : 0, }; const ctx = createContext("decode"); assertEquals(booleanRefiner.refine(1, ctx), true); assertEquals(booleanRefiner.refine(0, ctx), false); assertEquals(booleanRefiner.unrefine(true, ctx), 1); assertEquals(booleanRefiner.unrefine(false, ctx), 0);
unrefine: () => TUnrefined
Transforms a refined value back to the original decoded format.