40 EnforcementId
Register(absl::Span<const Literal> enforcement_literals,
42 int literal_watcher_id);
46 std::vector<Literal>* reason)
const {
47 enforcement_propagator_.AddEnforcementReason(
id, reason);
53 EnforcementId
id, absl::Span<const Literal> literal_reason,
54 absl::Span<const IntegerLiteral> integer_reason);
56 ABSL_MUST_USE_RESULT
bool Enqueue(
58 absl::Span<const Literal> literal_reason,
59 absl::Span<const IntegerLiteral> integer_reason);
63 absl::Span<const IntegerLiteral> integer_reason);
67 absl::Span<const Literal> literal_reason,
68 absl::Span<const IntegerLiteral> integer_reason);
71 EnforcementId
id,
Literal literal,
72 absl::Span<const Literal> literal_reason,
73 absl::Span<const IntegerLiteral> integer_reason);
76 absl::Span<const IntegerLiteral> integer_reason) {
81 absl::Span<const Literal> literal_reason,
82 absl::Span<const IntegerLiteral> integer_reason);
85 return enforcement_propagator_.Status(
id);
90 return enforcement_propagator_.GetEnforcementLiterals(
id);
97 std::vector<Literal> temp_reason_;
98 std::vector<IntegerLiteral> temp_integer_reason_;