Klebert-Engineering/simfil

ModelPool Serialization Support

Closed this issue · 0 comments

To support use-cases where simfilterable documents need to be persisted or transferred, it is required that a simfil ModelPool and its associated field name storage can be serialized.

As an implementation, we consider adding the following APIs:

  • simfil::ModelPool::serialize(std::ostream& output) -> void
  • simfil::ModelPool::deserialize(std::istream& input) -> void
  • simfil::Fields::serialize(size_t offset, std::ostream& output) -> void
  • simfil::Fields::deserialize(std::istream& output) -> void

None of these methods are static, so the deserialization functions always amend the content of an existing field-name/model-pool container.

To implement the given (de-)serialization functions, we consider using the bitsery library.