diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-01-11 04:22:04 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-01-11 04:23:55 +0900 |
| commit | e1e46504a1939aff927ae47508b0523a7305fb18 (patch) | |
| tree | 94f3e9871ac139d701915c2b7517e823701c60ff /container/check/absolute.go | |
| parent | ec9343ebd625cc97a0dd8b09f030f84b142b7ca4 (diff) | |
container/check: return error backed by string type
The struct turned out not necessary during initial implementation but was not unwrapped into its single string field. This change replaces it with the underlying string and removes the indirection.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'container/check/absolute.go')
| -rw-r--r-- | container/check/absolute.go | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/container/check/absolute.go b/container/check/absolute.go index 26f0def6..d17d5e1a 100644 --- a/container/check/absolute.go +++ b/container/check/absolute.go @@ -13,15 +13,18 @@ import ( ) // AbsoluteError is returned by [NewAbs] and holds the invalid pathname. -type AbsoluteError struct{ Pathname string } +type AbsoluteError string -func (e *AbsoluteError) Error() string { return fmt.Sprintf("path %q is not absolute", e.Pathname) } -func (e *AbsoluteError) Is(target error) bool { - var ce *AbsoluteError +func (e AbsoluteError) Error() string { + return fmt.Sprintf("path %q is not absolute", string(e)) +} + +func (e AbsoluteError) Is(target error) bool { + var ce AbsoluteError if !errors.As(target, &ce) { return errors.Is(target, syscall.EINVAL) } - return *e == *ce + return e == ce } // Absolute holds a pathname checked to be absolute. @@ -59,7 +62,7 @@ func (a *Absolute) Is(v *Absolute) bool { // NewAbs checks pathname and returns a new [Absolute] if pathname is absolute. func NewAbs(pathname string) (*Absolute, error) { if !path.IsAbs(pathname) { - return nil, &AbsoluteError{pathname} + return nil, AbsoluteError(pathname) } return unsafeAbs(pathname), nil } @@ -90,7 +93,7 @@ func (a *Absolute) GobEncode() ([]byte, error) { func (a *Absolute) GobDecode(data []byte) error { pathname := string(data) if !path.IsAbs(pathname) { - return &AbsoluteError{pathname} + return AbsoluteError(pathname) } a.pathname = unique.Make(pathname) return nil @@ -108,7 +111,7 @@ func (a *Absolute) UnmarshalJSON(data []byte) error { return err } if !path.IsAbs(pathname) { - return &AbsoluteError{pathname} + return AbsoluteError(pathname) } a.pathname = unique.Make(pathname) return nil |
