utils

package
v0.86.1 Latest Latest
Warning

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

Go to latest
Published: May 7, 2020 License: AGPL-3.0 Imports: 12 Imported by: 43

Documentation

Index

Constants

View Source
const (
	LocationPathSeparator = ">"
)

Variables

View Source
var Validator = validator.New()

Validator is our system validator, it can be shared across threads

Functions

func FindPhoneNumbers added in v0.70.0

func FindPhoneNumbers(s, country string) []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 IsNil added in v0.4.0

func IsNil(v interface{}) bool

IsNil returns whether the given object is nil or an interface to a nil

func IsPossibleLocationPath added in v0.32.0

func IsPossibleLocationPath(str string) bool

IsPossibleLocationPath returns whether the given string could be a location path

func MaxInt added in v0.34.1

func MaxInt(x, y int) int

MaxInt returns the maximum of two integers

func MinInt added in v0.10.1

func MinInt(x, y int) int

MinInt returns the minimum of two integers

func ParsePhoneNumber added in v0.70.0

func ParsePhoneNumber(s, country string) 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 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 StringSet added in v0.78.1

func StringSet(s []string) map[string]bool

StringSet converts a slice of strings to a set (a string > bool map)

func StringSetKeys added in v0.64.2

func StringSetKeys(m map[string]bool) []string

StringSetKeys returns the keys of string set in lexical order

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 Truncate added in v0.64.10

func Truncate(s string, limit int) string

Truncate truncates the given string to ensure it's less than limit characters

func TruncateEllipsis added in v0.66.1

func TruncateEllipsis(s string, limit int) string

TruncateEllipsis truncates the given string and adds ellipsis where the input is cut

func UnmarshalAndValidate added in v0.4.0

func UnmarshalAndValidate(data []byte, obj interface{}) 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 interface{}, 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 interface{}) 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 Location added in v0.4.0

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

Location represents a single Location

func NewLocation added in v0.4.0

func NewLocation(level LocationLevel, name string) *Location

NewLocation creates a new location object

func (*Location) Aliases added in v0.4.0

func (l *Location) Aliases() []string

Aliases gets the aliases of this location

func (*Location) Children added in v0.4.0

func (l *Location) Children() []*Location

Children gets the children of this location

func (*Location) Level added in v0.4.0

func (l *Location) Level() LocationLevel

Level gets the level of this location

func (*Location) Name added in v0.4.0

func (l *Location) Name() string

Name gets the name of this location

func (*Location) Parent added in v0.4.0

func (l *Location) Parent() *Location

Parent gets the parent of this location

func (*Location) Path added in v0.9.6

func (l *Location) Path() LocationPath

Path gets the full path of this location

func (*Location) String added in v0.9.6

func (l *Location) String() string

type LocationHierarchy added in v0.4.0

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

LocationHierarchy is a hierarical tree of locations

func NewLocationHierarchy added in v0.4.0

func NewLocationHierarchy(root *Location, numLevels int) *LocationHierarchy

NewLocationHierarchy cretes a new location hierarchy

func ReadLocationHierarchy added in v0.4.0

func ReadLocationHierarchy(data json.RawMessage) (*LocationHierarchy, error)

ReadLocationHierarchy reads a location hierarchy from the given JSON

func (*LocationHierarchy) FindByName added in v0.4.0

func (h *LocationHierarchy) FindByName(name string, level LocationLevel, parent *Location) []*Location

FindByName looks for all locations in the hierarchy with the given level and name or alias

func (*LocationHierarchy) FindByPath added in v0.9.6

func (h *LocationHierarchy) FindByPath(path LocationPath) *Location

FindByPath looks for a location in the hierarchy with the given path

func (*LocationHierarchy) Root added in v0.6.0

func (h *LocationHierarchy) Root() *Location

Root gets the root location of this hierarchy (typically a country)

func (*LocationHierarchy) UnmarshalJSON added in v0.22.0

func (h *LocationHierarchy) UnmarshalJSON(data []byte) error

type LocationLevel added in v0.4.0

type LocationLevel int

LocationLevel is a numeric level, e.g. 0 = country, 1 = state

type LocationPath added in v0.32.0

type LocationPath string

LocationPath is a location described by a path Country > State ...

func NewLocationPath added in v0.32.0

func NewLocationPath(parts ...string) LocationPath

func (LocationPath) Name added in v0.32.0

func (p LocationPath) Name() string

Name returns the name of the location referenced

func (LocationPath) Normalize added in v0.32.0

func (p LocationPath) Normalize() LocationPath

Normalize normalizes this location path

type Redactor added in v0.86.1

type Redactor func(s string) string

Redactor is a function which can redact the given string

func NewRedactor added in v0.86.1

func NewRedactor(mask string, values ...string) Redactor

NewRedactor creates a new redaction function which replaces the given values

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