player : PlayerId,
gen : Generation,
uses : Vec<String>,
- defs : Vec<(VisiblePieceId,Vec<String>)>,
+ defs : Vec<(VisiblePieceId,String)>,
nick : String,
}
}
impl PieceRecord {
- pub fn make_defs(&self, pri : &PieceRenderInstructions) -> Vec<String> {
+ pub fn make_defs(&self, pri : &PieceRenderInstructions) -> String {
let pr = self;
- let mut defs = vec![];
- defs.push(format!(r##"<g id="{}">{}</g>"##,
- pri.id_piece(),
- pr.p.svg_piece(&pri)));
- defs.push(format!(r##"<g id="{}" stroke="black" fill="none">{}</g>"##,
- pri.id_select(),
- pr.p.svg_select(&pri)));
- defs.push(pr.p.svg_x_defs(&pri));
+ let mut defs = String::new();
+ write!(defs, r##"<g id="{}">{}</g>"##,
+ pri.id_piece(),
+ pr.p.svg_piece(&pri)).unwrap();
+ write!(defs, r##"<g id="{}" stroke="black" fill="none">{}</g>"##,
+ pri.id_select(),
+ pr.p.svg_select(&pri)).unwrap();
+ write!(defs, "{}", pr.p.svg_x_defs(&pri)).unwrap();
defs
}
pub use std::io;
pub use std::io::{BufReader,Read,Write};
+pub use std::fmt::Write as _;
pub use std::fmt::{self,Display,Debug};
pub use std::thread;
pub use std::time::Duration;
{{piece}}
{%- endfor %}
{%- for piece in defs %}
- <defs id="defs{{ piece.0 }}">
-{%- for item in piece.1 %}
- {{item}}
-{%- endfor %}
- </defs>
+ <defs id="defs{{ piece.0 }}">{{ piece.1 }}</defs>
{%- endfor %}
</svg>