objectid

package module
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2024 License: GPL-3.0 Imports: 6 Imported by: 3

README

ObjectID

Простая библиотека для генерации псевдослучайных глобально уникальных идентификаторов. Полученные идентификаторы реализуют функцию сравнения, таким образом поддаются сортировке. Так же из идентификатора можно получить время его генерации, а так же порядковый номер генерации в пределах сессии. Счетчик используемый при генерации идентификаторов потокобезопасный.

API

go package objectid // import "go.neonxp.ru/objectid"

Функции

go func Seed() необходимо вызвать в начале сессии

go func New() ID возвращает новый идентификатор

go func FromString(s string) (ID, error) возвращает идентификатор из base64 представления

go func FromTime(t time.Time) ID возвращает идентификатор на основе переданного времени

Типы и методы

go type ID []byte тип представляющий собой идентификатор

go func (i ID) Counter() uint64 возвращает порядковый номер идентификатора в сессии

go func (i ID) Less(i2 ID) bool возвращает true если i2 > i

go func (i ID) MarshalJSON() ([]byte, error) формирует json представление идентификатора

go func (i ID) String() string возвращает base64 представление идентификатора

go func (i ID) Time() time.Time возвращает время создания идентификатора

go func (i *ID) UnmarshalJSON(b []byte) error парсит идентификатор из json

Примеры

import "go.neonxp.ru/objectid"

objectid.Seed()

id1 := objectid.New()

fmt.Printf("Идентификатор сгенерированный сегодня: %s в %s\n", id1, id1.Time()) // пример: Идентификатор сгенерированный сегодня: AAXwV/DVGwXtTj0FRm92SQF3MiquMPlK в 2022-12-21 18:09:36.872197 +0300 MSK

id2 := objectid.FromTime(time.Now().Add(-24 * time.Hour))

fmt.Printf("Идентификатор сгенерированный вчера: %s в %s\n", id2, id2.Time()) // пример: Идентификатор сгенерированный вчера: AAXwQ+U14N8mbGoVPiiNqyZCss7lEV0Z в 2022-12-20 18:14:42.541791 +0300 MSK

r := "id2 > id1"
if id2.Less(id1) {
    r = "id2 < id1"
}
fmt.Print(r) // выведет: id2 < id1

Лицензия

GNU GPLv3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Seed

func Seed()

Seed необходимо вызвать в начале сессии

Types

type ID

type ID []byte

ID тип представляющий собой идентификатор

func FromString

func FromString(s string) (ID, error)

FromString возвращает идентификатор из base64 представления

func FromTime

func FromTime(t time.Time) ID

FromTime возвращает идентификатор на основе переданного времени

func New

func New() ID

New возвращает новый идентификатор

func (ID) Counter

func (i ID) Counter() uint64

Counter возвращает порядковый номер идентификатора в сессии

func (ID) Less

func (i ID) Less(i2 ID) bool

Less возвращает true если i2 > i

func (ID) MarshalJSON

func (i ID) MarshalJSON() ([]byte, error)

MarshalJSON формирует json представление идентификатора

func (ID) String

func (i ID) String() string

String возвращает base64 представление идентификатора

func (ID) Time

func (i ID) Time() time.Time

Time возвращает время создания идентификатора

func (*ID) UnmarshalJSON

func (i *ID) UnmarshalJSON(b []byte) error

UnmarshalJSON парсит идентификатор из json

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL