IArrayStorage.ts 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { IInitializable } from '../IInitializable';
  2. export interface IArrayStorage <V> extends IInitializable {
  3. /**
  4. * @param {number} key
  5. * @returns {V | undefined}
  6. */
  7. delete (key: number): V | undefined;
  8. /**
  9. * @param {number} key
  10. * @returns {V | undefined}
  11. */
  12. get (key: number): V | undefined;
  13. /**
  14. * @param {number} key
  15. * @returns {V}
  16. */
  17. getOrThrow (key: number): V;
  18. /**
  19. * @param value
  20. * @returns number | null
  21. */
  22. getKeyOf (value: V): number | null;
  23. /**
  24. * @returns number
  25. */
  26. getLength (): number;
  27. /**
  28. * @returns {V[]}
  29. */
  30. getStorage (): V[];
  31. /**
  32. * @returns string
  33. */
  34. getStorageId (): string;
  35. /**
  36. * @param storage
  37. * @param mergeId
  38. */
  39. mergeWith (storage: this, mergeId: boolean): void;
  40. /**
  41. * @param {number} key
  42. * @param {V} value
  43. */
  44. set (key: number, value: V): void;
  45. /**
  46. * @returns string
  47. */
  48. toString (): string;
  49. }