File tree 1 file changed +22
-0
lines changed 1 file changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -145,6 +145,28 @@ impl<W: Write> Writer<W> {
145
145
}
146
146
Ok ( wrote + self . write ( before) ? + self . write ( value) ? + self . write ( after) ?)
147
147
}
148
+
149
+ /// Manually write a newline and indentation at the proper level.
150
+ ///
151
+ /// This can be used when the heuristic to line break and indent after any [Event] apart
152
+ /// from [Text] fails such as when a [Start] occurs directly after [Text].
153
+ /// This method will do nothing if `Writer` was not constructed with `new_with_indent`.
154
+ ///
155
+ /// [Event]: events/enum.Event.html
156
+ /// [Text]: events/enum.Event.html#variant.Text
157
+ /// [Start]: events/enum.Event.html#variant.Start
158
+ pub fn write_indent ( & mut self ) -> Result < usize > {
159
+ let mut wrote = 0 ;
160
+ if let Some ( ref i) = self . indent {
161
+ wrote = self . writer . write ( b"\n " ) . map_err ( Error :: Io ) ?
162
+ + self
163
+ . writer
164
+ . write ( & i. indents [ ..i. indents_len ] )
165
+ . map_err ( Error :: Io ) ?;
166
+ }
167
+ Ok ( wrote)
168
+ }
169
+
148
170
}
149
171
150
172
#[ derive( Clone ) ]
You can’t perform that action at this time.
0 commit comments