utils

package
v0.223.0 Latest Latest
Warning

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

Go to latest
Published: Nov 12, 2024 License: AGPL-3.0, AGPL-3.0-or-later Imports: 11 Imported by: 43

Documentation

Index

Constants

View Source
const UnavailableType = "unavailable"

UnavailableType is the pseudo content type we use for attachments that couldn't be fetched

Variables

This section is empty.

Functions

func EnsureNonNil added in v0.222.2

func EnsureNonNil[T any](s []T) []T

Until encoding/json/v2 there's no easy way to ensure nil slices are marshalled as empty arrays see https://github.com/golang/go/discussions/63397

func FindPhoneNumbers added in v0.70.0

func FindPhoneNumbers(s string, country i18n.Country) []string

FindPhoneNumbers finds phone numbers anywhere in the given string

func Indent added in v0.34.1

func Indent(s string, prefix string) string

Indent indents each non-empty line in the given string

func IsValidAttachment added in v0.219.1

func IsValidAttachment(s string) bool

IsValidAttachment returns whether the given string is a valid attachment

func ParsePhoneNumber added in v0.70.0

func ParsePhoneNumber(s string, country i18n.Country) string

ParsePhoneNumber tries to parse the given string as a phone number. If successful, it returns it formatted as E164.

func PrefixOverlap added in v0.14.7

func PrefixOverlap(s1, s2 string) int

PrefixOverlap returns the number of prefix characters which s1 and s2 have in common

func ReadTypeFromJSON added in v0.22.0

func ReadTypeFromJSON(data []byte) (string, error)

ReadTypeFromJSON reads a field called `type` from the given JSON

func RegisterStructValidator added in v0.96.0

func RegisterStructValidator(fn validator.StructLevelFunc, types ...any)

RegisterStructValidator registers a struct level validator

func RegisterValidatorAlias added in v0.96.0

func RegisterValidatorAlias(alias, tags string, message ErrorMessageFunc)

RegisterValidatorAlias registers a tag alias

func RegisterValidatorTag added in v0.96.0

func RegisterValidatorTag(tag string, fn validator.Func, message ErrorMessageFunc)

RegisterValidatorTag registers a tag

func Set added in v0.183.0

func Set[K constraints.Ordered](s []K) map[K]bool

Set converts a slice to a set (a K > bool map)

func Snakify

func Snakify(text string) string

Snakify turns the passed in string into a context reference. We replace all whitespace characters with _ and replace any duplicate underscores

func StringSliceContains added in v0.30.2

func StringSliceContains(slice []string, str string, caseSensitive bool) bool

StringSliceContains determines whether the given slice of strings contains the given string

func StringSlices added in v0.28.3

func StringSlices(s string, indices []int) []string

StringSlices returns the slices of s defined by pairs of indexes in indices

func TokenizeString

func TokenizeString(str string) []string

TokenizeString returns the words in the passed in string, split by non word characters including emojis

func TokenizeStringByChars added in v0.10.17

func TokenizeStringByChars(str string, chars string) []string

TokenizeStringByChars returns the words in the passed in string, split by the chars in the given string

func TokenizeStringByUnicodeSeg added in v0.66.1

func TokenizeStringByUnicodeSeg(str string) []string

TokenizeStringByUnicodeSeg tokenizes the given string using the Unicode Text Segmentation standard described at http://www.unicode.org/reports/tr29/

func UnmarshalAndValidate added in v0.4.0

func UnmarshalAndValidate(data []byte, obj any) error

UnmarshalAndValidate is a convenience function to unmarshal an object and validate it

func UnmarshalAndValidateWithLimit added in v0.13.1

func UnmarshalAndValidateWithLimit(reader io.ReadCloser, s any, limit int64) error

UnmarshalAndValidateWithLimit unmarshals a struct with a limit on how many bytes can be read from the given reader

func Validate added in v0.4.0

func Validate(obj any) error

Validate will run validation on the given object and return a set of field specific errors in the format: field <fieldname> <tag specific message>

For example: "field 'flows' is required"

Types

type Attachment added in v0.32.0

type Attachment string

Attachment is a media attachment on a message in the format <content-type>:<url>. Content type may be a full media type or may omit the subtype when it is unknown.

Examples:

func (Attachment) ContentType added in v0.32.0

func (a Attachment) ContentType() string

ContentType returns the MIME type of this attachment

func (Attachment) ToParts added in v0.32.0

func (a Attachment) ToParts() (string, string)

ToParts splits an attachment string into content-type and URL

func (Attachment) URL added in v0.32.0

func (a Attachment) URL() string

URL returns the full URL of this attachment

type ErrorMessageFunc added in v0.96.0

type ErrorMessageFunc func(validator.FieldError) string

ErrorMessageFunc is the type for a function that can convert a field error to user friendly message

type Typed

type Typed interface {
	Type() string
}

Typed is an interface of objects that are marshalled as typed envelopes

type TypedEnvelope

type TypedEnvelope struct {
	Type string `json:"type" validate:"required"`
}

TypedEnvelope can be mixed into envelopes that have a type field

type ValidationErrors added in v0.4.0

type ValidationErrors []error

ValidationErrors combines multiple validation errors as a single error

func (ValidationErrors) Error added in v0.4.0

func (e ValidationErrors) Error() string

Error returns a string representation of these validation errors

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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