com.mojang.datafixers

public final class TypedOptic<S, T, A, B>

com.mojang.datafixers.TypedOptic

Field summary

Modifier and TypeField
protected final Set<com.google.common.reflect.TypeToken<? extends K1>>
proofBounds
protected final Type<S>
sType
protected final Type<T>
tType
protected final Type<A>
aType
protected final Type<B>
bType
private final Optic<?, S, T, A, B>
optic

Constructor summary

ModifierConstructor
public (com.google.common.reflect.TypeToken<? extends K1> arg0, Type<S> arg1, Type<T> arg2, Type<A> arg3, Type<B> arg4, Optic<?, S, T, A, B> arg5)
public (Set<com.google.common.reflect.TypeToken<? extends K1>> arg0, Type<S> arg1, Type<T> arg2, Type<A> arg3, Type<B> arg4, Optic<?, S, T, A, B> arg5)

Method summary

Modifier and TypeMethod
public <P extends K2, Proof2 extends K1> App2<P, S, T>
apply(com.google.common.reflect.TypeToken<Proof2> arg0, App<Proof2, P> arg1, App2<P, A, B> arg2)
public Optic<?, S, T, A, B>
optic()
public Set<com.google.common.reflect.TypeToken<? extends K1>>
bounds()
public Type<S>
sType()
public Type<T>
tType()
public Type<A>
aType()
public Type<B>
bType()
public <A1, B1> TypedOptic<S, T, A1, B1>
compose(TypedOptic<A, B, A1, B1> arg0)
public <Proof2 extends K1> Optional<Optic<? super Proof2, S, T, A, B>>
upCast(com.google.common.reflect.TypeToken<Proof2> arg0)
public static <Proof2 extends K1> boolean
instanceOf(Collection<com.google.common.reflect.TypeToken<? extends K1>> arg0, com.google.common.reflect.TypeToken<Proof2> arg1)
public static <S, T> TypedOptic<S, T, S, T>
adapter(Type<S> arg0, Type<T> arg1)
public static <F, G, F2> TypedOptic<Pair<F, G>, Pair<F2, G>, F, F2>
proj1(Type<F> arg0, Type<G> arg1, Type<F2> arg2)
public static <F, G, G2> TypedOptic<Pair<F, G>, Pair<F, G2>, G, G2>
proj2(Type<F> arg0, Type<G> arg1, Type<G2> arg2)
public static <F, G, F2> TypedOptic<Either<F, G>, Either<F2, G>, F, F2>
inj1(Type<F> arg0, Type<G> arg1, Type<F2> arg2)
public static <F, G, G2> TypedOptic<Either<F, G>, Either<F, G2>, G, G2>
inj2(Type<F> arg0, Type<G> arg1, Type<G2> arg2)
public static <K, V, K2> TypedOptic<List<Pair<K, V>>, List<Pair<K2, V>>, K, K2>
compoundListKeys(Type<K> arg0, Type<K2> arg1, Type<V> arg2)
public static <K, V, V2> TypedOptic<List<Pair<K, V>>, List<Pair<K, V2>>, V, V2>
compoundListElements(Type<K> arg0, Type<V> arg1, Type<V2> arg2)
public static <A, B> TypedOptic<List<A>, List<B>, A, B>
list(Type<A> arg0, Type<B> arg1)
public static <K, A, B> TypedOptic<Pair<K, ?>, Pair<K, ?>, A, B>
tagged(TaggedChoice$TaggedChoiceType<K> arg0, K arg1, Type<A> arg2, Type<B> arg3)