3 fn same(fmt: &'static str, p: &[Piece<'static>]) {
4 let parser = Parser::new(fmt, None, vec![], false);
5 assert!(parser.collect::<Vec<Piece<'static>>>() == p);
8 fn fmtdflt() -> FormatSpec<'static> {
13 precision: CountImplied,
20 let mut p = Parser::new(s, None, vec![], false);
22 assert!(!p.errors.is_empty());
27 same("asdf", &[String("asdf")]);
28 same("a{{b", &[String("a"), String("{b")]);
29 same("a}}b", &[String("a"), String("}b")]);
30 same("a}}", &[String("a"), String("}")]);
31 same("}}", &[String("}")]);
32 same("\\}}", &[String("\\"), String("}")]);
59 &[NextArgument(Argument {
60 position: ArgumentImplicitlyIs(0),
65 fn format_position() {
67 &[NextArgument(Argument {
68 position: ArgumentIs(3),
73 fn format_position_nothing_else() {
75 &[NextArgument(Argument {
76 position: ArgumentIs(3),
83 &[NextArgument(Argument {
84 position: ArgumentIs(3),
89 precision: CountImplied,
96 fn format_align_fill() {
98 &[NextArgument(Argument {
99 position: ArgumentIs(3),
104 precision: CountImplied,
110 &[NextArgument(Argument {
111 position: ArgumentIs(3),
116 precision: CountImplied,
122 &[NextArgument(Argument {
123 position: ArgumentIs(3),
128 precision: CountImplied,
136 use syntax_pos::{GLOBALS, Globals, edition};
137 GLOBALS.set(&Globals::new(edition::DEFAULT_EDITION), || {
139 &[NextArgument(Argument {
140 position: ArgumentImplicitlyIs(0),
145 precision: CountImplied,
151 &[NextArgument(Argument {
152 position: ArgumentImplicitlyIs(0),
157 precision: CountIs(10),
158 width: CountIsParam(10),
163 &[NextArgument(Argument {
164 position: ArgumentImplicitlyIs(1),
169 precision: CountIsParam(0),
175 &[NextArgument(Argument {
176 position: ArgumentImplicitlyIs(0),
181 precision: CountIsParam(10),
187 &[NextArgument(Argument {
188 position: ArgumentImplicitlyIs(0),
193 precision: CountIsName(Symbol::intern("b")),
194 width: CountIsName(Symbol::intern("a")),
203 &[NextArgument(Argument {
204 position: ArgumentImplicitlyIs(0),
208 flags: (1 << FlagSignMinus as u32),
209 precision: CountImplied,
215 &[NextArgument(Argument {
216 position: ArgumentImplicitlyIs(0),
220 flags: (1 << FlagSignPlus as u32) | (1 << FlagAlternate as u32),
221 precision: CountImplied,
228 fn format_mixture() {
229 same("abcd {3:a} efg",
231 NextArgument(Argument {
232 position: ArgumentIs(3),
237 precision: CountImplied,