Deserialization
The following program example demonstrates how contexts can be deserialized from a file upon program startup.
Set Up File
This code example requires built-in file loading functionality from the File IO namespace and built-in serialization functionality from the Serialization namespace. As such, the file housing all subsequent code is defined as using those namespaces through a meta declaration.
Deserialization Example:
using File IO,
using Serialization.
Constructs Provided through the Usings
File To Read
This is a context alias for a string, essentially enabling a string to be identified differently to initiate a different set of operations than it might have otherwise. There is a mapping defined to convert this string to Formatted Serialized Text.
File Text
This is a context representing the text read from or written to a file.
Formatted Serialized Text
This is a context wrapping a dictionary of strings mapped to their own Formatted Serialized Texts. This data structure provides an infinitely nestable format for serialized data.
Example Code
`Declare the relevant contexts.`
Serialized Contexts: context Formatted Serialized Text.
`Declare an operation to perform the deserialization.`
Deserialize Serialized Contexts: <contexts>,
foreach key in contexts,
where type is key to Type?
`Any type can be created through implicit casts
from Formatted Serialized Texts.`
await !: type [contexts(key)]; as Registration.
`The state of the application defined by the now-registered contexts will
continue the run of the application through behaviors.`
`Set up the program with a startup operation, and perform the deserialization.`
Main: when initialized?
await <"serialized.data" as File To Read, file text: File Text;>,
await <file text to Serialized Contexts>.
Last updated