#ifndef SUBMODULE__H
#define SUBMODULE__H

#include "Dict.hpp"
#include "Config.hpp"

class Submodule
{
  protected :

  std::size_t firstInputIndex{0};

  public :

  void setFirstInputIndex(std::size_t firstInputIndex);
  virtual std::size_t getOutputSize() = 0;
  virtual std::size_t getInputSize() = 0;
  virtual void addToContext(std::vector<std::vector<long>> & context, Dict & dict, const Config & config) const = 0;
};

#endif