abstract class Athena::Serializer::Context
inherits Reference
#
Stores runtime data about the current action.
Such as what serialization groups/version to use when serializing.
Warning
Cannot be used for more than one action.
Direct known subclasses
Athena::Serializer::DeserializationContext
Athena::Serializer::SerializationContext
Methods#
#add_exclusion_strategy(strategy : ASR::ExclusionStrategies::ExclusionStrategyInterface) : self
#
Adds strategy to self
.
exclusion_strategy
is set to strategy if there previously was no strategy.exclusion_strategy
is set toASR::ExclusionStrategies::Disjunct
if there was aexclusion_strategy
already set.- strategy is added to the
ASR::ExclusionStrategies::Disjunct
if there are multiple strategies.
abstract #direction : ASR::Context::Direction
#
Returns which (de)serialization action self
represents.
#exclusion_strategy : ASR::ExclusionStrategies::ExclusionStrategyInterface | ::Nil
#
The ASR::ExclusionStrategies::ExclusionStrategyInterface
being used.
#groups : Set(String) | ::Nil
#
Returns the serialization groups, if any, currently set on self
.
#groups=(groups : Enumerable(String)) : self
#
Sets the group(s) to compare against properties' ASRA::Groups
annotations.
Adds a ASR::ExclusionStrategies::Groups
automatically if set.
#version=(version : SemanticVersion | Nil)
#
Returns the version, if any, currently set on self
.
#version=(version : String) : self
#
Sets the version to compare against properties' ASRA::Since
and ASRA::Until
annotations.
Adds an ASR::ExclusionStrategies::Version
automatically if set.