| 10 | using BatchTokensOptional = std::optional<std::vector<std::optional<Tokens>>>; |
| 11 | |
| 12 | static BatchTokens finalize_optional_batch(const BatchTokensOptional& optional) { |
| 13 | // Convert missing values to empty vectors. |
| 14 | BatchTokens batch; |
| 15 | if (!optional) |
| 16 | return batch; |
| 17 | batch.reserve(optional->size()); |
| 18 | for (const auto& tokens : *optional) { |
| 19 | batch.emplace_back(tokens.value_or(Tokens())); |
| 20 | } |
| 21 | return batch; |
| 22 | } |
| 23 | |
| 24 | class TranslatorWrapper : public ReplicaPoolHelper<Translator> |
| 25 | { |