@rbxts/hash
v1.0.2
Published
A utility for generating hash codes for objects
Readme
@rbxts/hash
Utility for computing and combining hash codes.
Example
import { Hash } from "@rbxts/hash";
class User {
public constructor(
public readonly name: string,
public readonly age: number
) { }
public hashCode(): Hash {
return Hash.combine(this.name, this.age);
}
}
const bob = new User("Bob", 20);
const alice = new User("Alice", 21);
print(bob.hashCode() === bob.hashCode()); // true
print(bob.hashCode() === alice.hashCode()); // falseIncremental combining
import { Hash } from "@rbxts/hash";
class Employee {
public constructor(
public readonly name: string,
public readonly reviews: string[]
) { }
public hashCode(): Hash {
const hash = Hash.incremental();
hash.add(name);
hash.add(reviews.size());
for (const review of reviews)
hash.add(review)
return hash.toHash();
}
}
const bob = new Employee("Bob", ["great dude"]);
const alice = new User("Alice", ["polite woman"]);
print(bob.hashCode() === bob.hashCode()); // true
print(bob.hashCode() === alice.hashCode()); // false