28 lines
687 B
Go
28 lines
687 B
Go
|
package cardsim
|
||
|
|
||
|
import "fmt"
|
||
|
|
||
|
// Message is an opaque interface representing a displayable message.
|
||
|
// Using an interface here allows for implementation of new message display
|
||
|
// and formatting features without rewriting all existing callers.
|
||
|
type Message interface {
|
||
|
fmt.Stringer
|
||
|
}
|
||
|
|
||
|
type stringMessage string
|
||
|
|
||
|
func (s stringMessage) String() string {
|
||
|
return string(s)
|
||
|
}
|
||
|
|
||
|
// MsgStr returns a Message representing a fixed string.
|
||
|
func MsgStr(s string) Message {
|
||
|
return stringMessage(s)
|
||
|
}
|
||
|
|
||
|
// Msgf is a Sprintf-like function that produces a Message equivalent to the
|
||
|
// one created by MsgStr.
|
||
|
func Msgf(f string, args ...any) Message {
|
||
|
return stringMessage(fmt.Sprintf(f, args...))
|
||
|
}
|