ct2rs 0.8.2

Rust bindings for OpenNMT/CTranslate2
Documentation
#include "ctranslate2/encoder.h"

namespace ctranslate2 {

  std::future<EncoderForwardOutput>
  Encoder::forward_batch_async(std::vector<std::vector<std::string>> tokens,
                               std::vector<std::vector<size_t>> token_type_ids) {
    return post<EncoderForwardOutput>(
      [tokens = std::move(tokens), token_type_ids = std::move(token_type_ids)]
      (models::SequenceEncoderReplica& encoder) {
        return encoder.forward(tokens, token_type_ids);
      });
  }

  std::future<EncoderForwardOutput>
  Encoder::forward_batch_async(std::vector<std::vector<size_t>> ids,
                               std::vector<std::vector<size_t>> token_type_ids) {
    return post<EncoderForwardOutput>(
      [ids = std::move(ids), token_type_ids = std::move(token_type_ids)]
      (models::SequenceEncoderReplica& encoder) {
        return encoder.forward(ids, token_type_ids);
      });
  }

  std::future<EncoderForwardOutput>
  Encoder::forward_batch_async(const StorageView& ids,
                               const StorageView& lengths,
                               std::vector<std::vector<size_t>> token_type_ids) {
    return post<EncoderForwardOutput>(
      [ids = ids.sync_copy(),
       lengths = lengths.sync_copy(),
       token_type_ids = std::move(token_type_ids)]
      (models::SequenceEncoderReplica& encoder) {
        return encoder.forward(ids, lengths, token_type_ids);
      });
  }

}