boolean.ts 612 B

123456789101112131415161718192021222324252627
  1. import { Typed } from "../typed.js";
  2. import { Coder } from "./abstract-coder.js";
  3. import type { Reader, Writer } from "./abstract-coder.js";
  4. /**
  5. * @_ignore
  6. */
  7. export class BooleanCoder extends Coder {
  8. constructor(localName: string) {
  9. super("bool", "bool", localName, false);
  10. }
  11. defaultValue(): boolean {
  12. return false;
  13. }
  14. encode(writer: Writer, _value: boolean | Typed): number {
  15. const value = Typed.dereference(_value, "bool");
  16. return writer.writeValue(value ? 1: 0);
  17. }
  18. decode(reader: Reader): any {
  19. return !!reader.readValue();
  20. }
  21. }