errors.go
func AsError(r interface{}) error {
	if r == nil {
		return nil
	}
	if err, ok := r.(error); ok {
		return err
	}
	return fmt.Errorf("%v", r)
}
func AsError(r interface{}) error {
	if r == nil {
		return nil
	}
	if err, ok := r.(error); ok {
		return err
	}
	return fmt.Errorf("%v", r)
}
func AsError ( r interface { } ) error { if r == nil { return nil } if err , ok := r . ( error ) ; ok { return err } return fmt . Errorf ( " " , r ) }
// AsError returns r as error, converting it when necessary
AsError returns r as error converting it when necessary