package entity import ( "fmt" "golang.org/x/term" ) type ServerClient struct{} func NewServerClient() *ServerClient { return &ServerClient{} } func (c *ServerClient) Send(msg string) error { fmt.Println(msg) return nil } func (c *ServerClient) Username() string { return "server" } type TerminalClient struct { terminal *term.Terminal username string } func NewTerminalClient(term *term.Terminal, username string) *TerminalClient { return &TerminalClient{ terminal: term, username: username, } } func (c *TerminalClient) Send(msg string) error { _, err := fmt.Fprintf(c.terminal, "%s\n", msg) if err != nil { return err } return nil } func (c *TerminalClient) Username() string { return c.username }