32 lines
654 B
Go
32 lines
654 B
Go
|
// Copyright 2024 Matthew Rich <matthewrich.conf@gmail.com>. All rights reserved.
|
||
|
|
||
|
package command
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"gopkg.in/yaml.v3"
|
||
|
)
|
||
|
|
||
|
type CommandArg string
|
||
|
|
||
|
func (c *CommandArg) UnmarshalValue(value string) error {
|
||
|
*c = CommandArg(value)
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (c *CommandArg) UnmarshalJSON(data []byte) error {
|
||
|
var s string
|
||
|
if unmarshalRouteTypeErr := json.Unmarshal(data, &s); unmarshalRouteTypeErr != nil {
|
||
|
return unmarshalRouteTypeErr
|
||
|
}
|
||
|
return c.UnmarshalValue(s)
|
||
|
}
|
||
|
|
||
|
func (c *CommandArg) UnmarshalYAML(value *yaml.Node) error {
|
||
|
var s string
|
||
|
if err := value.Decode(&s); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return c.UnmarshalValue(s)
|
||
|
}
|