aboutsummaryrefslogtreecommitdiff
path: root/file/file.go
diff options
context:
space:
mode:
Diffstat (limited to 'file/file.go')
-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
+}