from . import serializers
from nanome._internal import serializer_fields
macro_serializer = serializers.MacroSerializer()
string_serializer = serializer_fields.StringField()
[docs]class SaveMacro(serializer_fields.TypeSerializer):
_macro_serializer = macro_serializer
_string_serializer = string_serializer
[docs] def version(self):
return 0
[docs] def name(self):
return "SaveMacro"
[docs] def serialize(self, version, value, context):
context.write_using_serializer(self._macro_serializer, value[0])
context.write_bool(value[1])
context.write_using_serializer(self._string_serializer, value[2])
[docs] def deserialize(self, version, context):
raise NotImplementedError
[docs]class DeleteMacro(serializer_fields.TypeSerializer):
_macro_serializer = macro_serializer
_string_serializer = string_serializer
[docs] def version(self):
return 0
[docs] def name(self):
return "DeleteMacro"
[docs] def serialize(self, version, value, context):
context.write_using_serializer(self._macro_serializer, value[0])
context.write_bool(value[1])
context.write_using_serializer(self._string_serializer, value[2])
[docs] def deserialize(self, version, context):
raise NotImplementedError
[docs]class RunMacro(serializer_fields.TypeSerializer):
_macro_serializer = macro_serializer
_string_serializer = string_serializer
[docs] def version(self):
return 1
[docs] def name(self):
return "RunMacro"
[docs] def serialize(self, version, value, context):
context.write_using_serializer(self._macro_serializer, value)
[docs] def deserialize(self, version, context):
if version < 1:
return
return context.read_bool()
[docs]class GetMacros(serializer_fields.TypeSerializer):
_macro_serializer = macro_serializer
_string_serializer = string_serializer
[docs] def version(self):
return 0
[docs] def name(self):
return "GetMacros"
[docs] def serialize(self, version, value, context):
context.write_using_serializer(self._string_serializer, value)
[docs] def deserialize(self, version, context):
raise NotImplementedError
[docs]class GetMacrosResponse(serializer_fields.TypeSerializer):
_macro_serializer = macro_serializer
_string_serializer = string_serializer
def __init__(self):
self._array_serializer = serializer_fields.ArrayField()
self._array_serializer.set_type(self._macro_serializer)
[docs] def version(self):
return 0
[docs] def name(self):
return "GetMacrosResponse"
[docs] def serialize(self, version, value, context):
raise NotImplementedError
[docs] def deserialize(self, version, context):
return context.read_using_serializer(self._array_serializer)
[docs]class StopMacro(serializer_fields.TypeSerializer):
_macro_serializer = macro_serializer
_string_serializer = string_serializer
[docs] def version(self):
return 0
[docs] def name(self):
return "StopMacro"
[docs] def serialize(self, version, value, context):
context.write_using_serializer(self._string_serializer, value)
[docs] def deserialize(self, version, context):
raise NotImplementedError