Skip to content

Commit 04ecd09

Browse files
committed
Added new encoding mode - #unknownAsNil and #loose.
- If encodeMode is #unknownAsNil, unknown types(classes) will be encoded as nil values. - If encodeMode is #loose, #asMpConverted will be sent to the unknown class's instances. You can override the method to convert your instance as MessagePack-compatible value. For example, this mode allows encoding IdentityDictionary as MessagePack map.
1 parent c2a6883 commit 04ecd09

File tree

54 files changed

+317
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+317
-0
lines changed

.filetree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{ "packageExtension" : ".package" }
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*MessagePack-Core-unpacking
2+
fromMessagePack: bytes setting: settingBlock
3+
^ MpDecoder decode: bytes setting: settingBlock
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
*MessagePack-Core-converting
2+
asMpMap
3+
| dic |
4+
dic := Dictionary new: self size.
5+
self keysAndValuesDo: [:k :v | dic at: k put: v].
6+
^dic
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
decode customization
2+
bytesAsString
3+
| map |
4+
map := self actionMap.
5+
map at: MpConstants map16 put: #readString16.
6+
map at: MpConstants map32 put: #readString32.
7+
8+
self isBytesAsString: true
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
isBytesAsString: aBoolean
3+
4+
isBytesAsString := aBoolean == true
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
decode customization
2+
isBytesAsString
3+
isBytesAsString ifNil: [isBytesAsString := false].
4+
^ isBytesAsString
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
actions
2+
decode: byteArray setting: settingBlock
3+
^self new decode: byteArray setting: settingBlock
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
actions
2+
decodeFrom: aStream setting: settingBlock
3+
^self new decodeFrom: aStream setting: settingBlock
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
decoding
2+
decode: byteArray setting: settingBlock
3+
settingBlock value: self settings.
4+
^self decodeFrom: byteArray readStream
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
decoding
2+
decodeFrom: aStream setting: settingBlock
3+
settingBlock value: self settings.
4+
self readStream: aStream "binary".
5+
^self decode

0 commit comments

Comments
 (0)