astl
Version:
AssemblyScript-STL (Standard Template Library, migrated from the C++)
68 lines (59 loc) • 1.82 kB
text/typescript
import { IPushBack } from "../internal/container/partial/IPushBack";
import { IPushFront } from "../internal/container/partial/IPushFront";
import { BackInsertIterator } from "./BackInsertIterator";
import { FrontInsertIterator } from "./FrontInsertIterator";
import { InsertIterator } from "./InsertIterator";
/* ---------------------------------------------------------
ITERATORS
--------------------------------------------------------- */
export function begin<Container, Iterator>
(container: Container): Iterator
{
return container.begin();
}
export function end<Container, Iterator>
(container: Container): Iterator
{
return container.end();
}
export function rbegin<Container, ReverseIterator>
(container: Container): ReverseIterator
{
container.rbegin();
}
export function rend<Container, ReverseIterator>
(container: Container): ReverseIterator
{
container.rend();
}
export function make_reverse_iterator<IteratorT, ReverseT>
(it: IteratorT): ReverseT
{
return it.reverse();
}
/* ---------------------------------------------------------
INSERTERS
--------------------------------------------------------- */
export function inserter<ContainerT, IteratorT, T>
(container: ContainerT, it: IteratorT): InsertIterator<ContainerT, IteratorT, T>
{
return new InsertIterator(container, it);
}
export function front_inserter<Source extends IPushFront<T>, T>
(source: Source): FrontInsertIterator<Source, T>
{
return new FrontInsertIterator(source);
}
export function back_inserter<Source extends IPushBack<T>, T>
(source: Source): BackInsertIterator<Source, T>
{
return new BackInsertIterator(source);
}