diff options
author | Alexander Kiryukhin <a.kiryukhin@mail.ru> | 2022-05-01 21:50:12 +0300 |
---|---|---|
committer | Alexander Kiryukhin <a.kiryukhin@mail.ru> | 2022-05-01 21:50:12 +0300 |
commit | 9fcf8e29214210612d545bed50d7f889800ac639 (patch) | |
tree | 3a99d2cd37fb8158d49abc1de6298758d205c9dd /doc.md |
Initial
Diffstat (limited to 'doc.md')
-rwxr-xr-x | doc.md | 278 |
1 files changed, 278 insertions, 0 deletions
@@ -0,0 +1,278 @@ +<!-- Code generated by gomarkdoc. DO NOT EDIT --> + +# channels + +```go +import "go.neonxp.dev/extra/channels" +``` + +Функции работы над каналами + +## Index + +- [func FanIn[T any](chans ...chan T) chan T](<#func-fanin>) +- [func FanOut[T any](in chan T, workers int) []chan T](<#func-fanout>) + + +## func FanIn + +```go +func FanIn[T any](chans ...chan T) chan T +``` + +FanIn сливает несколько каналов в один + +## func FanOut + +```go +func FanOut[T any](in chan T, workers int) []chan T +``` + +FanOut раскидывает очередь канала на несколько каналов равномерно + +# collections + +```go +import "go.neonxp.dev/extra/collections" +``` + +Функции работы над обобщенными коллекциями + +## Index + +- [func Merge[T utils.Sortable[T]](s1, s2 []T) []T](<#func-merge>) +- [func MergeScalar[T utils.Scalar](s1, s2 []T) []T](<#func-mergescalar>) + + +## func Merge + +```go +func Merge[T utils.Sortable[T]](s1, s2 []T) []T +``` + +Merge стабильное слияние двух слайсов + +## func MergeScalar + +```go +func MergeScalar[T utils.Scalar](s1, s2 []T) []T +``` + +MergeScalar стабильное слияние двух слайсов скаляров + +# levenshtein + +```go +import "go.neonxp.dev/extra/levenshtein" +``` + +Пакет с функциями получения редакторских правок по Левенштейну + +## Index + +- [type Edit](<#type-edit>) + - [func Levenshtein[T comparable](s1, s2 []T, cost EditCost[T]) []Edit](<#func-levenshtein>) + - [func String(s1, s2 string) []Edit](<#func-string>) + - [func Strings(s1, s2 []string) []Edit](<#func-strings>) +- [type EditCost](<#type-editcost>) +- [type EditType](<#type-edittype>) + + +## type Edit + +Edit редакторская правка описывающее одно действие над исходной последовательностью + +```go +type Edit struct { + Type EditType // Тип правки: Вставка/Замена/Удаление + Idx1 int // Индекс элемента из первой последовательности + Idx2 int // Индекс элемента из второй последовательности +} +``` + +### func Levenshtein + +```go +func Levenshtein[T comparable](s1, s2 []T, cost EditCost[T]) []Edit +``` + +Levenshtein возвращает последовательность правок для превращения последовательности элементов s1 в s2 с учетом стоимостей операций возвращаемых функцией cost TODO в алгоритме не предусмотрена экономия памяти ¯\\\_\(ツ\)\_/¯ + +### func String + +```go +func String(s1, s2 string) []Edit +``` + +String возвращает последовательность правок для превращения строки s1 в строку s2 + +### func Strings + +```go +func Strings(s1, s2 []string) []Edit +``` + +Strings возвращает последовательность правок для превращения слайса строк s1 в слайс строк s2 + +## type EditCost + +EditCost функция возвращающая стоимость действия t над элементами from\, to + +```go +type EditCost[T comparable] func(t EditType, from *T, to *T) int +``` + +## type EditType + +EditType тип правки + +```go +type EditType int +``` + +```go +const ( + Insert EditType = iota // Вставка + Replace // Замена + Delete // Удаление +) +``` + +# math + +```go +import "go.neonxp.dev/extra/math" +``` + +Пакет с математическими функциями над обобщенными типами + +## Index + +- [func Max[T utils.Sortable[T]](a ...T) T](<#func-max>) +- [func MaxScalar[T utils.Scalar](a ...T) T](<#func-maxscalar>) +- [func Min[T utils.Sortable[T]](a ...T) T](<#func-min>) +- [func MinScalar[T utils.Scalar](a ...T) T](<#func-minscalar>) + + +## func Max + +```go +func Max[T utils.Sortable[T]](a ...T) T +``` + +Max возвращает максимальное из переданных Sortable значений + +## func MaxScalar + +```go +func MaxScalar[T utils.Scalar](a ...T) T +``` + +MaxScalar возвращает максимальное из переданных скалярных значений + +## func Min + +```go +func Min[T utils.Sortable[T]](a ...T) T +``` + +Min возвращает минимальное из переданных Sortable значений + +## func MinScalar + +```go +func MinScalar[T utils.Scalar](a ...T) T +``` + +MinScalar возвращает минимальное из переданных скалярных значений + +# subseq + +```go +import "go.neonxp.dev/extra/subseq" +``` + +Пакет с функциями получения подпоследовательностей \(например\, подстроки\) + +## Index + +- [func MaxSubsequence(s1, s2 string) string](<#func-maxsubsequence>) +- [func MaxSubset[T comparable](s1, s2 []T) []T](<#func-maxsubset>) +- [func MaxSubsetSequence[T comparable](s1, s2 []T) []T](<#func-maxsubsetsequence>) +- [func MaxSubstring(s1, s2 string) string](<#func-maxsubstring>) + + +## func MaxSubsequence + +```go +func MaxSubsequence(s1, s2 string) string +``` + +MaxSubsequence возвращает максимальную общую подпоследовательность символов + +## func MaxSubset + +```go +func MaxSubset[T comparable](s1, s2 []T) []T +``` + +## func MaxSubsetSequence + +```go +func MaxSubsetSequence[T comparable](s1, s2 []T) []T +``` + +## func MaxSubstring + +```go +func MaxSubstring(s1, s2 string) string +``` + +MaxSubstring возвращаает максимальную общую подстроку + +# utils + +```go +import "go.neonxp.dev/extra/utils" +``` + +Всякое разное + +## Index + +- [func Ptr[T any](t T) *T](<#func-ptr>) +- [type Scalar](<#type-scalar>) +- [type Sortable](<#type-sortable>) + + +## func Ptr + +```go +func Ptr[T any](t T) *T +``` + +Ptr получение указателя от произвольного значения\, например\, ToPtr\(true\) \-\> \*bool\(true\) + +## type Scalar + +Scalar соответствует скалярам над которыми определены операции сравнения + +```go +type Scalar interface { + // contains filtered or unexported methods +} +``` + +## type Sortable + +Sortable соответствует типам над которыми определена операция Less + +```go +type Sortable[T any] interface { + Less(T) bool +} +``` + + + +Generated by [gomarkdoc](<https://github.com/princjef/gomarkdoc>) |