diff options
| author | Kyren223 <ulmliad223@gmail.com> | 2024-10-20 11:36:43 +0300 |
|---|---|---|
| committer | Kyren223 <ulmliad223@gmail.com> | 2024-10-20 11:36:43 +0300 |
| commit | 1997bc8a150b92783060cc7129e1ee72a761182b (patch) | |
| tree | 35d4df750feb2f1f36883ce8d7f2da9a72c59a25 /pkg/util/io.go | |
| parent | 6e6ca1d7a10a3a4a1decbdb78e2ea11ce24974e3 (diff) | |
refactor: mid refactor
Diffstat (limited to 'pkg/util/io.go')
| -rw-r--r-- | pkg/util/io.go | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/pkg/util/io.go b/pkg/util/io.go deleted file mode 100644 index 5c489ed..0000000 --- a/pkg/util/io.go +++ /dev/null @@ -1,57 +0,0 @@ -package util - -import ( - "context" - "io" -) - -const bufferSize = 512 - -type ChannelReader struct { - Out <-chan []byte - Err <-chan error -} - -func NewChannelReader(ctx context.Context, reader io.Reader) ChannelReader { - outCh := make(chan []byte) - errCh := make(chan error) - - go func(in chan<- []byte, inErr chan<- error) { - defer close(in) - defer close(inErr) - buffer := make([]byte, 2 * bufferSize) - isD1 := true - d1 := buffer[:bufferSize] - d2 := buffer[bufferSize:] - outer: - for { - select { - case <-ctx.Done(): - inErr <- ctx.Err() - break outer - default: - var data []byte - if isD1 { - data = d1 - } else { - data = d2 - } - isD1 = !isD1 - - n, err := reader.Read(data) - if err != nil { - if err != io.EOF { - inErr <- err - } - break outer - } - in <- data[:n] - } - } - }(outCh, errCh) - - return ChannelReader{ - Out: outCh, - Err: errCh, - } -} |
