Documentation
¶
Overview ¶
Copyright (C) 2025 timbastin
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
Index ¶
- Constants
- Variables
- func AddSlashCommandsToDependencyVuln(str *strings.Builder) *strings.Builder
- func AddSlashCommandsToFirstPartyVuln(str *strings.Builder) *strings.Builder
- func AddToWhitespaceSeparatedStringList(s string, item string) string
- func All[T any](s []T, f func(T) bool) bool
- func Any[T any](s []T, f func(T) bool) bool
- func CheckForValidLanguageCode(languageCode string) bool
- func CompareFirstTwoDecimals(a, b float64) bool
- func Concurrently(fns ...func() (any, error)) concurrentResultSlice
- func Contains[T comparable](s []T, el T) bool
- func ContainsAll[T comparable](s []T, needed []T) bool
- func ContainsInWhitespaceSeparatedStringList(s string, item string) bool
- func Debounce(fn func(), delay time.Duration) func()
- func Disjoin[T any](a []T, predicate func(el T) bool) ([]T, []T)
- func EmptyThenNil(s string) *string
- func ErrGroup[T any](limit int) *errGroup[T]
- func ExtractAttestationPayload(content string) (any, error)
- func Filter[T any](s []T, f func(T) bool) []T
- func Find[T any](s []T, f func(T) bool) (T, bool)
- func Flat[T any](s [][]T) []T
- func GetDirFromPath(path string) string
- func HashString(s string) string
- func Intersect[T comparable](a, b []T) []T
- func Map[T, U any](s []T, f func(T) U) []U
- func Mapper[Key comparable, T any](s []T, f func(T) Key) map[Key]T
- func MergeUnrelated[A, B any](a []A, b []B) []any
- func Or[T any](val *T, fallback *T) *T
- func OrDefault[T any](val *T, def T) T
- func PrintBuildInformation()
- func Ptr[T any](t T) *T
- func ReadCsv(reader *csv.Reader, fn func(row []string) error) (int, error)
- func ReadCsvFile(filePath string) ([]map[string]any, error)
- func ReadCsvInChunks(reader *csv.Reader, chunkSize int, fn func(rows [][]string) error) (int, error)
- func ReadFileFromGitRef(path string, commitSha string, fileName string) ([]byte, error)
- func ReadZipFile(zf *zip.File) ([]byte, error)
- func Reduce[T, U any](s []T, f func(U, T) U, init U) U
- func RemoveFromWhitespaceSeparatedStringList(s string, item string) string
- func RemovePrefixInsensitive(input string, prefix string) string
- func RunsInCI() bool
- func SafeDereference(s *string) string
- func ShannonEntropy(str string) float64
- func SlicePtr[T any](t []T) []*T
- func Some[T any](s []T, f func(T) bool) bool
- func UniqBy[T any, K comparable](s []T, f func(T) K) []T
- func Unzip(src, dest string) error
- func Values[K comparable, T any](m map[K]T) []T
- func WrapHTTPClient(client *http.Client, ...)
- func ZipReaderFromResponse(resp *http.Response) (*zip.Reader, error)
- type BatchModelWriter
- type CacheTransport
- type CompareResult
- type Date
- type EgressRoundTripper
- type FireAndForgetSynchronizer
- type GitVersionInfo
- type GoroutineFireAndForgetSynchronizer
- type ModelReader
- type ModelWriter
- type Repository
- type SyncFireAndForgetSynchronizer
- type Tabler
- type Transactioner
Constants ¶
const ISO8601Format = "2006-01-02T15:04:05.000"
Variables ¶
var EgressClient = http.Client{ Timeout: 30 * time.Second, Transport: EgressRoundTripper{ // contains filtered or unexported fields }, }
var GitLister gitLister = commandLineGitLister{}
Functions ¶
func CheckForValidLanguageCode ¶
supported languages are declared in `supportedLanguageCodes` at the start of this file
func CompareFirstTwoDecimals ¶
func Concurrently ¶
func Contains ¶
func Contains[T comparable](s []T, el T) bool
func ContainsAll ¶
func ContainsAll[T comparable](s []T, needed []T) bool
func EmptyThenNil ¶
func GetDirFromPath ¶
func HashString ¶
func Intersect ¶
func Intersect[T comparable](a, b []T) []T
func Mapper ¶
func Mapper[Key comparable, T any](s []T, f func(T) Key) map[Key]T
func MergeUnrelated ¶
func PrintBuildInformation ¶
func PrintBuildInformation()
func ReadCsvInChunks ¶
func ReadFileFromGitRef ¶
func RemovePrefixInsensitive ¶
func SafeDereference ¶
func ShannonEntropy ¶
func UniqBy ¶
func UniqBy[T any, K comparable](s []T, f func(T) K) []T
func Values ¶
func Values[K comparable, T any](m map[K]T) []T
func WrapHTTPClient ¶
Types ¶
type BatchModelWriter ¶
type CacheTransport ¶
type CacheTransport struct {
// contains filtered or unexported fields
}
func NewCacheTransport ¶
func NewCacheTransport(cacheSize int, expiration time.Duration) *CacheTransport
func (*CacheTransport) Handler ¶
func (c *CacheTransport) Handler() func(req *http.Request, next http.RoundTripper) (*http.Response, error)
type CompareResult ¶
type CompareResult[T any] struct { OnlyInA []T OnlyInB []T InBoth []T // returns the elements in A InBothB []T }
func CompareSlices ¶
func CompareSlices[T any, K comparable](a, b []T, serializer func(T) K) CompareResult[T]
type Date ¶
func (Date) MarshalJSON ¶
func (*Date) UnmarshalJSON ¶
Implement Marshaler and Unmarshaler interface
type EgressRoundTripper ¶
type EgressRoundTripper struct {
// contains filtered or unexported fields
}
type FireAndForgetSynchronizer ¶
type FireAndForgetSynchronizer interface {
FireAndForget(fn func())
}
useful for integration testing - use in production to just fire and forget a function "go func()" during testing, this can be used to synchronize the execution of multiple goroutines - and wait for them to finish
type GitVersionInfo ¶
func GetAssetVersionInfo ¶
func GetAssetVersionInfo(path string) (GitVersionInfo, error)
type GoroutineFireAndForgetSynchronizer ¶
type GoroutineFireAndForgetSynchronizer struct{}
func NewFireAndForgetSynchronizer ¶
func NewFireAndForgetSynchronizer() *GoroutineFireAndForgetSynchronizer
func (*GoroutineFireAndForgetSynchronizer) FireAndForget ¶
func (f *GoroutineFireAndForgetSynchronizer) FireAndForget(fn func())
super simple: create a goroutine and call the function in it
type ModelReader ¶
type ModelWriter ¶
type Repository ¶
type Repository[ID any, T Tabler, Tx any] interface { ModelWriter[ID, T, Tx] ModelReader[ID, T] BatchModelWriter[T, Tx] Transactioner[Tx] }
type SyncFireAndForgetSynchronizer ¶
type SyncFireAndForgetSynchronizer struct {
}
func NewSyncFireAndForgetSynchronizer ¶
func NewSyncFireAndForgetSynchronizer() *SyncFireAndForgetSynchronizer
func (*SyncFireAndForgetSynchronizer) FireAndForget ¶
func (f *SyncFireAndForgetSynchronizer) FireAndForget(fn func())
just don't use a goroutine, but call the function directly