public final class Hash<A>
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static Hash<java.math.BigDecimal> |
bigdecimalHash
A hash instance for the
BigDecimal type. |
static Hash<java.math.BigInteger> |
bigintHash
A hash instance for the
BigInteger type. |
static Hash<java.lang.Boolean> |
booleanHash
A hash instance for the
boolean type. |
static Hash<java.lang.Byte> |
byteHash
A hash instance for the
byte type. |
static Hash<java.lang.Character> |
charHash
A hash instance for the
char type. |
static Hash<java.lang.Double> |
doubleHash
A hash instance for the
double type. |
static Hash<java.lang.Float> |
floatHash
A hash instance for the
float type. |
static Hash<java.lang.Integer> |
intHash
A hash instance for the
int type. |
static Hash<java.lang.Long> |
longHash
A hash instance for the
long type. |
static Hash<Natural> |
naturalHash
A hash instance for the
Natural type. |
static Hash<java.lang.Short> |
shortHash
A hash instance for the
short type. |
static Hash<java.lang.StringBuffer> |
stringBufferHash
A hash instance for the
StringBuffer type. |
static Hash<java.lang.StringBuilder> |
stringBuilderHash
A hash instance for the
StringBuilder type. |
static Hash<java.lang.String> |
stringHash
A hash instance for the
String type. |
Modifier and Type | Method and Description |
---|---|
static <A> Hash<A> |
anyHash()
A hash that uses
Object.hashCode() . |
static <A> Hash<Array<A>> |
arrayHash(Hash<A> ha)
A hash instance for the
Array type. |
<B> Hash<B> |
contramap(F<B,A> g)
Maps the given function across this hash as a contra-variant functor.
|
static <A,B> Hash<Either<A,B>> |
eitherHash(Hash<A> ha,
Hash<B> hb)
A hash instance for the
Either type. |
int |
hash(A a)
Compute the hash of the given value.
|
static <A> Hash<A> |
hash(F<A,java.lang.Integer> f)
Construct a hash with the given hash function.
|
static <A> Hash<List<A>> |
listHash(Hash<A> ha)
A hash instance for the
List type. |
static <A> Hash<NonEmptyList<A>> |
nonEmptyListHash(Hash<A> ha)
A hash instance for the
NonEmptyList type. |
static <A> Hash<Option<A>> |
optionHash(Hash<A> ha)
A hash instance for the
Option type. |
static <A> Hash<P1<A>> |
p1Hash(Hash<A> ha)
A hash instance for a product-1.
|
static <A,B> Hash<P2<A,B>> |
p2Hash(Hash<A> ha,
Hash<B> hb)
A hash instance for a product-2.
|
static <A,B,C> Hash<P3<A,B,C>> |
p3Hash(Hash<A> ha,
Hash<B> hb,
Hash<C> hc)
A hash instance for a product-3.
|
static <A,B,C,D> Hash<P4<A,B,C,D>> |
p4Hash(Hash<A> ha,
Hash<B> hb,
Hash<C> hc,
Hash<D> hd)
A hash instance for a product-4.
|
static <A,B,C,D,E> |
p5Hash(Hash<A> ha,
Hash<B> hb,
Hash<C> hc,
Hash<D> hd,
Hash<E> he)
A hash instance for a product-5.
|
static <A,B,C,D,E,F$> |
p6Hash(Hash<A> ha,
Hash<B> hb,
Hash<C> hc,
Hash<D> hd,
Hash<E> he,
Hash<F$> hf)
A hash instance for a product-6.
|
static <A,B,C,D,E,F$,G> |
p7Hash(Hash<A> ha,
Hash<B> hb,
Hash<C> hc,
Hash<D> hd,
Hash<E> he,
Hash<F$> hf,
Hash<G> hg)
A hash instance for a product-7.
|
static <A,B,C,D,E,F$,G,H> |
p8Hash(Hash<A> ha,
Hash<B> hb,
Hash<C> hc,
Hash<D> hd,
Hash<E> he,
Hash<F$> hf,
Hash<G> hg,
Hash<H> hh)
A hash instance for a product-8.
|
static <A> Hash<Seq<A>> |
seqHash(Hash<A> h) |
static <A> Hash<Set<A>> |
setHash(Hash<A> h) |
static <A> Hash<Stream<A>> |
streamHash(Hash<A> ha)
A hash instance for the
Stream type. |
static <A> Hash<Tree<A>> |
treeHash(Hash<A> ha)
A hash instance for the
Tree type. |
static <K,V> Hash<TreeMap<K,V>> |
treeMapHash(Hash<K> h,
Hash<V> v) |
static <A> Hash<V2<A>> |
v2Hash(Hash<A> ea)
A hash instance for a vector-2.
|
static <A> Hash<V3<A>> |
v3Hash(Hash<A> ea)
A hash instance for a vector-3.
|
static <A> Hash<V4<A>> |
v4Hash(Hash<A> ea)
A hash instance for a vector-4.
|
static <A> Hash<V5<A>> |
v5Hash(Hash<A> ea)
A hash instance for a vector-5.
|
static <A> Hash<V6<A>> |
v6Hash(Hash<A> ea)
A hash instance for a vector-6.
|
static <A> Hash<V7<A>> |
v7Hash(Hash<A> ea)
A hash instance for a vector-7.
|
static <A> Hash<V8<A>> |
v8Hash(Hash<A> ea)
A hash instance for a vector-8.
|
static <A,B> Hash<Validation<A,B>> |
validationHash(Hash<A> ha,
Hash<B> hb)
A hash instance for the
Validation type. |
public static final Hash<java.lang.Boolean> booleanHash
boolean
type.public static final Hash<java.lang.Byte> byteHash
byte
type.public static final Hash<java.lang.Character> charHash
char
type.public static final Hash<java.lang.Double> doubleHash
double
type.public static final Hash<java.lang.Float> floatHash
float
type.public static final Hash<java.lang.Integer> intHash
int
type.public static final Hash<java.lang.Long> longHash
long
type.public static final Hash<java.lang.Short> shortHash
short
type.public static final Hash<java.math.BigInteger> bigintHash
BigInteger
type.public static final Hash<java.math.BigDecimal> bigdecimalHash
BigDecimal
type.public static final Hash<java.lang.String> stringHash
String
type.public static final Hash<java.lang.StringBuffer> stringBufferHash
StringBuffer
type.public static final Hash<java.lang.StringBuilder> stringBuilderHash
StringBuilder
type.public int hash(A a)
a
- The value to compute the hash value for.public <B> Hash<B> contramap(F<B,A> g)
g
- The function to map.public static <A> Hash<A> hash(F<A,java.lang.Integer> f)
f
- The function to construct the hash with.public static <A> Hash<A> anyHash()
Object.hashCode()
.Object.hashCode()
.public static <A,B> Hash<Either<A,B>> eitherHash(Hash<A> ha, Hash<B> hb)
Either
type.ha
- Hash the left side of Either
.hb
- Hash the right side of Either
.Either
type.public static <A,B> Hash<Validation<A,B>> validationHash(Hash<A> ha, Hash<B> hb)
Validation
type.ha
- Hash the failing side of Validation
.hb
- Hash the succeeding side of Validation
.Validation
type.public static <A> Hash<List<A>> listHash(Hash<A> ha)
List
type.ha
- A hash for the elements of the list.List
type.public static <A> Hash<NonEmptyList<A>> nonEmptyListHash(Hash<A> ha)
NonEmptyList
type.ha
- A hash for the elements of the non-empty list.NonEmptyList
type.public static <A> Hash<Option<A>> optionHash(Hash<A> ha)
Option
type.ha
- A hash for the element of the optional value.Option
type.public static <A> Hash<Stream<A>> streamHash(Hash<A> ha)
Stream
type.ha
- A hash for the elements of the stream.Stream
type.public static <A> Hash<Array<A>> arrayHash(Hash<A> ha)
Array
type.ha
- A hash for the elements of the array.Array
type.public static <A> Hash<Tree<A>> treeHash(Hash<A> ha)
Tree
type.ha
- A hash for the elements of the tree.Tree
type.public static <A> Hash<P1<A>> p1Hash(Hash<A> ha)
ha
- A hash for the first element of the product.public static <A,B> Hash<P2<A,B>> p2Hash(Hash<A> ha, Hash<B> hb)
ha
- A hash for the first element of the product.hb
- A hash for the second element of the product.public static <A,B,C> Hash<P3<A,B,C>> p3Hash(Hash<A> ha, Hash<B> hb, Hash<C> hc)
ha
- A hash for the first element of the product.hb
- A hash for the second element of the product.hc
- A hash for the third element of the product.public static <A,B,C,D> Hash<P4<A,B,C,D>> p4Hash(Hash<A> ha, Hash<B> hb, Hash<C> hc, Hash<D> hd)
ha
- A hash for the first element of the product.hb
- A hash for the second element of the product.hc
- A hash for the third element of the product.hd
- A hash for the fourth element of the product.public static <A,B,C,D,E> Hash<P5<A,B,C,D,E>> p5Hash(Hash<A> ha, Hash<B> hb, Hash<C> hc, Hash<D> hd, Hash<E> he)
ha
- A hash for the first element of the product.hb
- A hash for the second element of the product.hc
- A hash for the third element of the product.hd
- A hash for the fourth element of the product.he
- A hash for the fifth element of the product.public static <A,B,C,D,E,F$> Hash<P6<A,B,C,D,E,F$>> p6Hash(Hash<A> ha, Hash<B> hb, Hash<C> hc, Hash<D> hd, Hash<E> he, Hash<F$> hf)
ha
- A hash for the first element of the product.hb
- A hash for the second element of the product.hc
- A hash for the third element of the product.hd
- A hash for the fourth element of the product.he
- A hash for the fifth element of the product.hf
- A hash for the sixth element of the product.public static <A,B,C,D,E,F$,G> Hash<P7<A,B,C,D,E,F$,G>> p7Hash(Hash<A> ha, Hash<B> hb, Hash<C> hc, Hash<D> hd, Hash<E> he, Hash<F$> hf, Hash<G> hg)
ha
- A hash for the first element of the product.hb
- A hash for the second element of the product.hc
- A hash for the third element of the product.hd
- A hash for the fourth element of the product.he
- A hash for the fifth element of the product.hf
- A hash for the sixth element of the product.hg
- A hash for the seventh element of the product.public static <A,B,C,D,E,F$,G,H> Hash<P8<A,B,C,D,E,F$,G,H>> p8Hash(Hash<A> ha, Hash<B> hb, Hash<C> hc, Hash<D> hd, Hash<E> he, Hash<F$> hf, Hash<G> hg, Hash<H> hh)
ha
- A hash for the first element of the product.hb
- A hash for the second element of the product.hc
- A hash for the third element of the product.hd
- A hash for the fourth element of the product.he
- A hash for the fifth element of the product.hf
- A hash for the sixth element of the product.hg
- A hash for the seventh element of the product.hh
- A hash for the eighth element of the product.public static <A> Hash<V2<A>> v2Hash(Hash<A> ea)
ea
- A hash for the elements of the vector.public static <A> Hash<V3<A>> v3Hash(Hash<A> ea)
ea
- A hash for the elements of the vector.public static <A> Hash<V4<A>> v4Hash(Hash<A> ea)
ea
- A hash for the elements of the vector.public static <A> Hash<V5<A>> v5Hash(Hash<A> ea)
ea
- A hash for the elements of the vector.public static <A> Hash<V6<A>> v6Hash(Hash<A> ea)
ea
- A hash for the elements of the vector.public static <A> Hash<V7<A>> v7Hash(Hash<A> ea)
ea
- A hash for the elements of the vector.