Interface GenericValueMapper<T, E extends JsonElement, C>

Type Parameters:
T - The type that this mapper can serialize.
E - The JSON element type this mapper uses.
C - The element type. Should be a type variable in most cases.

public interface GenericValueMapper<T, E extends JsonElement, C>
A value mapper for a generic type. This will get the value mapper for the generic that has been used to declare the config field. For example you could create a value mapper for lists that would then get passed a value mapper for the elements of the list so it can fully serialize it. A limitation with these is that you can only have one generic parameter for which you can get a value mapper. Only LibX builtin mappers can have multiple of these. When extending this, you should make the type argument T dependent on C. For example for lists, you should do ListValueMapper<T> implements GenericValueMapper<List<T>, JsonArray, T>. Then you can register a ListValueMapper<?>.