Object serialization: Difference between revisions
Content added Content deleted
(Added Wren) |
(implement in nim-lang) |
||
Line 1,450: | Line 1,450: | ||
00000050: 7269 616c 697a 6174 696f 6e02 0000 0000 rialization..... |
00000050: 7269 616c 697a 6174 696f 6e02 0000 0000 rialization..... |
||
00000060: 0000 0061 0000 0000 0000 0000 7a ...a........z</pre> |
00000060: 0000 0061 0000 0000 0000 0000 7a ...a........z</pre> |
||
=={{header|Nim}}== |
|||
<lang Nim>import marshal, streams |
|||
type |
|||
Base = object of RootObj |
|||
name: string |
|||
Descendant = object of Base |
|||
proc newBase(): Base = Base(name: "base") |
|||
proc newDescendant(): Descendant = Descendant(name: "descend") |
|||
proc print(obj: Base) = |
|||
echo(obj.name) |
|||
var |
|||
base = newBase() |
|||
descendant = newDescendant() |
|||
print(base) |
|||
print(descendant) |
|||
var strm = newFileStream("objects.dat", fmWrite) |
|||
store(strm, (base, descendant)) |
|||
strm.close() |
|||
var t: (Base, Descendant) |
|||
load(newFileStream("objects.dat", fmRead), t) |
|||
print(t[0]) |
|||
print(t[1]) |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
base |
|||
descend |
|||
base |
|||
descend |
|||
</pre> |
|||
=={{header|Objeck}}== |
=={{header|Objeck}}== |