File tree Expand file tree Collapse file tree 2 files changed +40
-0
lines changed
Expand file tree Collapse file tree 2 files changed +40
-0
lines changed Original file line number Diff line number Diff line change @@ -218,6 +218,25 @@ func (cmd *Cmd) Uint64() (uint64, error) {
218218 }
219219}
220220
221+ func (cmd * Cmd ) Float32 () (float32 , error ) {
222+ if cmd .err != nil {
223+ return 0 , cmd .err
224+ }
225+ switch val := cmd .val .(type ) {
226+ case int64 :
227+ return float32 (val ), nil
228+ case string :
229+ f , err := strconv .ParseFloat (val , 32 )
230+ if err != nil {
231+ return 0 , err
232+ }
233+ return float32 (f ), nil
234+ default :
235+ err := fmt .Errorf ("redis: unexpected type=%T for Float32" , val )
236+ return 0 , err
237+ }
238+ }
239+
221240func (cmd * Cmd ) Float64 () (float64 , error ) {
222241 if cmd .err != nil {
223242 return 0 , cmd .err
@@ -585,6 +604,17 @@ func (cmd *StringCmd) Uint64() (uint64, error) {
585604 return strconv .ParseUint (cmd .Val (), 10 , 64 )
586605}
587606
607+ func (cmd * StringCmd ) Float32 () (float32 , error ) {
608+ if cmd .err != nil {
609+ return 0 , cmd .err
610+ }
611+ f , err := strconv .ParseFloat (cmd .Val (), 32 )
612+ if err != nil {
613+ return 0 , err
614+ }
615+ return float32 (f ), nil
616+ }
617+
588618func (cmd * StringCmd ) Float64 () (float64 , error ) {
589619 if cmd .err != nil {
590620 return 0 , cmd .err
Original file line number Diff line number Diff line change @@ -57,4 +57,14 @@ var _ = Describe("Cmd", func() {
5757 Expect (f ).To (Equal (float64 (10 )))
5858 })
5959
60+ It ("supports float32" , func () {
61+ f := float32 (66.97 )
62+
63+ err := client .Set ("float_key" , f , 0 ).Err ()
64+ Expect (err ).NotTo (HaveOccurred ())
65+
66+ val , err := client .Get ("float_key" ).Float32 ()
67+ Expect (err ).NotTo (HaveOccurred ())
68+ Expect (val ).To (Equal (f ))
69+ })
6070})
You can’t perform that action at this time.
0 commit comments