Simple Labeled IDs

Simple IDs with associated type labels.

```rust use slid::Id;

struct User; let playera = Id::::newrandom(); let playerb = Id::::newrandom();

// For all practical purposes, we can assume that 2 random IDs will be unique and different assertne!(playera, player_b);

// The label generic helps avoid mixups: struct Product; fn delete_product(id: Id) {}

// Doesn't compile, because Id and Id are different // deleteproduct(playera);

// But you can explicitly cast the label if needed: deleteproduct(playera.cast_label()); ```

Alternatives

Note: this library does not attempt conform to any UUID standards. Random IDs are plain simple random. If you want the standardized UUIDs, check out uuid