Skip to content

Commit 38abdbf

Browse files
committed
Allow specification of constraint with expr() method
1 parent 9cba97f commit 38abdbf

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

Diff for: lib/coek/coek/compact/constraint_sequence.cpp

+16
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ class ConstraintSequenceRepn {
2929
: constraint_template(con), context(context_), name(name_)
3030
{
3131
}
32+
33+
ConstraintSequenceRepn(const std::string& name_, const SequenceContext& context_)
34+
: context(context_), name(name_)
35+
{
36+
}
3237
};
3338

3439
//
@@ -174,6 +179,17 @@ ConstraintSequence::ConstraintSequence(const std::string& name, const SequenceCo
174179
repn = std::make_shared<ConstraintSequenceRepn>(name, context_, expr);
175180
}
176181

182+
ConstraintSequence::ConstraintSequence(const std::string& name, const SequenceContext& context_)
183+
{
184+
repn = std::make_shared<ConstraintSequenceRepn>(name, context_);
185+
}
186+
187+
ConstraintSequence& ConstraintSequence::expr(const Constraint& expr)
188+
{
189+
repn->constraint_template = expr;
190+
return *this;
191+
}
192+
177193
ConstraintSeqIterator ConstraintSequence::begin()
178194
{
179195
return ConstraintSeqIterator(repn.get(), false);

Diff for: lib/coek/coek/compact/constraint_sequence.hpp

+10-2
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,10 @@ class ConstraintSequence {
4242
public:
4343
ConstraintSequence(const std::shared_ptr<ConstraintSequenceRepn>& _repn);
4444
ConstraintSequence(const SequenceContext& context, const Constraint& con);
45-
ConstraintSequence(const std::string& name, const SequenceContext& context,
46-
const Constraint& con);
45+
ConstraintSequence(const std::string& name, const SequenceContext& context, const Constraint& con);
46+
ConstraintSequence(const std::string& name, const SequenceContext& context);
47+
48+
ConstraintSequence& expr(const Constraint& con);
4749

4850
ConstraintSeqIterator begin();
4951
ConstraintSeqIterator end();
@@ -64,4 +66,10 @@ inline ConstraintSequence constraint(const std::string& name, const Constraint&
6466
return seq;
6567
}
6668

69+
inline ConstraintSequence constraint(const std::string& name, const SequenceContext& context)
70+
{
71+
ConstraintSequence seq(name, context);
72+
return seq;
73+
}
74+
6775
} // namespace coek

0 commit comments

Comments
 (0)