Sha256: 8158cb25669b4e835ee94159c0e468b0e1ddd64858ba60386bb5befee1a0a260

Contents?: true

Size: 969 Bytes

Versions: 3

Compression:

Stored size: 969 Bytes

Contents

module Gecode
  module BoolEnumMethods
    include Gecode::Constraints::LeftHandSideMethods
    
    private
    
    # Produces an expression for the lhs module.
    def expression(params)
      params.update(:lhs => self)
      Constraints::BoolEnum::Expression.new(@model, params)
    end
  end
  
  # A module containing constraints that have enumerations of boolean variables 
  # as left hand side.
  module Constraints::BoolEnum
    # Expressions with bool enums as left hand sides.
    class Expression < Gecode::Constraints::Expression #:nodoc:
      # Raises TypeError unless the left hand side is a bool enum.
      def initialize(model, params)
        super
        
        unless params[:lhs].respond_to? :to_bool_var_array
          raise TypeError, 'Must have bool enum as left hand side.'
        end
      end
    end
  end
end

require 'gecoder/interface/constraints/bool_enum/relation'
require 'gecoder/interface/constraints/bool_enum/extensional'

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
gecoder-with-gecode-0.8.1-mswin32 lib/gecoder/interface/constraints/bool_enum_constraints.rb
gecoder-0.8.1 lib/gecoder/interface/constraints/bool_enum_constraints.rb
gecoder-with-gecode-0.8.1 lib/gecoder/interface/constraints/bool_enum_constraints.rb