Reader.d.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import type { IReader, IReaderResettable } from './types';
  2. export declare class Reader implements IReader, IReaderResettable {
  3. uint8: Uint8Array;
  4. view: DataView;
  5. x: number;
  6. end: number;
  7. constructor(uint8?: Uint8Array, view?: DataView, x?: number, end?: number);
  8. reset(uint8: Uint8Array): void;
  9. size(): number;
  10. /**
  11. * Get current byte value without advancing the cursor.
  12. */
  13. peek(): number;
  14. /**
  15. * @deprecated Use peek() instead.
  16. */
  17. peak(): number;
  18. skip(length: number): void;
  19. buf(size?: number): Uint8Array;
  20. subarray(start?: number, end?: number): Uint8Array;
  21. /**
  22. * Creates a new {@link Reader} that references the same underlying memory
  23. * buffer. But with independent cursor and end.
  24. *
  25. * Preferred over {@link buf} since it also provides a DataView and is much
  26. * faster to allocate a new {@link Slice} than a new {@link Uint8Array}.
  27. *
  28. * @param start Start offset relative to the current cursor position.
  29. * @param end End offset relative to the current cursor position.
  30. * @returns A new {@link Reader} instance.
  31. */
  32. slice(start?: number, end?: number): Reader;
  33. /**
  34. * Similar to {@link slice} but also advances the cursor. Returns a new
  35. * {@link Reader} that references the same underlying memory buffer, starting
  36. * from the current cursor position.
  37. *
  38. * @param size Number of bytes to cut from the current position.
  39. * @returns A new {@link Reader} instance.
  40. */
  41. cut(size?: number): Reader;
  42. u8(): number;
  43. i8(): number;
  44. u16(): number;
  45. i16(): number;
  46. u32(): number;
  47. i32(): number;
  48. u64(): bigint;
  49. i64(): bigint;
  50. f32(): number;
  51. f64(): number;
  52. utf8(size: number): string;
  53. ascii(length: number): string;
  54. }