3 fn same(fmt: &'static str, p: &[Piece<'static>]) {
4 let parser = Parser::new(fmt, None, None, false, ParseMode::Format);
5 assert_eq!(parser.collect::<Vec<Piece<'static>>>(), p);
8 fn fmtdflt() -> FormatSpec<'static> {
13 precision: CountImplied,
23 let mut p = Parser::new(s, None, None, false, ParseMode::Format);
25 assert!(!p.errors.is_empty());
30 same("asdf", &[String("asdf")]);
31 same("a{{b", &[String("a"), String("{b")]);
32 same("a}}b", &[String("a"), String("}b")]);
33 same("a}}", &[String("a"), String("}")]);
34 same("}}", &[String("}")]);
35 same("\\}}", &[String("\\"), String("}")]);
61 same("{}", &[NextArgument(Argument { position: ArgumentImplicitlyIs(0), format: fmtdflt() })]);
64 fn format_position() {
65 same("{3}", &[NextArgument(Argument { position: ArgumentIs(3), format: fmtdflt() })]);
68 fn format_position_nothing_else() {
69 same("{3:}", &[NextArgument(Argument { position: ArgumentIs(3), format: fmtdflt() })]);
75 &[NextArgument(Argument {
76 position: ArgumentIs(3),
81 precision: CountImplied,
92 fn format_align_fill() {
95 &[NextArgument(Argument {
96 position: ArgumentIs(3),
101 precision: CountImplied,
103 precision_span: None,
112 &[NextArgument(Argument {
113 position: ArgumentIs(3),
118 precision: CountImplied,
120 precision_span: None,
129 &[NextArgument(Argument {
130 position: ArgumentIs(3),
135 precision: CountImplied,
137 precision_span: None,
140 ty_span: Some(InnerSpan::new(6, 10)),
147 rustc_span::create_default_session_globals_then(|| {
150 &[NextArgument(Argument {
151 position: ArgumentImplicitlyIs(0),
156 precision: CountImplied,
158 precision_span: None,
167 &[NextArgument(Argument {
168 position: ArgumentImplicitlyIs(0),
173 precision: CountIs(10),
174 width: CountIsParam(10),
175 precision_span: None,
176 width_span: Some(InnerSpan::new(3, 6)),
184 &[NextArgument(Argument {
185 position: ArgumentImplicitlyIs(1),
190 precision: CountIsParam(0),
192 precision_span: Some(InnerSpan::new(3, 5)),
201 &[NextArgument(Argument {
202 position: ArgumentImplicitlyIs(0),
207 precision: CountIsParam(10),
209 precision_span: Some(InnerSpan::new(3, 7)),
218 &[NextArgument(Argument {
219 position: ArgumentImplicitlyIs(0),
224 precision: CountIsName(Symbol::intern("b"), InnerSpan::new(6, 7)),
225 width: CountIsName(Symbol::intern("a"), InnerSpan::new(4, 4)),
226 precision_span: None,
239 &[NextArgument(Argument {
240 position: ArgumentImplicitlyIs(0),
244 flags: (1 << FlagSignMinus as u32),
245 precision: CountImplied,
247 precision_span: None,
256 &[NextArgument(Argument {
257 position: ArgumentImplicitlyIs(0),
261 flags: (1 << FlagSignPlus as u32) | (1 << FlagAlternate as u32),
262 precision: CountImplied,
264 precision_span: None,
273 fn format_mixture() {
278 NextArgument(Argument {
279 position: ArgumentIs(3),
284 precision: CountImplied,
286 precision_span: None,