From 9e5a4166d5bf0ebad622535a6619e12014fc6470 Mon Sep 17 00:00:00 2001 From: Andrew Paseltiner Date: Mon, 7 Jan 2013 14:50:04 -0500 Subject: [PATCH] fmt: simplify parse_conversion --- src/libcore/extfmt.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/libcore/extfmt.rs b/src/libcore/extfmt.rs index e2b29040533..2b7783e720e 100644 --- a/src/libcore/extfmt.rs +++ b/src/libcore/extfmt.rs @@ -214,17 +214,19 @@ pub mod ct { err: ErrorFn) -> Parsed { let parm = parse_parameter(s, i, lim); - let flags = parse_flags(s, parm.next, lim); - let width = parse_count(s, flags.next, lim); + // avoid copying ~[Flag] by destructuring + let Parsed {val: flags_val, next: flags_next} = parse_flags(s, + parm.next, lim); + let width = parse_count(s, flags_next, lim); let prec = parse_precision(s, width.next, lim); let ty = parse_type(s, prec.next, lim, err); - return Parsed::new( + Parsed::new( PieceConv(Conv {param: parm.val, - flags: copy flags.val, + flags: flags_val, width: width.val, precision: prec.val, ty: ty.val}), - ty.next); + ty.next) } pub fn parse_parameter(s: &str, i: uint, lim: uint) -> Parsed> {