Files
rss-nostr-lambda/node_modules/tstl/base/container/IHashMap.d.ts
T

58 lines
2.3 KiB
TypeScript

/**
* @packageDocumentation
* @module std.base
*/
import { MapContainer } from "./MapContainer";
import { IHashContainer } from "../../internal/container/associative/IHashContainer";
import { IPair } from "../../utility/IPair";
import { Entry } from "../../utility/Entry";
import { MapElementList } from "../../internal/container/associative/MapElementList";
/**
* Common interface for hash maps.
*
* @template Key Key type
* @template T Mapped type
* @template Unique Whether duplicated key is blocked or not
* @template Source Derived type extending this {@link IHashMap}
*
* @author Jeongho Nam - https://github.com/samchon
*/
export interface IHashMap<Key, T, Unique extends boolean, Source extends IHashMap<Key, T, Unique, Source>> extends MapContainer<Key, T, Unique, Source, IHashMap.Iterator<Key, T, Unique, Source>, IHashMap.ReverseIterator<Key, T, Unique, Source>>, IHashContainer<Key, Entry<Key, T>, Source, IHashMap.Iterator<Key, T, Unique, Source>, IHashMap.ReverseIterator<Key, T, Unique, Source>, IPair<Key, T>> {
/**
* @inheritDoc
*/
begin(): IHashMap.Iterator<Key, T, Unique, Source>;
/**
* Iterator to the first element in a specific bucket.
*
* @param index Index number of the specific bucket.
* @return Iterator from the specific bucket.
*/
begin(index: number): IHashMap.Iterator<Key, T, Unique, Source>;
/**
* @inheritDoc
*/
end(): IHashMap.Iterator<Key, T, Unique, Source>;
/**
* Iterator to the end in a specific bucket.
*
* @param index Index number of the specific bucket.
* @return Iterator from the specific bucket.
*/
end(index: number): IHashMap.Iterator<Key, T, Unique, Source>;
}
export declare namespace IHashMap {
/**
* Iterator of {@link IHashMap}
*
* @author Jenogho Nam <http://samchon.org>
*/
type Iterator<Key, T, Unique extends boolean, Source extends IHashMap<Key, T, Unique, Source>> = MapElementList.Iterator<Key, T, Unique, Source>;
/**
* Reverse iterator of {@link IHashMap}
*
* @author Jenogho Nam <http://samchon.org>
*/
type ReverseIterator<Key, T, Unique extends boolean, Source extends IHashMap<Key, T, Unique, Source>> = MapElementList.ReverseIterator<Key, T, Unique, Source>;
}