From bd5339bff8bf5f5e877e94dfef265a22570a69c7 Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Mon, 17 Feb 2020 11:56:43 +0300 Subject: first working version --- pkg/server/module/alpha.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 pkg/server/module/alpha.go (limited to 'pkg/server/module/alpha.go') diff --git a/pkg/server/module/alpha.go b/pkg/server/module/alpha.go new file mode 100644 index 0000000..be9032c --- /dev/null +++ b/pkg/server/module/alpha.go @@ -0,0 +1,32 @@ +package module + +import ( + "tunnel/pkg/server/queue" + "unicode" + "bufio" + "io" +) + +func alpha(cb func (rune) rune) pipe { + return func (rq, wq queue.Q) error { + r := bufio.NewReader(rq.Reader()) + + for { + c, _, err := r.ReadRune() + if err != nil { + if err == io.EOF { + break + } + return err + } + wq <- []byte(string(cb(c))) + } + + return nil + } +} + +func init() { + register("lower", alpha(unicode.ToLower)) + register("upper", alpha(unicode.ToUpper)) +} -- cgit v1.2.3-70-g09d2