)
}
-pub fn rewrite_static(
- prefix: &str,
- vis: &ast::Visibility,
+pub struct StaticParts<'a> {
+ vis: &'a ast::Visibility,
ident: ast::Ident,
- ty: &ast::Ty,
+ ty: &'a ast::Ty,
mutability: ast::Mutability,
- expr_opt: Option<&ptr::P<ast::Expr>>,
+ expr_opt: Option<&'a ptr::P<ast::Expr>>,
+}
+
+impl<'a> StaticParts<'a> {
+ pub fn new(
+ vis: &'a ast::Visibility,
+ ident: ast::Ident,
+ ty: &'a ast::Ty,
+ mutability: ast::Mutability,
+ expr_opt: Option<&'a ptr::P<ast::Expr>>,
+ ) -> StaticParts<'a> {
+ StaticParts {
+ vis,
+ ident,
+ ty,
+ mutability,
+ expr_opt,
+ }
+ }
+}
+
+pub fn rewrite_static(
+ prefix: &str,
+ static_parts: &StaticParts,
offset: Indent,
span: Span,
context: &RewriteContext,
) -> Option<String> {
+ let StaticParts {
+ vis,
+ ident,
+ ty,
+ mutability,
+ expr_opt,
+ } = *static_parts;
let colon = colon_spaces(
context.config.space_before_type_annotation(),
context.config.space_after_type_annotation_colon(),
use config::{BraceStyle, Config};
use items::{format_impl, format_struct, format_struct_struct, format_trait,
rewrite_associated_impl_type, rewrite_associated_type, rewrite_static,
- rewrite_type_alias, FnSig};
+ rewrite_type_alias, FnSig, StaticParts};
use lists::{itemize_list, write_list, DefinitiveListTactic, ListFormatting, SeparatorPlace,
SeparatorTactic};
use macros::{rewrite_macro, MacroPosition};
ast::ItemKind::Static(ref ty, mutability, ref expr) => {
let rewrite = rewrite_static(
"static",
- &item.vis,
- item.ident,
- ty,
- mutability,
- Some(expr),
+ &StaticParts::new(&item.vis, item.ident, ty, mutability, Some(expr)),
self.block_indent,
item.span,
&self.get_context(),
ast::ItemKind::Const(ref ty, ref expr) => {
let rewrite = rewrite_static(
"const",
- &item.vis,
- item.ident,
- ty,
- ast::Mutability::Immutable,
- Some(expr),
+ &StaticParts::new(
+ &item.vis,
+ item.ident,
+ ty,
+ ast::Mutability::Immutable,
+ Some(expr),
+ ),
self.block_indent,
item.span,
&self.get_context(),
ast::TraitItemKind::Const(ref ty, ref expr_opt) => {
let rewrite = rewrite_static(
"const",
- &ast::Visibility::Inherited,
- ti.ident,
- ty,
- ast::Mutability::Immutable,
- expr_opt.as_ref(),
+ &StaticParts::new(
+ &ast::Visibility::Inherited,
+ ti.ident,
+ ty,
+ ast::Mutability::Immutable,
+ expr_opt.as_ref(),
+ ),
self.block_indent,
ti.span,
&self.get_context(),
ast::ImplItemKind::Const(ref ty, ref expr) => {
let rewrite = rewrite_static(
"const",
- &ii.vis,
- ii.ident,
- ty,
- ast::Mutability::Immutable,
- Some(expr),
+ &StaticParts::new(
+ &ii.vis,
+ ii.ident,
+ ty,
+ ast::Mutability::Immutable,
+ Some(expr),
+ ),
self.block_indent,
ii.span,
&self.get_context(),