aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-07-22 13:24:57 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-07-22 13:24:57 +0200
commitab4919d1d12e130155d11743badd078fe79cf7aa (patch)
tree3feb45fefa931fd4d3482995f6c16a3b2161f838
parent7577ba3d593db107cd6e86281b1f95916c196cd1 (diff)
...
-rw-r--r--file/file.go18
1 files changed, 18 insertions, 0 deletions
diff --git a/file/file.go b/file/file.go
index 8120463..47f117b 100644
--- a/file/file.go
+++ b/file/file.go
@@ -110,3 +110,21 @@ func Parse(data []byte, u encoding.BinaryUnmarshaler) (string, io.Reader, error)
}
return block.Comment, bytes.NewReader(block.Message), nil
}
+
+// TODO rename
+func Store(comment string, u encoding.BinaryMarshaler, r io.Reader) ([]byte, error) {
+ raw, err := u.MarshalBinary()
+ if err != nil {
+ return nil, err
+ }
+ body, err := ioutil.ReadAll(r)
+ if err != io.EOF && err != nil {
+ return nil, err
+ }
+ block := &Block{
+ Comment: comment,
+ Bytes: raw,
+ Message: body,
+ }
+ return EncodeToMemory(block), nil
+}