diff options
Diffstat (limited to 'crates/shirabe/src/dependency_resolver/multi_conflict_rule.rs')
| -rw-r--r-- | crates/shirabe/src/dependency_resolver/multi_conflict_rule.rs | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/crates/shirabe/src/dependency_resolver/multi_conflict_rule.rs b/crates/shirabe/src/dependency_resolver/multi_conflict_rule.rs index ed77a19..102beaa 100644 --- a/crates/shirabe/src/dependency_resolver/multi_conflict_rule.rs +++ b/crates/shirabe/src/dependency_resolver/multi_conflict_rule.rs @@ -90,25 +90,6 @@ impl MultiConflictRule { code: 0, }.into()) } - - pub fn to_string(&self) -> String { - let mut result = if self.inner.is_disabled() { - "disabled(multi(".to_string() - } else { - "(multi(".to_string() - }; - - // TODO multi conflict? - for (i, literal) in self.literals.iter().enumerate() { - if i != 0 { - result.push('|'); - } - result.push_str(&literal.to_string()); - } - - result.push_str("))"); - result - } } impl RuleLiterals for MultiConflictRule { @@ -166,3 +147,26 @@ impl Rule for MultiConflictRule { todo!() } } + +impl std::fmt::Display for MultiConflictRule { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + // TODO multi conflict? + write!( + f, + "{}", + if self.inner.is_disabled() { + "disabled(multi(" + } else { + "(multi(" + } + )?; + + for (i, literal) in self.literals.iter().enumerate() { + if i != 0 { + write!(f, "|")?; + } + write!(f, "{}", literal)?; + } + write!(f, "))") + } +} |
