From a39eb56303e1c35f4674066b389aac91b807bf9a Mon Sep 17 00:00:00 2001 From: Alex Denes Date: Fri, 30 Apr 2021 19:18:17 +0000 Subject: [PATCH] Add unfinished reader --- rot13reader.go | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 rot13reader.go diff --git a/rot13reader.go b/rot13reader.go new file mode 100644 index 0000000..cb117f5 --- /dev/null +++ b/rot13reader.go @@ -0,0 +1,47 @@ +package main + +import ( + "io" + "os" + "strings" + "fmt" +) + +// TODO: Finish this + +type rot13Reader struct { + r io.Reader +} + +func (r rot13Reader) Read(b []byte) (int, error) { + tmp := make([]byte, 8) + n, err := r.Read(tmp) + fmt.Println(tmp) + if err != nil { + return n, err + } + for i, e := range tmp { + b[i] = rot13shift(e) + } + fmt.Println(b) + return n, nil +} + +func rot13shift(b byte) byte { + if b >= 'N' && b <= 'Z' { + return 'A' + ('N' - b) + } else if b >= 'n' && b <= 'z' { + return 'a' + ('n' - b) + } else if b >= 'A' && b <= 'M' { + return 'N' + ('A' - b) + } else if b >= 'a' && b <= 'm' { + return 'n' + ('a' - b) + } + return 0 +} + +func main() { + s := strings.NewReader("Lbh penpxrq gur pbqr!") + r := rot13Reader{s} + io.Copy(os.Stdout, &r) +}