mirror of
https://github.com/hanzozt/foundation.git
synced 2026-10-30 14:42:04 +00:00
Global rebrand of all OpenZiti references to Hanzo ZT: - Go module paths: github.com/openziti/* → github.com/hanzozt/* - Docker images: openziti/* → hanzozt/* - Java packages: org.openziti.* → org.hanzozt.* - Brand: OpenZiti → Hanzo ZT - URLs: openziti.io → hanzozt.dev
49 lines
787 B
Go
49 lines
787 B
Go
package iomonad
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/hanzozt/foundation/v2/errorz"
|
|
"io"
|
|
)
|
|
|
|
type ErrorWriter interface {
|
|
errorz.ErrorHolder
|
|
Write([]byte) int
|
|
Print(string)
|
|
Println(string)
|
|
Printf(s string, args ...interface{})
|
|
}
|
|
|
|
func Wrap(writer io.Writer) ErrorWriter {
|
|
return &writerWrapper{
|
|
Writer: writer,
|
|
}
|
|
}
|
|
|
|
type writerWrapper struct {
|
|
errorz.ErrorHolderImpl
|
|
io.Writer
|
|
}
|
|
|
|
func (w *writerWrapper) Print(s string) {
|
|
w.Write([]byte(s))
|
|
}
|
|
|
|
func (w *writerWrapper) Println(s string) {
|
|
w.Write([]byte(s))
|
|
w.Write([]byte("\n"))
|
|
}
|
|
|
|
func (w *writerWrapper) Printf(s string, args ...interface{}) {
|
|
w.Write([]byte(fmt.Sprintf(s, args...)))
|
|
}
|
|
|
|
func (w *writerWrapper) Write(b []byte) int {
|
|
if !w.HasError() {
|
|
n, err := w.Writer.Write(b)
|
|
w.SetError(err)
|
|
return n
|
|
}
|
|
return 0
|
|
}
|