/* NAME encoding.go DESCRIPTION See Readme.md AUTHOR Saxon Nelson-Milton LICENSE encoding.go is Copyright (C) 2017 the Australian Ocean Lab (AusOcean) It is free software: you can redistribute it and/or modify them under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with revid in gpl.txt. If not, see http://www.gnu.org/licenses. */ package stream type Encoder interface { Encode([]byte) error Stream() <-chan []byte } // NopEncoder returns an func NopEncoder() Encoder { return noop{make(chan []byte, 1)} } type noop struct { dst chan []byte } func (e noop) Encode(p []byte) error { b := make([]byte, len(p)) copy(b, p) e.dst <- b return nil } func (e noop) Stream() <-chan []byte { return e.dst }