datatype

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Jan 16, 2023 License: MIT Imports: 14 Imported by: 9

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetModelFieldTypeElmIfValid

func GetModelFieldTypeElmIfValid(modelObj interface{}, fieldName string) (reflect.Type, error)

GetModelFieldTypeElmIfValid is like GetModelFieldTypeIfValid, but get the element if it is array

func GetModelFieldTypeIfValid

func GetModelFieldTypeIfValid(modelObj interface{}, fieldName string) (reflect.Type, error)

GetModelFieldTypeIfValid make sure the fieldName is in the modelObj, and find the correct reflect.Type func GetModelFieldTypeIfValid(modelObj mdl.IModel, fieldName string) (reflect.Type, error) { If this is an array, get the actual type instead of the array type

func TransformFieldValue

func TransformFieldValue(typeInString string, fieldValue string) (interface{}, error)

TransformFieldValue transforms type in URL parameter to the proper data types

func TransformFieldValues

func TransformFieldValues(typeInString string, fieldValues []string) ([]interface{}, error)

TransformFieldValues transforms type in URL parameters to the proper data types

Types

type EWKBPoint

type EWKBPoint struct {
	Point wkb.Point
}

EWKBPoint encapsulate Point and handles value and scanners to work with Gorm Fetch by .Point.X(), .Point.Y()

func NewEWKBPoint

func NewEWKBPoint(coords []float64) *EWKBPoint

NewEWKBPoint creates a new EWKBPoint

func (*EWKBPoint) MarshalJSON

func (m *EWKBPoint) MarshalJSON() ([]byte, error)

MarshalJSON customizes unmarshalling from JSON array (e.g. [10, 20])

func (*EWKBPoint) Scan

func (m *EWKBPoint) Scan(src interface{}) error

Scan satisfies the Scanner interace and is responsible for reading data from the database

func (*EWKBPoint) UnmarshalJSON

func (m *EWKBPoint) UnmarshalJSON(b []byte) (err error)

UnmarshalJSON json satisfies the JSON library

{
    "type": "Point",
    "coordinates": [30, 10]
}

func (*EWKBPoint) Value

func (m *EWKBPoint) Value() (driver.Value, error)

Value satisfies the Valuer interace and is responsible for writing data to the database

type EWKBPolygon

type EWKBPolygon struct {
	Polygon ewkb.Polygon
}

EWKBPolygon encapsulate Polygon and handles value and scanners to work with Gorm

func (*EWKBPolygon) MarshalJSON

func (m *EWKBPolygon) MarshalJSON() ([]byte, error)

MarshalJSON customizes unmarshalling from JSON array (e.g. [10, 20])

func (*EWKBPolygon) Scan

func (m *EWKBPolygon) Scan(src interface{}) error

Scan satisfies the Scanner interace and is responsible for reading data from the database

func (*EWKBPolygon) UnmarshalJSON

func (m *EWKBPolygon) UnmarshalJSON(b []byte) (err error)

UnmarshalJSON json satisfies the JSON library https://en.wikipedia.org/wiki/GeoJSON

{
    "type": "Polygon",
    "coordinates": [
        [[30, 10], [40, 40], [20, 40], [10, 20], [30, 10]]
    ]
}

func (*EWKBPolygon) Value

func (m *EWKBPolygon) Value() (driver.Value, error)

Value satisfies the Valuer interace and is responsible for writing data to the database

type FieldNotInModelError

type FieldNotInModelError struct {
	Msg string
}

FieldNotInModelError is for GetModelFieldTypeIfValid. if field doesn't exist in the model, return this error We want to go ahead and skip it since this field may be other options that user can read in hookpoints

func (*FieldNotInModelError) Error

func (r *FieldNotInModelError) Error() string

type FilterFunc

type FilterFunc func(v string) bool

type SetString

type SetString struct {
	List map[string]struct{} //empty structs occupy 0 memory
}

func NewSetString

func NewSetString() *SetString

func (*SetString) Add

func (s *SetString) Add(v string)

func (*SetString) AddMulti

func (s *SetString) AddMulti(List ...string)

AddMulti Add multiple values in the set

func (*SetString) Clear

func (s *SetString) Clear()

func (*SetString) Difference

func (s *SetString) Difference(s2 *SetString) *SetString

Difference returns the subset from s, that doesn't exists in s2 (param)

func (*SetString) Filter

func (s *SetString) Filter(P FilterFunc) *SetString

Filter returns a subset, that contains only the values that satisfies the given predicate P

func (*SetString) Has

func (s *SetString) Has(v string) bool

func (*SetString) Intersect

func (s *SetString) Intersect(s2 *SetString) *SetString

func (*SetString) Remove

func (s *SetString) Remove(v string)

func (*SetString) Size

func (s *SetString) Size() int

func (*SetString) Union

func (s *SetString) Union(s2 *SetString) *SetString

type TimeM

type TimeM struct {
	Time time.Time
}

TimeM (Time convertable from JSON int representing minisecond) encapsulate unix time, converts to and from JSON to Unix time in millisecond

func (*TimeM) MarshalJSON

func (t *TimeM) MarshalJSON() ([]byte, error)

MarshalJSON customizes unmarshalling from JSON array

func (*TimeM) UnmarshalJSON

func (t *TimeM) UnmarshalJSON(b []byte) (err error)

UnmarshalJSON unmarshalls it from a string of millisecond

type UUID

type UUID struct {
	UUID uuid.UUID
}

UUID string

func NewUUID

func NewUUID() *UUID

NewUUID generates a UUID that's partly V1 and partly V4 Like V4, but use timestamp as part of V1 to increase locality (performance)

func NewUUIDFromString

func NewUUIDFromString(s string) (u *UUID, err error)

NewUUIDFromString creates UUID from string

func NewUUIDFromStringNoErr

func NewUUIDFromStringNoErr(s string) (u *UUID)

func (*UUID) MarshalJSON

func (u *UUID) MarshalJSON() ([]byte, error)

MarshalJSON customizes unmarshalling from JSON array

func (*UUID) Scan

func (u *UUID) Scan(src interface{}) error

Scan satisfies the Scanner interace and is responsible for reading data from the database

func (*UUID) String

func (u *UUID) String() string

Value satisfies the Valuer interace and is responsible for writing data to the database

func (*UUID) UnmarshalJSON

func (u *UUID) UnmarshalJSON(b []byte) (err error)

UnmarshalJSON unmarshalls it from a string of millisecond

func (*UUID) Value

func (u *UUID) Value() (driver.Value, error)

Value satisfies the Valuer interace and is responsible for writing data to the database

Jump to

Keyboard shortcuts

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