| 1 | | | import 'marshaling_context.dart'; |
| 2 | | | |
| 3 | | | /// Base class to serialize/deserialize data of type [T] to a transferable type [S]. |
| 4 | | | abstract class SquadronMarshaler<T, S> { |
| 5 | | 12 | const SquadronMarshaler(); |
| 6 | | | |
| 7 | | | /// Serialize [data] of type [T] to type [S], eg. a `String` or some binary representation. |
| 8 | | | /// `unmarshal(marshal(data))` must produce an instance of [T] that is equivalent to |
| 9 | | | /// original instance [data]. |
| 10 | | | S marshal(T data, [MarshalingContext? context]); |
| 11 | | | |
| 12 | | | /// Deserialize a representation of type [S] back to the original data of type [T]. |
| 13 | | | /// `unmarshal(marshal(data))` must produce an instance of [T] that is equivalent to |
| 14 | | | /// original instance [data]. |
| 15 | | | T unmarshal(S data, [MarshalingContext? context]); |
| 16 | | | } |