gilt / gfc-id

A library that contains typed Id and Guid (UUID) classes

GitHub

gfc-id Maven Central Build Status Coverage Status Join the chat at https://gitter.im/gilt/gfc

A library that contains typed Id and Guid classes. Part of the Gilt Foundation Classes.

Getting gfc-id

The latest version is 0.0.7, which is cross-built against Scala 2.10.x, 2.11.x and 2.12.x.

If you're using SBT, add the following line to your build file:

libraryDependencies += "com.gilt" %% "gfc-id" % "0.0.7"

For Maven and other build tools, you can visit search.maven.org. (This search will also list other available libraries from the gilt fundation classes.)

Contents and Example Usage

Typed identifiers allow compile-time checking that an identifier that is passed into a function or object is of the correct type, which is not the case with "untyped" String, Long or UUID types.

com.gilt.gfc.id.Guid

Guid is a space/cpu efficient and type safe replacement for java.util.UUID

val userGuid: Guid[User] = Guid.randomGuid
val user: User = new User(userGuid, firstName, lastName)

com.gilt.gfc.id.Id

Id can be used for typed identifiers (e.g. rdbms auto-increment ids).

val userId: Id[User, Long] = Random.nextLong
val user: User = new User(userId, firstName, lastName)

Type aliases

Both Guid and Id can be used in conjunction with type aliases:

type UserGuid = Guid[User]
type UserId = Id[User, Long]
case class User(guid: UserGuid, id: UserId, firstName: String, lastName: String)

License

Copyright 2016 Gilt Groupe, Inc.

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0