mirror of
https://github.com/json-iterator/go.git
synced 2025-06-06 22:36:25 +02:00
#34 implement NewEncoder
This commit is contained in:
parent
e36f926072
commit
45bbb40a9f
@ -126,3 +126,22 @@ func (adapter *AdaptedDecoder) Buffered() io.Reader {
|
|||||||
remaining := adapter.iter.buf[adapter.iter.head:adapter.iter.tail]
|
remaining := adapter.iter.buf[adapter.iter.head:adapter.iter.tail]
|
||||||
return bytes.NewReader(remaining)
|
return bytes.NewReader(remaining)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewEncoder(writer io.Writer) *AdaptedEncoder {
|
||||||
|
stream := NewStream(writer, 512)
|
||||||
|
return &AdaptedEncoder{stream}
|
||||||
|
}
|
||||||
|
|
||||||
|
type AdaptedEncoder struct {
|
||||||
|
stream *Stream
|
||||||
|
}
|
||||||
|
|
||||||
|
func (adapter *AdaptedEncoder) Encode(val interface{}) error {
|
||||||
|
adapter.stream.WriteVal(val)
|
||||||
|
adapter.stream.Flush()
|
||||||
|
return adapter.stream.Error
|
||||||
|
}
|
||||||
|
|
||||||
|
func (adapter *AdaptedEncoder) SetIndent(prefix, indent string) {
|
||||||
|
// not implemented yet
|
||||||
|
}
|
@ -32,3 +32,15 @@ func Test_new_decoder(t *testing.T) {
|
|||||||
should.Equal([]int{2}, arr2)
|
should.Equal([]int{2}, arr2)
|
||||||
should.False(decoder2.More())
|
should.False(decoder2.More())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Test_new_encoder(t *testing.T) {
|
||||||
|
should := require.New(t)
|
||||||
|
buf1 := &bytes.Buffer{}
|
||||||
|
encoder1 := json.NewEncoder(buf1)
|
||||||
|
encoder1.Encode([]int{1})
|
||||||
|
should.Equal("[1]\n", buf1.String())
|
||||||
|
buf2 := &bytes.Buffer{}
|
||||||
|
encoder2 := NewEncoder(buf2)
|
||||||
|
encoder2.Encode([]int{1})
|
||||||
|
should.Equal("[1]", buf2.String())
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user