PointerFactory

package module
v0.10.1 Latest Latest
Warning

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

Go to latest
Published: Jun 3, 2024 License: GPL-3.0 Imports: 4 Imported by: 0

README

Fork GitHub Release Go Report Card

GitHub repo file or directory count GitHub code size in bytes GitHub repo size

PointerFactory

Module for working with fRead pointers. Creation, parsing, generation


Пример указателя

Строчный (внешний): bzyrcn1hssighrb

Числовой (внутренний): 129499999999999999999

Тип Сервер Указатель CRC
внешний b zy rcn1hssighr b
внутренний 1294 99999999999999999
Допустимые типы: file
Допустимые значения сервера: от 1 до 1294
Допустимые значения указателя: от 1 до 99999999999999999
Алгоритм CRC: file

Генератор

  • Уникальность указателей сохраняется при создании до 9999 указателей в минуту на тип.
  • При превышении возможны коллизии с будущими указателями.
  • Поддерживается асинхронный режим создания. (уникальность при асинхронности сохраняется)
Пример использования
crt := PointerFactory.InitCreator(12) // Задаем сервер
id := crt.New(PointerFactory.TypeAuthor) //При создании указываем тип генерируемого указателя

fmt.Println(id.String(), id.StringINT(), id.Uint()) //Вывод трех возможных 'однострочных' вариантов
>>> a0c18dlxjph 122683370001 122683370001

Documentation

Index

Constants

View Source
const GlobalDateUpdate string = "06-03-2024"
View Source
const GlobalName string = "PointerFactory"
View Source
const GlobalVersion string = "0.10.1"
View Source
const IncrementMAX = 10000
View Source
const NumBase = 36
View Source
const YearPoint = 2024

Variables

View Source
var TypeMAP = map[rune]TypeTag{
	'0': TypeNone,

	'b': TypeBook,
	'a': TypeAuthor,
	'l': TypeList,

	'c': TypeComment,
	's': TypeSuggestion,
	'p': TypeProblem,
}

Functions

func CRC

func CRC(str string) string

func Encode

func Encode(point *PointerObj) string

Формирование строки из указателя

func EncodeINT

func EncodeINT(point *PointerObj) string

Формирование строки из указателя десятичным числом (без CRC)

Types

type CreatorObj

type CreatorObj struct {
	// contains filtered or unexported fields
}

CreatorObj Класс создания уникальных инкрементов

func InitCreator

func InitCreator(server uint16) CreatorObj

Инициализация метода создания новых индексов

func (*CreatorObj) New

func (obj *CreatorObj) New(types TypeTag) PointerObj

Создание нового уникального указателя

type IncrementObj

type IncrementObj struct {
	sync.Mutex
	// contains filtered or unexported fields
}

IncrementObj Хранилише инкрементов

type PointerObj

type PointerObj struct {
	// contains filtered or unexported fields
}

Обьект указателя формальный

func Decode

func Decode(str string) (*PointerObj, error)

Получение указателя из строки

func (*PointerObj) Pointer

func (obj *PointerObj) Pointer() string

func (*PointerObj) PointerN added in v0.9.3

func (obj *PointerObj) PointerN() uint64

func (*PointerObj) Server

func (obj *PointerObj) Server() string

func (*PointerObj) ServerN added in v0.9.3

func (obj *PointerObj) ServerN() uint16

func (*PointerObj) String

func (obj *PointerObj) String() string

func (*PointerObj) StringINT

func (obj *PointerObj) StringINT() string

func (*PointerObj) Type

func (obj *PointerObj) Type() string

func (*PointerObj) TypeN added in v0.9.3

func (obj *PointerObj) TypeN() byte

func (*PointerObj) Uint

func (obj *PointerObj) Uint() uint64

type TypeTag

type TypeTag byte
const (
	TypeNone TypeTag = 0

	TypeBook   TypeTag = 2 //	Книга
	TypeAuthor TypeTag = 4 //	Автор
	TypeList   TypeTag = 8 //	Список (серия, сохранения, иное)

	TypeComment    TypeTag = 10 // Коментарий
	TypeSuggestion TypeTag = 12 // Предложение
	TypeProblem    TypeTag = 14 // Проблема (тикет)
)

func ParseType

func ParseType(char rune) TypeTag

Парсинг типа по символу

Jump to

Keyboard shortcuts

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