// Code generated by astool. DO NOT EDIT.

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
}
