// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: ortools/constraint_solver/assignment.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_ortools_2fconstraint_5fsolver_2fassignment_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_ortools_2fconstraint_5fsolver_2fassignment_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3012000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3012002 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata_lite.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_ortools_2fconstraint_5fsolver_2fassignment_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_ortools_2fconstraint_5fsolver_2fassignment_2eproto {
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[5]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto;
namespace operations_research {
class AssignmentProto;
class AssignmentProtoDefaultTypeInternal;
extern AssignmentProtoDefaultTypeInternal _AssignmentProto_default_instance_;
class IntVarAssignment;
class IntVarAssignmentDefaultTypeInternal;
extern IntVarAssignmentDefaultTypeInternal _IntVarAssignment_default_instance_;
class IntervalVarAssignment;
class IntervalVarAssignmentDefaultTypeInternal;
extern IntervalVarAssignmentDefaultTypeInternal _IntervalVarAssignment_default_instance_;
class SequenceVarAssignment;
class SequenceVarAssignmentDefaultTypeInternal;
extern SequenceVarAssignmentDefaultTypeInternal _SequenceVarAssignment_default_instance_;
class WorkerInfo;
class WorkerInfoDefaultTypeInternal;
extern WorkerInfoDefaultTypeInternal _WorkerInfo_default_instance_;
}  // namespace operations_research
PROTOBUF_NAMESPACE_OPEN
template<> ::operations_research::AssignmentProto* Arena::CreateMaybeMessage<::operations_research::AssignmentProto>(Arena*);
template<> ::operations_research::IntVarAssignment* Arena::CreateMaybeMessage<::operations_research::IntVarAssignment>(Arena*);
template<> ::operations_research::IntervalVarAssignment* Arena::CreateMaybeMessage<::operations_research::IntervalVarAssignment>(Arena*);
template<> ::operations_research::SequenceVarAssignment* Arena::CreateMaybeMessage<::operations_research::SequenceVarAssignment>(Arena*);
template<> ::operations_research::WorkerInfo* Arena::CreateMaybeMessage<::operations_research::WorkerInfo>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace operations_research {

// ===================================================================

class IntVarAssignment PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.IntVarAssignment) */ {
 public:
  inline IntVarAssignment() : IntVarAssignment(nullptr) {};
  virtual ~IntVarAssignment();

  IntVarAssignment(const IntVarAssignment& from);
  IntVarAssignment(IntVarAssignment&& from) noexcept
    : IntVarAssignment() {
    *this = ::std::move(from);
  }

