Skip to main content

rustidy_ast/
util.rs

1//! Utilities
2
3// Imports
4use {
5	super::token,
6	rustidy_ast_util::delimited::Delimited,
7	rustidy_format::{WhitespaceConfig, WhitespaceFormat},
8	rustidy_util::Whitespace,
9};
10
11/// A value delimited by parenthesis
12pub type Parenthesized<T> = Delimited<T, token::ParenOpen, token::ParenClose>;
13
14/// A value delimited by brackets
15pub type Bracketed<T> = Delimited<T, token::BracketOpen, token::BracketClose>;
16
17/// A value delimited by braces
18pub type Braced<T> = Delimited<T, token::BracesOpen, token::BracesClose>;
19
20/// Single or indent formatting
21#[derive(Clone, Copy, Debug)]
22pub enum FmtSingleOrIndent {
23	Single,
24	Indent,
25}
26
27impl FmtSingleOrIndent {
28	#[must_use]
29	pub const fn prefix_ws(self) -> WhitespaceConfig {
30		match self {
31			Self::Single => Whitespace::SINGLE,
32			Self::Indent => Whitespace::INDENT,
33		}
34	}
35}