27 lines
542 B
Go
27 lines
542 B
Go
package doormen
|
|
|
|
import (
|
|
"gopkg.in/mgo.v2/bson"
|
|
"math/big"
|
|
)
|
|
|
|
func (val *DoormanValue) GetBSON() (interface{}, error) {
|
|
ret := &doormanValue{val.Name, ""}
|
|
txt, err := val.Probability.MarshalText()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
ret.Probability = string(txt)
|
|
return ret, nil
|
|
}
|
|
|
|
func (val *DoormanValue) SetBSON(raw bson.Raw) error {
|
|
v := new(doormanValue)
|
|
if err := raw.Unmarshal(v); err != nil {
|
|
return err
|
|
}
|
|
val.Name = v.Name
|
|
val.Probability = new(big.Rat)
|
|
return val.Probability.UnmarshalText([]byte(v.Probability))
|
|
}
|