  inline IntVarAssignment& operator=(const IntVarAssignment& from) {
    CopyFrom(from);
    return *this;
  }
  inline IntVarAssignment& operator=(IntVarAssignment&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const IntVarAssignment& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const IntVarAssignment* internal_default_instance() {
    return reinterpret_cast<const IntVarAssignment*>(
               &_IntVarAssignment_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(IntVarAssignment& a, IntVarAssignment& b) {
    a.Swap(&b);
  }
  inline void Swap(IntVarAssignment* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IntVarAssignment* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline IntVarAssignment* New() const final {
    return CreateMaybeMessage<IntVarAssignment>(nullptr);
  }

  IntVarAssignment* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<IntVarAssignment>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const IntVarAssignment& from);
  void MergeFrom(const IntVarAssignment& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(IntVarAssignment* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "operations_research.IntVarAssignment";
  }
  protected:
  explicit IntVarAssignment(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto);
    return ::descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kVarIdFieldNumber = 1,
    kMinFieldNumber = 2,
    kMaxFieldNumber = 3,
    kActiveFieldNumber = 4,
  };
  // string var_id = 1;
  void clear_var_id();
  const std::string& var_id() const;
  void set_var_id(const std::string& value);
  void set_var_id(std::string&& value);
  void set_var_id(const char* value);
  void set_var_id(const char* value, size_t size);
  std::string* mutable_var_id();
  std::string* release_var_id();
  void set_allocated_var_id(std::string* var_id);
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  std::string* unsafe_arena_release_var_id();
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_var_id(
      std::string* var_id);
  private:
  const std::string& _internal_var_id() const;
  void _internal_set_var_id(const std::string& value);
  std::string* _internal_mutable_var_id();
  public:

  // int64 min = 2;
  void clear_min();
  ::PROTOBUF_NAMESPACE_ID::int64 min() const;
  void set_min(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_min() const;
  void _internal_set_min(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int64 max = 3;
  void clear_max();
  ::PROTOBUF_NAMESPACE_ID::int64 max() const;
  void set_max(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_max() const;
  void _internal_set_max(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // bool active = 4;
  void clear_active();
  bool active() const;
  void set_active(bool value);
  private:
  bool _internal_active() const;
  void _internal_set_active(bool value);
  public:

  // @@protoc_insertion_point(class_scope:operations_research.IntVarAssignment)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr var_id_;
  ::PROTOBUF_NAMESPACE_ID::int64 min_;
  ::PROTOBUF_NAMESPACE_ID::int64 max_;
  bool active_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_ortools_2fconstraint_5fsolver_2fassignment_2eproto;
};
// -------------------------------------------------------------------

class IntervalVarAssignment PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.IntervalVarAssignment) */ {
 public:
  inline IntervalVarAssignment() : IntervalVarAssignment(nullptr) {};
  virtual ~IntervalVarAssignment();

  IntervalVarAssignment(const IntervalVarAssignment& from);
  IntervalVarAssignment(IntervalVarAssignment&& from) noexcept
    : IntervalVarAssignment() {
    *this = ::std::move(from);
  }

  inline IntervalVarAssignment& operator=(const IntervalVarAssignment& from) {
    CopyFrom(from);
    return *this;
  }
  inline IntervalVarAssignment& operator=(IntervalVarAssignment&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const IntervalVarAssignment& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const IntervalVarAssignment* internal_default_instance() {
    return reinterpret_cast<const IntervalVarAssignment*>(
               &_IntervalVarAssignment_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(IntervalVarAssignment& a, IntervalVarAssignment& b) {
    a.Swap(&b);
  }
  inline void Swap(IntervalVarAssignment* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IntervalVarAssignment* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline IntervalVarAssignment* New() const final {
    return CreateMaybeMessage<IntervalVarAssignment>(nullptr);
  }

  IntervalVarAssignment* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<IntervalVarAssignment>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const IntervalVarAssignment& from);
  void MergeFrom(const IntervalVarAssignment& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(IntervalVarAssignment* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "operations_research.IntervalVarAssignment";
  }
  protected:
  explicit IntervalVarAssignment(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto);
    return ::descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kVarIdFieldNumber = 1,
    kStartMinFieldNumber = 2,
    kStartMaxFieldNumber = 3,
    kDurationMinFieldNumber = 4,
    kDurationMaxFieldNumber = 5,
    kEndMinFieldNumber = 6,
    kEndMaxFieldNumber = 7,
    kPerformedMinFieldNumber = 8,
    kPerformedMaxFieldNumber = 9,
    kActiveFieldNumber = 10,
  };
  // string var_id = 1;
  void clear_var_id();
  const std::string& var_id() const;
  void set_var_id(const std::string& value);
  void set_var_id(std::string&& value);
  void set_var_id(const char* value);
  void set_var_id(const char* value, size_t size);
  std::string* mutable_var_id();
  std::string* release_var_id();
  void set_allocated_var_id(std::string* var_id);
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  std::string* unsafe_arena_release_var_id();
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_var_id(
      std::string* var_id);
  private:
  const std::string& _internal_var_id() const;
  void _internal_set_var_id(const std::string& value);
  std::string* _internal_mutable_var_id();
  public:

  // int64 start_min = 2;
  void clear_start_min();
  ::PROTOBUF_NAMESPACE_ID::int64 start_min() const;
  void set_start_min(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_start_min() const;
  void _internal_set_start_min(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int64 start_max = 3;
  void clear_start_max();
  ::PROTOBUF_NAMESPACE_ID::int64 start_max() const;
  void set_start_max(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_start_max() const;
  void _internal_set_start_max(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int64 duration_min = 4;
  void clear_duration_min();
  ::PROTOBUF_NAMESPACE_ID::int64 duration_min() const;
  void set_duration_min(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_duration_min() const;
  void _internal_set_duration_min(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int64 duration_max = 5;
  void clear_duration_max();
  ::PROTOBUF_NAMESPACE_ID::int64 duration_max() const;
  void set_duration_max(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_duration_max() const;
  void _internal_set_duration_max(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int64 end_min = 6;
  void clear_end_min();
  ::PROTOBUF_NAMESPACE_ID::int64 end_min() const;
  void set_end_min(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_end_min() const;
  void _internal_set_end_min(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int64 end_max = 7;
  void clear_end_max();
  ::PROTOBUF_NAMESPACE_ID::int64 end_max() const;
  void set_end_max(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_end_max() const;
  void _internal_set_end_max(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int64 performed_min = 8;
  void clear_performed_min();
  ::PROTOBUF_NAMESPACE_ID::int64 performed_min() const;
  void set_performed_min(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_performed_min() const;
  void _internal_set_performed_min(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int64 performed_max = 9;
  void clear_performed_max();
  ::PROTOBUF_NAMESPACE_ID::int64 performed_max() const;
  void set_performed_max(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_performed_max() const;
  void _internal_set_performed_max(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // bool active = 10;
  void clear_active();
  bool active() const;
  void set_active(bool value);
  private:
  bool _internal_active() const;
  void _internal_set_active(bool value);
  public:

  // @@protoc_insertion_point(class_scope:operations_research.IntervalVarAssignment)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr var_id_;
  ::PROTOBUF_NAMESPACE_ID::int64 start_min_;
  ::PROTOBUF_NAMESPACE_ID::int64 start_max_;
  ::PROTOBUF_NAMESPACE_ID::int64 duration_min_;
  ::PROTOBUF_NAMESPACE_ID::int64 duration_max_;
  ::PROTOBUF_NAMESPACE_ID::int64 end_min_;
  ::PROTOBUF_NAMESPACE_ID::int64 end_max_;
  ::PROTOBUF_NAMESPACE_ID::int64 performed_min_;
  ::PROTOBUF_NAMESPACE_ID::int64 performed_max_;
  bool active_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_ortools_2fconstraint_5fsolver_2fassignment_2eproto;
};
// -------------------------------------------------------------------

class SequenceVarAssignment PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.SequenceVarAssignment) */ {
 public:
  inline SequenceVarAssignment() : SequenceVarAssignment(nullptr) {};
  virtual ~SequenceVarAssignment();

  SequenceVarAssignment(const SequenceVarAssignment& from);
  SequenceVarAssignment(SequenceVarAssignment&& from) noexcept
    : SequenceVarAssignment() {
    *this = ::std::move(from);
  }

  inline SequenceVarAssignment& operator=(const SequenceVarAssignment& from) {
    CopyFrom(from);
    return *this;
  }
  inline SequenceVarAssignment& operator=(SequenceVarAssignment&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SequenceVarAssignment& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SequenceVarAssignment* internal_default_instance() {
    return reinterpret_cast<const SequenceVarAssignment*>(
               &_SequenceVarAssignment_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(SequenceVarAssignment& a, SequenceVarAssignment& b) {
    a.Swap(&b);
  }
  inline void Swap(SequenceVarAssignment* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SequenceVarAssignment* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SequenceVarAssignment* New() const final {
    return CreateMaybeMessage<SequenceVarAssignment>(nullptr);
  }

  SequenceVarAssignment* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SequenceVarAssignment>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SequenceVarAssignment& from);
  void MergeFrom(const SequenceVarAssignment& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SequenceVarAssignment* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "operations_research.SequenceVarAssignment";
  }
  protected:
  explicit SequenceVarAssignment(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto);
    return ::descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kForwardSequenceFieldNumber = 2,
    kBackwardSequenceFieldNumber = 3,
    kUnperformedFieldNumber = 4,
    kVarIdFieldNumber = 1,
    kActiveFieldNumber = 5,
  };
  // repeated int32 forward_sequence = 2;
  int forward_sequence_size() const;
  private:
  int _internal_forward_sequence_size() const;
  public:
  void clear_forward_sequence();
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_forward_sequence(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      _internal_forward_sequence() const;
  void _internal_add_forward_sequence(::PROTOBUF_NAMESPACE_ID::int32 value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      _internal_mutable_forward_sequence();
  public:
  ::PROTOBUF_NAMESPACE_ID::int32 forward_sequence(int index) const;
  void set_forward_sequence(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_forward_sequence(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      forward_sequence() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_forward_sequence();

  // repeated int32 backward_sequence = 3;
  int backward_sequence_size() const;
  private:
  int _internal_backward_sequence_size() const;
  public:
  void clear_backward_sequence();
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_backward_sequence(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      _internal_backward_sequence() const;
  void _internal_add_backward_sequence(::PROTOBUF_NAMESPACE_ID::int32 value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      _internal_mutable_backward_sequence();
  public:
  ::PROTOBUF_NAMESPACE_ID::int32 backward_sequence(int index) const;
  void set_backward_sequence(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_backward_sequence(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      backward_sequence() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_backward_sequence();

  // repeated int32 unperformed = 4;
  int unperformed_size() const;
  private:
  int _internal_unperformed_size() const;
  public:
  void clear_unperformed();
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_unperformed(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      _internal_unperformed() const;
  void _internal_add_unperformed(::PROTOBUF_NAMESPACE_ID::int32 value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      _internal_mutable_unperformed();
  public:
  ::PROTOBUF_NAMESPACE_ID::int32 unperformed(int index) const;
  void set_unperformed(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_unperformed(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      unperformed() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_unperformed();

  // string var_id = 1;
  void clear_var_id();
  const std::string& var_id() const;
  void set_var_id(const std::string& value);
  void set_var_id(std::string&& value);
  void set_var_id(const char* value);
  void set_var_id(const char* value, size_t size);
  std::string* mutable_var_id();
  std::string* release_var_id();
  void set_allocated_var_id(std::string* var_id);
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  std::string* unsafe_arena_release_var_id();
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_var_id(
      std::string* var_id);
  private:
  const std::string& _internal_var_id() const;
  void _internal_set_var_id(const std::string& value);
  std::string* _internal_mutable_var_id();
  public:

  // bool active = 5;
  void clear_active();
  bool active() const;
  void set_active(bool value);
  private:
  bool _internal_active() const;
  void _internal_set_active(bool value);
  public:

  // @@protoc_insertion_point(class_scope:operations_research.SequenceVarAssignment)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > forward_sequence_;
  mutable std::atomic<int> _forward_sequence_cached_byte_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > backward_sequence_;
  mutable std::atomic<int> _backward_sequence_cached_byte_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > unperformed_;
  mutable std::atomic<int> _unperformed_cached_byte_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr var_id_;
  bool active_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_ortools_2fconstraint_5fsolver_2fassignment_2eproto;
};
// -------------------------------------------------------------------

class WorkerInfo PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.WorkerInfo) */ {
 public:
  inline WorkerInfo() : WorkerInfo(nullptr) {};
  virtual ~WorkerInfo();

  WorkerInfo(const WorkerInfo& from);
  WorkerInfo(WorkerInfo&& from) noexcept
    : WorkerInfo() {
    *this = ::std::move(from);
  }

  inline WorkerInfo& operator=(const WorkerInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline WorkerInfo& operator=(WorkerInfo&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const WorkerInfo& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const WorkerInfo* internal_default_instance() {
    return reinterpret_cast<const WorkerInfo*>(
               &_WorkerInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(WorkerInfo& a, WorkerInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(WorkerInfo* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WorkerInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline WorkerInfo* New() const final {
    return CreateMaybeMessage<WorkerInfo>(nullptr);
  }

  WorkerInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<WorkerInfo>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const WorkerInfo& from);
  void MergeFrom(const WorkerInfo& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(WorkerInfo* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "operations_research.WorkerInfo";
  }
  protected:
  explicit WorkerInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto);
    return ::descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kBnsFieldNumber = 2,
    kWorkerIdFieldNumber = 1,
  };
  // string bns = 2;
  void clear_bns();
  const std::string& bns() const;
  void set_bns(const std::string& value);
  void set_bns(std::string&& value);
  void set_bns(const char* value);
  void set_bns(const char* value, size_t size);
  std::string* mutable_bns();
  std::string* release_bns();
  void set_allocated_bns(std::string* bns);
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  std::string* unsafe_arena_release_bns();
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_bns(
      std::string* bns);
  private:
  const std::string& _internal_bns() const;
  void _internal_set_bns(const std::string& value);
  std::string* _internal_mutable_bns();
  public:

  // int32 worker_id = 1;
  void clear_worker_id();
  ::PROTOBUF_NAMESPACE_ID::int32 worker_id() const;
  void set_worker_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_worker_id() const;
  void _internal_set_worker_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // @@protoc_insertion_point(class_scope:operations_research.WorkerInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr bns_;
  ::PROTOBUF_NAMESPACE_ID::int32 worker_id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_ortools_2fconstraint_5fsolver_2fassignment_2eproto;
};
// -------------------------------------------------------------------

class AssignmentProto PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.AssignmentProto) */ {
 public:
  inline AssignmentProto() : AssignmentProto(nullptr) {};
  virtual ~AssignmentProto();

  AssignmentProto(const AssignmentProto& from);
  AssignmentProto(AssignmentProto&& from) noexcept
    : AssignmentProto() {
    *this = ::std::move(from);
  }

  inline AssignmentProto& operator=(const AssignmentProto& from) {
    CopyFrom(from);
    return *this;
  }
  inline AssignmentProto& operator=(AssignmentProto&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const AssignmentProto& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AssignmentProto* internal_default_instance() {
    return reinterpret_cast<const AssignmentProto*>(
               &_AssignmentProto_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(AssignmentProto& a, AssignmentProto& b) {
    a.Swap(&b);
  }
  inline void Swap(AssignmentProto* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AssignmentProto* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline AssignmentProto* New() const final {
    return CreateMaybeMessage<AssignmentProto>(nullptr);
  }

  AssignmentProto* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<AssignmentProto>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const AssignmentProto& from);
  void MergeFrom(const AssignmentProto& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AssignmentProto* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "operations_research.AssignmentProto";
  }
  protected:
  explicit AssignmentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto);
    return ::descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kIntVarAssignmentFieldNumber = 1,
    kIntervalVarAssignmentFieldNumber = 2,
    kSequenceVarAssignmentFieldNumber = 6,
    kObjectiveFieldNumber = 3,
    kWorkerInfoFieldNumber = 4,
    kIsValidFieldNumber = 5,
  };
  // repeated .operations_research.IntVarAssignment int_var_assignment = 1;
  int int_var_assignment_size() const;
  private:
  int _internal_int_var_assignment_size() const;
  public:
  void clear_int_var_assignment();
  ::operations_research::IntVarAssignment* mutable_int_var_assignment(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::IntVarAssignment >*
      mutable_int_var_assignment();
  private:
  const ::operations_research::IntVarAssignment& _internal_int_var_assignment(int index) const;
  ::operations_research::IntVarAssignment* _internal_add_int_var_assignment();
  public:
  const ::operations_research::IntVarAssignment& int_var_assignment(int index) const;
  ::operations_research::IntVarAssignment* add_int_var_assignment();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::IntVarAssignment >&
      int_var_assignment() const;

  // repeated .operations_research.IntervalVarAssignment interval_var_assignment = 2;
  int interval_var_assignment_size() const;
  private:
  int _internal_interval_var_assignment_size() const;
  public:
  void clear_interval_var_assignment();
  ::operations_research::IntervalVarAssignment* mutable_interval_var_assignment(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::IntervalVarAssignment >*
      mutable_interval_var_assignment();
  private:
  const ::operations_research::IntervalVarAssignment& _internal_interval_var_assignment(int index) const;
  ::operations_research::IntervalVarAssignment* _internal_add_interval_var_assignment();
  public:
  const ::operations_research::IntervalVarAssignment& interval_var_assignment(int index) const;
  ::operations_research::IntervalVarAssignment* add_interval_var_assignment();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::IntervalVarAssignment >&
      interval_var_assignment() const;

  // repeated .operations_research.SequenceVarAssignment sequence_var_assignment = 6;
  int sequence_var_assignment_size() const;
  private:
  int _internal_sequence_var_assignment_size() const;
  public:
  void clear_sequence_var_assignment();
  ::operations_research::SequenceVarAssignment* mutable_sequence_var_assignment(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::SequenceVarAssignment >*
      mutable_sequence_var_assignment();
  private:
  const ::operations_research::SequenceVarAssignment& _internal_sequence_var_assignment(int index) const;
  ::operations_research::SequenceVarAssignment* _internal_add_sequence_var_assignment();
  public:
  const ::operations_research::SequenceVarAssignment& sequence_var_assignment(int index) const;
  ::operations_research::SequenceVarAssignment* add_sequence_var_assignment();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::SequenceVarAssignment >&
      sequence_var_assignment() const;

  // .operations_research.IntVarAssignment objective = 3;
  bool has_objective() const;
  private:
  bool _internal_has_objective() const;
  public:
  void clear_objective();
  const ::operations_research::IntVarAssignment& objective() const;
  ::operations_research::IntVarAssignment* release_objective();
  ::operations_research::IntVarAssignment* mutable_objective();
  void set_allocated_objective(::operations_research::IntVarAssignment* objective);
  private:
  const ::operations_research::IntVarAssignment& _internal_objective() const;
  ::operations_research::IntVarAssignment* _internal_mutable_objective();
  public:
  void unsafe_arena_set_allocated_objective(
      ::operations_research::IntVarAssignment* objective);
  ::operations_research::IntVarAssignment* unsafe_arena_release_objective();

  // .operations_research.WorkerInfo worker_info = 4;
  bool has_worker_info() const;
  private:
  bool _internal_has_worker_info() const;
  public:
  void clear_worker_info();
  const ::operations_research::WorkerInfo& worker_info() const;
  ::operations_research::WorkerInfo* release_worker_info();
  ::operations_research::WorkerInfo* mutable_worker_info();
  void set_allocated_worker_info(::operations_research::WorkerInfo* worker_info);
  private:
  const ::operations_research::WorkerInfo& _internal_worker_info() const;
  ::operations_research::WorkerInfo* _internal_mutable_worker_info();
  public:
  void unsafe_arena_set_allocated_worker_info(
      ::operations_research::WorkerInfo* worker_info);
  ::operations_research::WorkerInfo* unsafe_arena_release_worker_info();

  // bool is_valid = 5;
  void clear_is_valid();
  bool is_valid() const;
  void set_is_valid(bool value);
  private:
  bool _internal_is_valid() const;
  void _internal_set_is_valid(bool value);
  public:

  // @@protoc_insertion_point(class_scope:operations_research.AssignmentProto)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::IntVarAssignment > int_var_assignment_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::IntervalVarAssignment > interval_var_assignment_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::SequenceVarAssignment > sequence_var_assignment_;
  ::operations_research::IntVarAssignment* objective_;
  ::operations_research::WorkerInfo* worker_info_;
  bool is_valid_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_ortools_2fconstraint_5fsolver_2fassignment_2eproto;
};
// ===================================================================


// ===================================================================

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// IntVarAssignment

// string var_id = 1;
inline void IntVarAssignment::clear_var_id() {
  var_id_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& IntVarAssignment::var_id() const {
  // @@protoc_insertion_point(field_get:operations_research.IntVarAssignment.var_id)
  return _internal_var_id();
}
inline void IntVarAssignment::set_var_id(const std::string& value) {
  _internal_set_var_id(value);
  // @@protoc_insertion_point(field_set:operations_research.IntVarAssignment.var_id)
}
inline std::string* IntVarAssignment::mutable_var_id() {
  // @@protoc_insertion_point(field_mutable:operations_research.IntVarAssignment.var_id)
  return _internal_mutable_var_id();
}
inline const std::string& IntVarAssignment::_internal_var_id() const {
  return var_id_.Get();
}
inline void IntVarAssignment::_internal_set_var_id(const std::string& value) {
  
  var_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void IntVarAssignment::set_var_id(std::string&& value) {
  
  var_id_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:operations_research.IntVarAssignment.var_id)
}
inline void IntVarAssignment::set_var_id(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  var_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:operations_research.IntVarAssignment.var_id)
}
inline void IntVarAssignment::set_var_id(const char* value,
    size_t size) {
  
  var_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:operations_research.IntVarAssignment.var_id)
}
inline std::string* IntVarAssignment::_internal_mutable_var_id() {
  
  return var_id_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* IntVarAssignment::release_var_id() {
  // @@protoc_insertion_point(field_release:operations_research.IntVarAssignment.var_id)
  return var_id_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void IntVarAssignment::set_allocated_var_id(std::string* var_id) {
  if (var_id != nullptr) {
    
  } else {
    
  }
  var_id_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), var_id,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:operations_research.IntVarAssignment.var_id)
}
inline std::string* IntVarAssignment::unsafe_arena_release_var_id() {
  // @@protoc_insertion_point(field_unsafe_arena_release:operations_research.IntVarAssignment.var_id)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return var_id_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void IntVarAssignment::unsafe_arena_set_allocated_var_id(
    std::string* var_id) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (var_id != nullptr) {
    
  } else {
    
  }
  var_id_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      var_id, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.IntVarAssignment.var_id)
}

// int64 min = 2;
inline void IntVarAssignment::clear_min() {
  min_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntVarAssignment::_internal_min() const {
  return min_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntVarAssignment::min() const {
  // @@protoc_insertion_point(field_get:operations_research.IntVarAssignment.min)
  return _internal_min();
}
inline void IntVarAssignment::_internal_set_min(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  min_ = value;
}
inline void IntVarAssignment::set_min(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_min(value);
  // @@protoc_insertion_point(field_set:operations_research.IntVarAssignment.min)
}

// int64 max = 3;
inline void IntVarAssignment::clear_max() {
  max_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntVarAssignment::_internal_max() const {
  return max_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntVarAssignment::max() const {
  // @@protoc_insertion_point(field_get:operations_research.IntVarAssignment.max)
  return _internal_max();
}
inline void IntVarAssignment::_internal_set_max(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  max_ = value;
}
inline void IntVarAssignment::set_max(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_max(value);
  // @@protoc_insertion_point(field_set:operations_research.IntVarAssignment.max)
}

// bool active = 4;
inline void IntVarAssignment::clear_active() {
  active_ = false;
}
inline bool IntVarAssignment::_internal_active() const {
  return active_;
}
inline bool IntVarAssignment::active() const {
  // @@protoc_insertion_point(field_get:operations_research.IntVarAssignment.active)
  return _internal_active();
}
inline void IntVarAssignment::_internal_set_active(bool value) {
  
  active_ = value;
}
inline void IntVarAssignment::set_active(bool value) {
  _internal_set_active(value);
  // @@protoc_insertion_point(field_set:operations_research.IntVarAssignment.active)
}

// -------------------------------------------------------------------

// IntervalVarAssignment

// string var_id = 1;
inline void IntervalVarAssignment::clear_var_id() {
  var_id_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& IntervalVarAssignment::var_id() const {
  // @@protoc_insertion_point(field_get:operations_research.IntervalVarAssignment.var_id)
  return _internal_var_id();
}
inline void IntervalVarAssignment::set_var_id(const std::string& value) {
  _internal_set_var_id(value);
  // @@protoc_insertion_point(field_set:operations_research.IntervalVarAssignment.var_id)
}
inline std::string* IntervalVarAssignment::mutable_var_id() {
  // @@protoc_insertion_point(field_mutable:operations_research.IntervalVarAssignment.var_id)
  return _internal_mutable_var_id();
}
inline const std::string& IntervalVarAssignment::_internal_var_id() const {
  return var_id_.Get();
}
inline void IntervalVarAssignment::_internal_set_var_id(const std::string& value) {
  
  var_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void IntervalVarAssignment::set_var_id(std::string&& value) {
  
  var_id_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:operations_research.IntervalVarAssignment.var_id)
}
inline void IntervalVarAssignment::set_var_id(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  var_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:operations_research.IntervalVarAssignment.var_id)
}
inline void IntervalVarAssignment::set_var_id(const char* value,
    size_t size) {
  
  var_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:operations_research.IntervalVarAssignment.var_id)
}
inline std::string* IntervalVarAssignment::_internal_mutable_var_id() {
  
  return var_id_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* IntervalVarAssignment::release_var_id() {
  // @@protoc_insertion_point(field_release:operations_research.IntervalVarAssignment.var_id)
  return var_id_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void IntervalVarAssignment::set_allocated_var_id(std::string* var_id) {
  if (var_id != nullptr) {
    
  } else {
    
  }
  var_id_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), var_id,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:operations_research.IntervalVarAssignment.var_id)
}
inline std::string* IntervalVarAssignment::unsafe_arena_release_var_id() {
  // @@protoc_insertion_point(field_unsafe_arena_release:operations_research.IntervalVarAssignment.var_id)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return var_id_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void IntervalVarAssignment::unsafe_arena_set_allocated_var_id(
    std::string* var_id) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (var_id != nullptr) {
    
  } else {
    
  }
  var_id_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      var_id, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.IntervalVarAssignment.var_id)
}

// int64 start_min = 2;
inline void IntervalVarAssignment::clear_start_min() {
  start_min_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::_internal_start_min() const {
  return start_min_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::start_min() const {
  // @@protoc_insertion_point(field_get:operations_research.IntervalVarAssignment.start_min)
  return _internal_start_min();
}
inline void IntervalVarAssignment::_internal_set_start_min(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  start_min_ = value;
}
inline void IntervalVarAssignment::set_start_min(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_start_min(value);
  // @@protoc_insertion_point(field_set:operations_research.IntervalVarAssignment.start_min)
}

// int64 start_max = 3;
inline void IntervalVarAssignment::clear_start_max() {
  start_max_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::_internal_start_max() const {
  return start_max_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::start_max() const {
  // @@protoc_insertion_point(field_get:operations_research.IntervalVarAssignment.start_max)
  return _internal_start_max();
}
inline void IntervalVarAssignment::_internal_set_start_max(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  start_max_ = value;
}
inline void IntervalVarAssignment::set_start_max(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_start_max(value);
  // @@protoc_insertion_point(field_set:operations_research.IntervalVarAssignment.start_max)
}

// int64 duration_min = 4;
inline void IntervalVarAssignment::clear_duration_min() {
  duration_min_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::_internal_duration_min() const {
  return duration_min_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::duration_min() const {
  // @@protoc_insertion_point(field_get:operations_research.IntervalVarAssignment.duration_min)
  return _internal_duration_min();
}
inline void IntervalVarAssignment::_internal_set_duration_min(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  duration_min_ = value;
}
inline void IntervalVarAssignment::set_duration_min(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_duration_min(value);
  // @@protoc_insertion_point(field_set:operations_research.IntervalVarAssignment.duration_min)
}

// int64 duration_max = 5;
inline void IntervalVarAssignment::clear_duration_max() {
  duration_max_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::_internal_duration_max() const {
  return duration_max_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::duration_max() const {
  // @@protoc_insertion_point(field_get:operations_research.IntervalVarAssignment.duration_max)
  return _internal_duration_max();
}
inline void IntervalVarAssignment::_internal_set_duration_max(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  duration_max_ = value;
}
inline void IntervalVarAssignment::set_duration_max(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_duration_max(value);
  // @@protoc_insertion_point(field_set:operations_research.IntervalVarAssignment.duration_max)
}

// int64 end_min = 6;
inline void IntervalVarAssignment::clear_end_min() {
  end_min_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::_internal_end_min() const {
  return end_min_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::end_min() const {
  // @@protoc_insertion_point(field_get:operations_research.IntervalVarAssignment.end_min)
  return _internal_end_min();
}
inline void IntervalVarAssignment::_internal_set_end_min(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  end_min_ = value;
}
inline void IntervalVarAssignment::set_end_min(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_end_min(value);
  // @@protoc_insertion_point(field_set:operations_research.IntervalVarAssignment.end_min)
}

// int64 end_max = 7;
inline void IntervalVarAssignment::clear_end_max() {
  end_max_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::_internal_end_max() const {
  return end_max_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::end_max() const {
  // @@protoc_insertion_point(field_get:operations_research.IntervalVarAssignment.end_max)
  return _internal_end_max();
}
inline void IntervalVarAssignment::_internal_set_end_max(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  end_max_ = value;
}
inline void IntervalVarAssignment::set_end_max(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_end_max(value);
  // @@protoc_insertion_point(field_set:operations_research.IntervalVarAssignment.end_max)
}

// int64 performed_min = 8;
inline void IntervalVarAssignment::clear_performed_min() {
  performed_min_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::_internal_performed_min() const {
  return performed_min_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::performed_min() const {
  // @@protoc_insertion_point(field_get:operations_research.IntervalVarAssignment.performed_min)
  return _internal_performed_min();
}
inline void IntervalVarAssignment::_internal_set_performed_min(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  performed_min_ = value;
}
inline void IntervalVarAssignment::set_performed_min(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_performed_min(value);
  // @@protoc_insertion_point(field_set:operations_research.IntervalVarAssignment.performed_min)
}

// int64 performed_max = 9;
inline void IntervalVarAssignment::clear_performed_max() {
  performed_max_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::_internal_performed_max() const {
  return performed_max_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IntervalVarAssignment::performed_max() const {
  // @@protoc_insertion_point(field_get:operations_research.IntervalVarAssignment.performed_max)
  return _internal_performed_max();
}
inline void IntervalVarAssignment::_internal_set_performed_max(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  performed_max_ = value;
}
inline void IntervalVarAssignment::set_performed_max(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_performed_max(value);
  // @@protoc_insertion_point(field_set:operations_research.IntervalVarAssignment.performed_max)
}

// bool active = 10;
inline void IntervalVarAssignment::clear_active() {
  active_ = false;
}
inline bool IntervalVarAssignment::_internal_active() const {
  return active_;
}
inline bool IntervalVarAssignment::active() const {
  // @@protoc_insertion_point(field_get:operations_research.IntervalVarAssignment.active)
  return _internal_active();
}
inline void IntervalVarAssignment::_internal_set_active(bool value) {
  
  active_ = value;
}
inline void IntervalVarAssignment::set_active(bool value) {
  _internal_set_active(value);
  // @@protoc_insertion_point(field_set:operations_research.IntervalVarAssignment.active)
}

// -------------------------------------------------------------------

// SequenceVarAssignment

// string var_id = 1;
inline void SequenceVarAssignment::clear_var_id() {
  var_id_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& SequenceVarAssignment::var_id() const {
  // @@protoc_insertion_point(field_get:operations_research.SequenceVarAssignment.var_id)
  return _internal_var_id();
}
inline void SequenceVarAssignment::set_var_id(const std::string& value) {
  _internal_set_var_id(value);
  // @@protoc_insertion_point(field_set:operations_research.SequenceVarAssignment.var_id)
}
inline std::string* SequenceVarAssignment::mutable_var_id() {
  // @@protoc_insertion_point(field_mutable:operations_research.SequenceVarAssignment.var_id)
  return _internal_mutable_var_id();
}
inline const std::string& SequenceVarAssignment::_internal_var_id() const {
  return var_id_.Get();
}
inline void SequenceVarAssignment::_internal_set_var_id(const std::string& value) {
  
  var_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void SequenceVarAssignment::set_var_id(std::string&& value) {
  
  var_id_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:operations_research.SequenceVarAssignment.var_id)
}
inline void SequenceVarAssignment::set_var_id(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  var_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:operations_research.SequenceVarAssignment.var_id)
}
inline void SequenceVarAssignment::set_var_id(const char* value,
    size_t size) {
  
  var_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:operations_research.SequenceVarAssignment.var_id)
}
inline std::string* SequenceVarAssignment::_internal_mutable_var_id() {
  
  return var_id_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* SequenceVarAssignment::release_var_id() {
  // @@protoc_insertion_point(field_release:operations_research.SequenceVarAssignment.var_id)
  return var_id_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void SequenceVarAssignment::set_allocated_var_id(std::string* var_id) {
  if (var_id != nullptr) {
    
  } else {
    
  }
  var_id_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), var_id,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:operations_research.SequenceVarAssignment.var_id)
}
inline std::string* SequenceVarAssignment::unsafe_arena_release_var_id() {
  // @@protoc_insertion_point(field_unsafe_arena_release:operations_research.SequenceVarAssignment.var_id)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return var_id_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void SequenceVarAssignment::unsafe_arena_set_allocated_var_id(
    std::string* var_id) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (var_id != nullptr) {
    
  } else {
    
  }
  var_id_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      var_id, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.SequenceVarAssignment.var_id)
}

// repeated int32 forward_sequence = 2;
inline int SequenceVarAssignment::_internal_forward_sequence_size() const {
  return forward_sequence_.size();
}
inline int SequenceVarAssignment::forward_sequence_size() const {
  return _internal_forward_sequence_size();
}
inline void SequenceVarAssignment::clear_forward_sequence() {
  forward_sequence_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SequenceVarAssignment::_internal_forward_sequence(int index) const {
  return forward_sequence_.Get(index);
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SequenceVarAssignment::forward_sequence(int index) const {
  // @@protoc_insertion_point(field_get:operations_research.SequenceVarAssignment.forward_sequence)
  return _internal_forward_sequence(index);
}
inline void SequenceVarAssignment::set_forward_sequence(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  forward_sequence_.Set(index, value);
  // @@protoc_insertion_point(field_set:operations_research.SequenceVarAssignment.forward_sequence)
}
inline void SequenceVarAssignment::_internal_add_forward_sequence(::PROTOBUF_NAMESPACE_ID::int32 value) {
  forward_sequence_.Add(value);
}
inline void SequenceVarAssignment::add_forward_sequence(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_add_forward_sequence(value);
  // @@protoc_insertion_point(field_add:operations_research.SequenceVarAssignment.forward_sequence)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
SequenceVarAssignment::_internal_forward_sequence() const {
  return forward_sequence_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
SequenceVarAssignment::forward_sequence() const {
  // @@protoc_insertion_point(field_list:operations_research.SequenceVarAssignment.forward_sequence)
  return _internal_forward_sequence();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
SequenceVarAssignment::_internal_mutable_forward_sequence() {
  return &forward_sequence_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
SequenceVarAssignment::mutable_forward_sequence() {
  // @@protoc_insertion_point(field_mutable_list:operations_research.SequenceVarAssignment.forward_sequence)
  return _internal_mutable_forward_sequence();
}

// repeated int32 backward_sequence = 3;
inline int SequenceVarAssignment::_internal_backward_sequence_size() const {
  return backward_sequence_.size();
}
inline int SequenceVarAssignment::backward_sequence_size() const {
  return _internal_backward_sequence_size();
}
inline void SequenceVarAssignment::clear_backward_sequence() {
  backward_sequence_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SequenceVarAssignment::_internal_backward_sequence(int index) const {
  return backward_sequence_.Get(index);
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SequenceVarAssignment::backward_sequence(int index) const {
  // @@protoc_insertion_point(field_get:operations_research.SequenceVarAssignment.backward_sequence)
  return _internal_backward_sequence(index);
}
inline void SequenceVarAssignment::set_backward_sequence(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  backward_sequence_.Set(index, value);
  // @@protoc_insertion_point(field_set:operations_research.SequenceVarAssignment.backward_sequence)
}
inline void SequenceVarAssignment::_internal_add_backward_sequence(::PROTOBUF_NAMESPACE_ID::int32 value) {
  backward_sequence_.Add(value);
}
inline void SequenceVarAssignment::add_backward_sequence(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_add_backward_sequence(value);
  // @@protoc_insertion_point(field_add:operations_research.SequenceVarAssignment.backward_sequence)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
SequenceVarAssignment::_internal_backward_sequence() const {
  return backward_sequence_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
SequenceVarAssignment::backward_sequence() const {
  // @@protoc_insertion_point(field_list:operations_research.SequenceVarAssignment.backward_sequence)
  return _internal_backward_sequence();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
SequenceVarAssignment::_internal_mutable_backward_sequence() {
  return &backward_sequence_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
SequenceVarAssignment::mutable_backward_sequence() {
  // @@protoc_insertion_point(field_mutable_list:operations_research.SequenceVarAssignment.backward_sequence)
  return _internal_mutable_backward_sequence();
}

// repeated int32 unperformed = 4;
inline int SequenceVarAssignment::_internal_unperformed_size() const {
  return unperformed_.size();
}
inline int SequenceVarAssignment::unperformed_size() const {
  return _internal_unperformed_size();
}
inline void SequenceVarAssignment::clear_unperformed() {
  unperformed_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SequenceVarAssignment::_internal_unperformed(int index) const {
  return unperformed_.Get(index);
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SequenceVarAssignment::unperformed(int index) const {
  // @@protoc_insertion_point(field_get:operations_research.SequenceVarAssignment.unperformed)
  return _internal_unperformed(index);
}
inline void SequenceVarAssignment::set_unperformed(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  unperformed_.Set(index, value);
  // @@protoc_insertion_point(field_set:operations_research.SequenceVarAssignment.unperformed)
}
inline void SequenceVarAssignment::_internal_add_unperformed(::PROTOBUF_NAMESPACE_ID::int32 value) {
  unperformed_.Add(value);
}
inline void SequenceVarAssignment::add_unperformed(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_add_unperformed(value);
  // @@protoc_insertion_point(field_add:operations_research.SequenceVarAssignment.unperformed)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
SequenceVarAssignment::_internal_unperformed() const {
  return unperformed_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
SequenceVarAssignment::unperformed() const {
  // @@protoc_insertion_point(field_list:operations_research.SequenceVarAssignment.unperformed)
  return _internal_unperformed();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
SequenceVarAssignment::_internal_mutable_unperformed() {
  return &unperformed_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
SequenceVarAssignment::mutable_unperformed() {
  // @@protoc_insertion_point(field_mutable_list:operations_research.SequenceVarAssignment.unperformed)
  return _internal_mutable_unperformed();
}

// bool active = 5;
inline void SequenceVarAssignment::clear_active() {
  active_ = false;
}
inline bool SequenceVarAssignment::_internal_active() const {
  return active_;
}
inline bool SequenceVarAssignment::active() const {
  // @@protoc_insertion_point(field_get:operations_research.SequenceVarAssignment.active)
  return _internal_active();
}
inline void SequenceVarAssignment::_internal_set_active(bool value) {
  
  active_ = value;
}
inline void SequenceVarAssignment::set_active(bool value) {
  _internal_set_active(value);
  // @@protoc_insertion_point(field_set:operations_research.SequenceVarAssignment.active)
}

// -------------------------------------------------------------------

// WorkerInfo

// int32 worker_id = 1;
inline void WorkerInfo::clear_worker_id() {
  worker_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 WorkerInfo::_internal_worker_id() const {
  return worker_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 WorkerInfo::worker_id() const {
  // @@protoc_insertion_point(field_get:operations_research.WorkerInfo.worker_id)
  return _internal_worker_id();
}
inline void WorkerInfo::_internal_set_worker_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  worker_id_ = value;
}
inline void WorkerInfo::set_worker_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_worker_id(value);
  // @@protoc_insertion_point(field_set:operations_research.WorkerInfo.worker_id)
}

// string bns = 2;
inline void WorkerInfo::clear_bns() {
  bns_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& WorkerInfo::bns() const {
  // @@protoc_insertion_point(field_get:operations_research.WorkerInfo.bns)
  return _internal_bns();
}
inline void WorkerInfo::set_bns(const std::string& value) {
  _internal_set_bns(value);
  // @@protoc_insertion_point(field_set:operations_research.WorkerInfo.bns)
}
inline std::string* WorkerInfo::mutable_bns() {
  // @@protoc_insertion_point(field_mutable:operations_research.WorkerInfo.bns)
  return _internal_mutable_bns();
}
inline const std::string& WorkerInfo::_internal_bns() const {
  return bns_.Get();
}
inline void WorkerInfo::_internal_set_bns(const std::string& value) {
  
  bns_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void WorkerInfo::set_bns(std::string&& value) {
  
  bns_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:operations_research.WorkerInfo.bns)
}
inline void WorkerInfo::set_bns(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  bns_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:operations_research.WorkerInfo.bns)
}
inline void WorkerInfo::set_bns(const char* value,
    size_t size) {
  
  bns_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:operations_research.WorkerInfo.bns)
}
inline std::string* WorkerInfo::_internal_mutable_bns() {
  
  return bns_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* WorkerInfo::release_bns() {
  // @@protoc_insertion_point(field_release:operations_research.WorkerInfo.bns)
  return bns_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void WorkerInfo::set_allocated_bns(std::string* bns) {
  if (bns != nullptr) {
    
  } else {
    
  }
  bns_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), bns,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:operations_research.WorkerInfo.bns)
}
inline std::string* WorkerInfo::unsafe_arena_release_bns() {
  // @@protoc_insertion_point(field_unsafe_arena_release:operations_research.WorkerInfo.bns)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return bns_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void WorkerInfo::unsafe_arena_set_allocated_bns(
    std::string* bns) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (bns != nullptr) {
    
  } else {
    
  }
  bns_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      bns, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.WorkerInfo.bns)
}

// -------------------------------------------------------------------

// AssignmentProto

// repeated .operations_research.IntVarAssignment int_var_assignment = 1;
inline int AssignmentProto::_internal_int_var_assignment_size() const {
  return int_var_assignment_.size();
}
inline int AssignmentProto::int_var_assignment_size() const {
  return _internal_int_var_assignment_size();
}
inline void AssignmentProto::clear_int_var_assignment() {
  int_var_assignment_.Clear();
}
inline ::operations_research::IntVarAssignment* AssignmentProto::mutable_int_var_assignment(int index) {
  // @@protoc_insertion_point(field_mutable:operations_research.AssignmentProto.int_var_assignment)
  return int_var_assignment_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::IntVarAssignment >*
AssignmentProto::mutable_int_var_assignment() {
  // @@protoc_insertion_point(field_mutable_list:operations_research.AssignmentProto.int_var_assignment)
  return &int_var_assignment_;
}
inline const ::operations_research::IntVarAssignment& AssignmentProto::_internal_int_var_assignment(int index) const {
  return int_var_assignment_.Get(index);
}
inline const ::operations_research::IntVarAssignment& AssignmentProto::int_var_assignment(int index) const {
  // @@protoc_insertion_point(field_get:operations_research.AssignmentProto.int_var_assignment)
  return _internal_int_var_assignment(index);
}
inline ::operations_research::IntVarAssignment* AssignmentProto::_internal_add_int_var_assignment() {
  return int_var_assignment_.Add();
}
inline ::operations_research::IntVarAssignment* AssignmentProto::add_int_var_assignment() {
  // @@protoc_insertion_point(field_add:operations_research.AssignmentProto.int_var_assignment)
  return _internal_add_int_var_assignment();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::IntVarAssignment >&
AssignmentProto::int_var_assignment() const {
  // @@protoc_insertion_point(field_list:operations_research.AssignmentProto.int_var_assignment)
  return int_var_assignment_;
}

// repeated .operations_research.IntervalVarAssignment interval_var_assignment = 2;
inline int AssignmentProto::_internal_interval_var_assignment_size() const {
  return interval_var_assignment_.size();
}
inline int AssignmentProto::interval_var_assignment_size() const {
  return _internal_interval_var_assignment_size();
}
inline void AssignmentProto::clear_interval_var_assignment() {
  interval_var_assignment_.Clear();
}
inline ::operations_research::IntervalVarAssignment* AssignmentProto::mutable_interval_var_assignment(int index) {
  // @@protoc_insertion_point(field_mutable:operations_research.AssignmentProto.interval_var_assignment)
  return interval_var_assignment_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::IntervalVarAssignment >*
AssignmentProto::mutable_interval_var_assignment() {
  // @@protoc_insertion_point(field_mutable_list:operations_research.AssignmentProto.interval_var_assignment)
  return &interval_var_assignment_;
}
inline const ::operations_research::IntervalVarAssignment& AssignmentProto::_internal_interval_var_assignment(int index) const {
  return interval_var_assignment_.Get(index);
}
inline const ::operations_research::IntervalVarAssignment& AssignmentProto::interval_var_assignment(int index) const {
  // @@protoc_insertion_point(field_get:operations_research.AssignmentProto.interval_var_assignment)
  return _internal_interval_var_assignment(index);
}
inline ::operations_research::IntervalVarAssignment* AssignmentProto::_internal_add_interval_var_assignment() {
  return interval_var_assignment_.Add();
}
inline ::operations_research::IntervalVarAssignment* AssignmentProto::add_interval_var_assignment() {
  // @@protoc_insertion_point(field_add:operations_research.AssignmentProto.interval_var_assignment)
  return _internal_add_interval_var_assignment();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::IntervalVarAssignment >&
AssignmentProto::interval_var_assignment() const {
  // @@protoc_insertion_point(field_list:operations_research.AssignmentProto.interval_var_assignment)
  return interval_var_assignment_;
}

// repeated .operations_research.SequenceVarAssignment sequence_var_assignment = 6;
inline int AssignmentProto::_internal_sequence_var_assignment_size() const {
  return sequence_var_assignment_.size();
}
inline int AssignmentProto::sequence_var_assignment_size() const {
  return _internal_sequence_var_assignment_size();
}
inline void AssignmentProto::clear_sequence_var_assignment() {
  sequence_var_assignment_.Clear();
}
inline ::operations_research::SequenceVarAssignment* AssignmentProto::mutable_sequence_var_assignment(int index) {
  // @@protoc_insertion_point(field_mutable:operations_research.AssignmentProto.sequence_var_assignment)
  return sequence_var_assignment_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::SequenceVarAssignment >*
AssignmentProto::mutable_sequence_var_assignment() {
  // @@protoc_insertion_point(field_mutable_list:operations_research.AssignmentProto.sequence_var_assignment)
  return &sequence_var_assignment_;
}
inline const ::operations_research::SequenceVarAssignment& AssignmentProto::_internal_sequence_var_assignment(int index) const {
  return sequence_var_assignment_.Get(index);
}
inline const ::operations_research::SequenceVarAssignment& AssignmentProto::sequence_var_assignment(int index) const {
  // @@protoc_insertion_point(field_get:operations_research.AssignmentProto.sequence_var_assignment)
  return _internal_sequence_var_assignment(index);
}
inline ::operations_research::SequenceVarAssignment* AssignmentProto::_internal_add_sequence_var_assignment() {
  return sequence_var_assignment_.Add();
}
inline ::operations_research::SequenceVarAssignment* AssignmentProto::add_sequence_var_assignment() {
  // @@protoc_insertion_point(field_add:operations_research.AssignmentProto.sequence_var_assignment)
  return _internal_add_sequence_var_assignment();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::SequenceVarAssignment >&
AssignmentProto::sequence_var_assignment() const {
  // @@protoc_insertion_point(field_list:operations_research.AssignmentProto.sequence_var_assignment)
  return sequence_var_assignment_;
}

// .operations_research.IntVarAssignment objective = 3;
inline bool AssignmentProto::_internal_has_objective() const {
  return this != internal_default_instance() && objective_ != nullptr;
}
inline bool AssignmentProto::has_objective() const {
  return _internal_has_objective();
}
inline void AssignmentProto::clear_objective() {
  if (GetArena() == nullptr && objective_ != nullptr) {
    delete objective_;
  }
  objective_ = nullptr;
}
inline const ::operations_research::IntVarAssignment& AssignmentProto::_internal_objective() const {
  const ::operations_research::IntVarAssignment* p = objective_;
  return p != nullptr ? *p : *reinterpret_cast<const ::operations_research::IntVarAssignment*>(
      &::operations_research::_IntVarAssignment_default_instance_);
}
inline const ::operations_research::IntVarAssignment& AssignmentProto::objective() const {
  // @@protoc_insertion_point(field_get:operations_research.AssignmentProto.objective)
  return _internal_objective();
}
inline void AssignmentProto::unsafe_arena_set_allocated_objective(
    ::operations_research::IntVarAssignment* objective) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(objective_);
  }
  objective_ = objective;
  if (objective) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.AssignmentProto.objective)
}
inline ::operations_research::IntVarAssignment* AssignmentProto::release_objective() {
  auto temp = unsafe_arena_release_objective();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::operations_research::IntVarAssignment* AssignmentProto::unsafe_arena_release_objective() {
  // @@protoc_insertion_point(field_release:operations_research.AssignmentProto.objective)
  
  ::operations_research::IntVarAssignment* temp = objective_;
  objective_ = nullptr;
  return temp;
}
inline ::operations_research::IntVarAssignment* AssignmentProto::_internal_mutable_objective() {
  
  if (objective_ == nullptr) {
    auto* p = CreateMaybeMessage<::operations_research::IntVarAssignment>(GetArena());
    objective_ = p;
  }
  return objective_;
}
inline ::operations_research::IntVarAssignment* AssignmentProto::mutable_objective() {
  // @@protoc_insertion_point(field_mutable:operations_research.AssignmentProto.objective)
  return _internal_mutable_objective();
}
inline void AssignmentProto::set_allocated_objective(::operations_research::IntVarAssignment* objective) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete objective_;
  }
  if (objective) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(objective);
    if (message_arena != submessage_arena) {
      objective = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, objective, submessage_arena);
    }
    
  } else {
    
  }
  objective_ = objective;
  // @@protoc_insertion_point(field_set_allocated:operations_research.AssignmentProto.objective)
}

// .operations_research.WorkerInfo worker_info = 4;
inline bool AssignmentProto::_internal_has_worker_info() const {
  return this != internal_default_instance() && worker_info_ != nullptr;
}
inline bool AssignmentProto::has_worker_info() const {
  return _internal_has_worker_info();
}
inline void AssignmentProto::clear_worker_info() {
  if (GetArena() == nullptr && worker_info_ != nullptr) {
    delete worker_info_;
  }
  worker_info_ = nullptr;
}
inline const ::operations_research::WorkerInfo& AssignmentProto::_internal_worker_info() const {
  const ::operations_research::WorkerInfo* p = worker_info_;
  return p != nullptr ? *p : *reinterpret_cast<const ::operations_research::WorkerInfo*>(
      &::operations_research::_WorkerInfo_default_instance_);
}
inline const ::operations_research::WorkerInfo& AssignmentProto::worker_info() const {
  // @@protoc_insertion_point(field_get:operations_research.AssignmentProto.worker_info)
  return _internal_worker_info();
}
inline void AssignmentProto::unsafe_arena_set_allocated_worker_info(
    ::operations_research::WorkerInfo* worker_info) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(worker_info_);
  }
  worker_info_ = worker_info;
  if (worker_info) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:operations_research.AssignmentProto.worker_info)
}
inline ::operations_research::WorkerInfo* AssignmentProto::release_worker_info() {
  auto temp = unsafe_arena_release_worker_info();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::operations_research::WorkerInfo* AssignmentProto::unsafe_arena_release_worker_info() {
  // @@protoc_insertion_point(field_release:operations_research.AssignmentProto.worker_info)
  
  ::operations_research::WorkerInfo* temp = worker_info_;
  worker_info_ = nullptr;
  return temp;
}
inline ::operations_research::WorkerInfo* AssignmentProto::_internal_mutable_worker_info() {
  
  if (worker_info_ == nullptr) {
    auto* p = CreateMaybeMessage<::operations_research::WorkerInfo>(GetArena());
    worker_info_ = p;
  }
  return worker_info_;
}
inline ::operations_research::WorkerInfo* AssignmentProto::mutable_worker_info() {
  // @@protoc_insertion_point(field_mutable:operations_research.AssignmentProto.worker_info)
  return _internal_mutable_worker_info();
}
inline void AssignmentProto::set_allocated_worker_info(::operations_research::WorkerInfo* worker_info) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete worker_info_;
  }
  if (worker_info) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(worker_info);
    if (message_arena != submessage_arena) {
      worker_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, worker_info, submessage_arena);
    }
    
  } else {
    
  }
  worker_info_ = worker_info;
  // @@protoc_insertion_point(field_set_allocated:operations_research.AssignmentProto.worker_info)
}

// bool is_valid = 5;
inline void AssignmentProto::clear_is_valid() {
  is_valid_ = false;
}
inline bool AssignmentProto::_internal_is_valid() const {
  return is_valid_;
}
inline bool AssignmentProto::is_valid() const {
  // @@protoc_insertion_point(field_get:operations_research.AssignmentProto.is_valid)
  return _internal_is_valid();
}
inline void AssignmentProto::_internal_set_is_valid(bool value) {
  
  is_valid_ = value;
}
inline void AssignmentProto::set_is_valid(bool value) {
  _internal_set_is_valid(value);
  // @@protoc_insertion_point(field_set:operations_research.AssignmentProto.is_valid)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace operations_research

// @@protoc_insertion_point(global_scope)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_ortools_2fconstraint_5fsolver_2fassignment_2eproto
