null.ts 603 B

12345678910111213141516171819202122232425262728
  1. import { Coder } from "./abstract-coder.js";
  2. import type { Reader, Writer } from "./abstract-coder.js";
  3. const Empty = new Uint8Array([ ]);
  4. /**
  5. * @_ignore
  6. */
  7. export class NullCoder extends Coder {
  8. constructor(localName: string) {
  9. super("null", "", localName, false);
  10. }
  11. defaultValue(): null {
  12. return null;
  13. }
  14. encode(writer: Writer, value: any): number {
  15. if (value != null) { this._throwError("not null", value); }
  16. return writer.writeBytes(Empty);
  17. }
  18. decode(reader: Reader): any {
  19. reader.readBytes(0);
  20. return null;
  21. }
  22. }