dprint_core/formatting/
actions.rs1use std::rc::Rc;
2
3use super::print_items::*;
4
5pub fn if_column_number_changes(inner_action: impl Fn(&mut ConditionResolverContext) + 'static) -> PrintItems {
6 let mut items = PrintItems::new();
7 let column_number = ColumnNumber::new("columnNumber");
8 items.extend(action("actionIfColChanges", move |context| {
9 if let Some(column_number) = context.resolved_column_number(column_number) {
10 if column_number != context.writer_info.column_number {
11 inner_action(context);
12 }
13 }
14 }));
15 items.push_info(column_number);
16 items
17}
18
19pub fn action(name: &'static str, action: impl Fn(&mut ConditionResolverContext) + 'static) -> PrintItems {
20 Condition::new(
21 name,
22 ConditionProperties {
23 condition: Rc::new(move |context| {
24 action(context);
25 Some(true)
26 }),
27 true_path: None,
28 false_path: None,
29 },
30 )
31 .into()
32}