x/model: more comments on UnmarshalText and immutability
This commit is contained in:
parent
348378ef56
commit
5615f60bb0
@ -320,6 +320,10 @@ func (r Name) MarshalText() ([]byte, error) {
|
||||
// It is an error to call UnmarshalText on a valid Name.
|
||||
func (r *Name) UnmarshalText(text []byte) error {
|
||||
if r.Valid() {
|
||||
// The invariant of UnmarshalText is that it should only be
|
||||
// called on an invalid/zero Name. If we allow UnmarshalText
|
||||
// on a valid Name, then the Name will be mutated, breaking
|
||||
// the immutability of the Name.
|
||||
return errors.New("model.Name: UnmarshalText on valid Name")
|
||||
}
|
||||
// unsafeString is safe here because the contract of UnmarshalText
|
||||
|
Loading…
x
Reference in New Issue
Block a user