github.com/aacfactory/fns-contrib/databases/sql@v1.2.84/dac/conditions/literal.go (about) 1 package conditions 2 3 import ( 4 "github.com/aacfactory/fns/commons/times" 5 "strconv" 6 "time" 7 "unsafe" 8 ) 9 10 func String(s string) Literal { 11 return Literal{ 12 value: "'" + s + "'", 13 } 14 } 15 16 func Bool(b bool) Literal { 17 return Literal{ 18 value: strconv.FormatBool(b), 19 } 20 } 21 22 func Int(n int) Literal { 23 return Literal{ 24 value: strconv.Itoa(n), 25 } 26 } 27 28 func Int64(n int64) Literal { 29 return Literal{ 30 value: strconv.FormatInt(n, 10), 31 } 32 } 33 34 func Float(f float32) Literal { 35 return Literal{ 36 value: strconv.FormatFloat(float64(f), 'f', -1, 32), 37 } 38 } 39 40 func Float64(f float64) Literal { 41 return Literal{ 42 value: strconv.FormatFloat(f, 'f', -1, 64), 43 } 44 } 45 46 func Datetime(t time.Time) Literal { 47 return Literal{ 48 value: "'" + t.Format(time.RFC3339Nano) + "'", 49 } 50 } 51 52 func Date(t times.Date) Literal { 53 return Literal{ 54 value: "'" + t.String() + "'", 55 } 56 } 57 58 func Time(t times.Time) Literal { 59 return Literal{ 60 value: "'" + t.String() + "'", 61 } 62 } 63 64 func Null() Literal { 65 return Literal{ 66 value: "null", 67 } 68 } 69 70 func Lit(v string) Literal { 71 return Literal{ 72 value: v, 73 } 74 } 75 76 type Literal struct { 77 value string 78 } 79 80 func (lit Literal) Value() string { 81 return lit.value 82 } 83 84 func (lit Literal) String() string { 85 return lit.value 86 } 87 88 func (lit Literal) Bytes() []byte { 89 return unsafe.Slice(unsafe.StringData(lit.value), len(lit.value)) 90 }