The shard / non-shard cases in CRA use different API. Ideally,
we would have a base class for the common API and have the
shard case inherit from the base class + either VertexBase or
ShardedVertexBase. However, C# does not support multiple
inheritence.
To get around this, we move the initialized methods into an
non-shard case that calls the original Ambrosia initialize
function. This way we can easily add the sharded case.
To make this cleaner and potentially easier to test, we move this
logic into a different file.
The shard / non-shard cases in CRA use different API. Ideally, we would have a base class for the common API and have the shard case inherit from the base class + either VertexBase or ShardedVertexBase. However, C# does not support multiple inheritence.
To get around this, we move the initialized methods into an non-shard case that calls the original Ambrosia initialize function. This way we can easily add the sharded case.
To make this cleaner and potentially easier to test, we move this logic into a different file.