const_format_proc_macros/
format_str.rs
1use crate::{formatting::FormattingFlags, parse_utils::StrRawness};
2
3mod errors;
4
5mod parsing;
6
7#[cfg(test)]
8mod tests;
9
10pub(crate) use self::errors::{ParseError, ParseErrorKind};
11
12#[derive(Debug, PartialEq)]
13pub(crate) struct FormatStr {
14 pub(crate) list: Vec<FmtStrComponent>,
15}
16
17#[derive(Debug, PartialEq)]
18pub(crate) enum FmtStrComponent {
19 Str(String, StrRawness),
20 Arg(FmtArg),
21}
22
23#[derive(Debug, PartialEq)]
25pub(crate) struct FmtArg {
26 pub(crate) which_arg: WhichArg,
27 pub(crate) formatting: FormattingFlags,
28 pub(crate) rawness: StrRawness,
29}
30
31#[derive(Debug, PartialEq)]
32pub(crate) enum WhichArg {
33 Ident(String),
34 Positional(Option<usize>),
35}