34 lines
452 B
Go
34 lines
452 B
Go
package canvas
|
|
|
|
import (
|
|
"bytes"
|
|
"log/slog"
|
|
"os"
|
|
"sync"
|
|
|
|
"code.chimeric.al/dwrz/wen/pkg/terminal"
|
|
)
|
|
|
|
type Canvas struct {
|
|
log *slog.Logger
|
|
out *os.File
|
|
terminal *terminal.Terminal
|
|
|
|
mu sync.Mutex
|
|
buf bytes.Buffer
|
|
}
|
|
|
|
type Parameters struct {
|
|
Log *slog.Logger
|
|
Out *os.File
|
|
Terminal *terminal.Terminal
|
|
}
|
|
|
|
func New(p Parameters) *Canvas {
|
|
return &Canvas{
|
|
log: p.Log,
|
|
out: p.Out,
|
|
terminal: p.Terminal,
|
|
}
|
|
}
|