32 行
983 B
Go
32 行
983 B
Go
package nonnegativeinteger
|
|
|
|
import "fmt"
|
|
|
|
// SerializeNonNegativeInteger converts a nonNegativeInteger value to an interface
|
|
// representation suitable for marshalling into a text or binary format.
|
|
func SerializeNonNegativeInteger(this int) (interface{}, error) {
|
|
return this, nil
|
|
}
|
|
|
|
// DeserializeNonNegativeInteger creates nonNegativeInteger value from an
|
|
// interface representation that has been unmarshalled from a text or binary
|
|
// format.
|
|
func DeserializeNonNegativeInteger(this interface{}) (int, error) {
|
|
if i, ok := this.(float64); ok {
|
|
n := int(i)
|
|
if n >= 0 {
|
|
return n, nil
|
|
} else {
|
|
return 0, fmt.Errorf("%v is a negative integer for xsd:nonNegativeInteger", this)
|
|
}
|
|
} else {
|
|
return 0, fmt.Errorf("%v cannot be interpreted as a float for xsd:nonNegativeInteger", this)
|
|
}
|
|
}
|
|
|
|
// LessNonNegativeInteger returns true if the left nonNegativeInteger value is
|
|
// less than the right value.
|
|
func LessNonNegativeInteger(lhs, rhs int) bool {
|
|
return lhs < rhs
|
|
}
|