Об этом проекте

go-branded-id — это библиотека Go, предоставляющая брендированные строго типизированные идентификаторы. Она использует фантомные типы, чтобы предотвратить смешивание идентификаторов разных сущностей (например, UserID и OrderID) на этапе компиляции, выявляя ошибки, которые иначе остались бы незамеченными. Библиотека не выполняет выделения памяти для основных операций, использует только стандартную библиотеку Go и поддерживает полную сериализацию, включая JSON, SQL, Text, Binary и Gob. Она работает с любым сравнимым типом, обеспечивает семантику нулевого значения (сериализуется в null в JSON, nil в SQL) и включает SQL-сканер/вальюер. Именованные брендовые типы могут предоставлять метод Name() для строк, видимых при отладке, и валидации с учётом бренда. Библиотека также предоставляет сигнальные ошибки для обработки ошибок и инструмент codemod для генерации заглушек Name(). Требуется Go 1.26+.