arrow-optics / arrow.optics.typeclasses / Index

Index

interface Index<S, I, A>

Index provides an Optional for a structure S to focus in an optional A at a given index I.

Parameters

S - source of Optional

I - index

A - focus of Optional, A is supposed to be unique for a given pair S and I.

Functions

get open operator fun <T> Lens<T, S>.get(i: I): Optional<T, A>
DSL to compose Index with a Lens for a structure S to focus in on A at given index I.open operator fun <T> Iso<T, S>.get(i: I): Optional<T, A>
DSL to compose Index with an Iso for a structure S to focus in on A at given index I.open operator fun <T> Prism<T, S>.get(i: I): Optional<T, A>
DSL to compose Index with a Prism for a structure S to focus in on A at given index I.open operator fun <T> Optional<T, S>.get(i: I): Optional<T, A>
DSL to compose Index with an Optional for a structure S to focus in on A at given index I.open operator fun <T> Setter<T, S>.get(i: I): Setter<T, A>
DSL to compose Index with a Setter for a structure S to focus in on A at given index I.open operator fun <T> Traversal<T, S>.get(i: I): Traversal<T, A>
DSL to compose Index with a Traversal for a structure S to focus in on A at given index I.open operator fun <T> Fold<T, S>.get(i: I): Fold<T, A>
DSL to compose Index with a Fold for a structure S to focus in on A at given index I.
index abstract fun index(i: I): Optional<S, A>
Get Optional focus A for a structure S at index i.open fun <T> Lens<T, S>.index(i: I): Optional<T, A>
DSL to compose Index with a Lens for a structure S to focus in on A at given index I.open fun <T> Iso<T, S>.index(i: I): Optional<T, A>
DSL to compose Index with an Iso for a structure S to focus in on A at given index I.open fun <T> Prism<T, S>.index(i: I): Optional<T, A>
DSL to compose Index with a Prism for a structure S to focus in on A at given index I.open fun <T> Optional<T, S>.index(i: I): Optional<T, A>
DSL to compose Index with an Optional for a structure S to focus in on A at given index I.open fun <T> Setter<T, S>.index(i: I): Setter<T, A>
DSL to compose Index with a Setter for a structure S to focus in on A at given index I.open fun <T> Traversal<T, S>.index(i: I): Traversal<T, A>
DSL to compose Index with a Traversal for a structure S to focus in on A at given index I.open fun <T> Fold<T, S>.index(i: I): Fold<T, A>
DSL to compose Index with a Fold for a structure S to focus in on A at given index I.

Companion Object Functions

fromIso fun <S, A, I, B> fromIso(ID: Index<A, I, B>, iso: Iso<S, A>): Index<S, I, B>
Lift an instance of Index using an Iso.

Inheritors

ListIndex interface ListIndex<A> : Index<List<A>, Int, A>
Index instance definition for List.
ListKIndex interface ListKIndex<A> : Index<ListK<A>, Int, A>
Index instance definition for ListK.
MapIndex interface MapIndex<K, V> : Index<Map<K, V>, K, V>
Index instance definition for Map.
MapKIndex interface MapKIndex<K, V> : Index<MapK<K, V>, K, V>
Index instance definition for Map.
NonEmptyListIndex interface NonEmptyListIndex<A> : Index<NonEmptyList<A>, Int, A>
Index instance definition for NonEmptyList.
SequenceKIndex interface SequenceKIndex<A> : Index<SequenceK<A>, Int, A>
Index instance definition for SequenceK.
StringIndex interface StringIndex : Index<String, Int, Char>
Index instance for String. It allows access to every Char in a String by its index’s position.

Type Class Hierarchy