Skip to content

Commit 7905e91

Browse files
committed
objects: chan/map plain coding
1 parent 85e87c2 commit 7905e91

File tree

2 files changed

+31
-2
lines changed

2 files changed

+31
-2
lines changed

objects/chan.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package objects
1717
import (
1818
"io"
1919

20+
"github.com/go-air/pal/internal/plain"
2021
"github.com/go-air/pal/memory"
2122
)
2223

@@ -40,6 +41,10 @@ func (c *Chan) Send(src memory.Loc, mm *memory.Model) {
4041

4142
func (c *Chan) PlainEncode(w io.Writer) error {
4243
var err error
44+
err = plain.Put(w, "c")
45+
if err != nil {
46+
return err
47+
}
4348
if err = c.object.plainEncode(w); err != nil {
4449
return err
4550
}
@@ -48,6 +53,10 @@ func (c *Chan) PlainEncode(w io.Writer) error {
4853

4954
func (c *Chan) PlainDecode(r io.Reader) error {
5055
var err error
56+
err = plain.Expect(r, "c")
57+
if err != nil {
58+
return err
59+
}
5160
p := &c.object
5261
if err = p.plainDecode(r); err != nil {
5362
return err

objects/map.go

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package objects
1717
import (
1818
"io"
1919

20+
"github.com/go-air/pal/internal/plain"
2021
"github.com/go-air/pal/memory"
2122
)
2223

@@ -45,9 +46,28 @@ func (m *Map) Lookup(dst memory.Loc, mm *memory.Model) {
4546
}
4647

4748
func (m *Map) PlainEncode(w io.Writer) error {
48-
return nil
49+
var err error
50+
err = plain.Put(w, "m")
51+
if err != nil {
52+
return err
53+
}
54+
err = m.object.plainEncode(w)
55+
if err != nil {
56+
return err
57+
}
58+
return plain.EncodeJoin(w, " ", m.key, m.elem)
4959
}
5060

5161
func (m *Map) PlainDecode(r io.Reader) error {
52-
return nil
62+
var err error
63+
err = plain.Expect(r, "m")
64+
if err != nil {
65+
return err
66+
}
67+
pobj := &m.object
68+
err = pobj.plainDecode(r)
69+
if err != nil {
70+
return err
71+
}
72+
return plain.DecodeJoin(r, " ", &m.key, &m.elem)
5373
}

0 commit comments

Comments
 (0)