+
+#[derive(Debug, RustcEncodable)]
+pub struct JsonSignature {
+ span: SpanData,
+ text: String,
+ ident_start: usize,
+ ident_end: usize,
+ defs: Vec<JsonSigElement>,
+ refs: Vec<JsonSigElement>,
+}
+
+impl From<Signature> for JsonSignature {
+ fn from(data: Signature) -> JsonSignature {
+ JsonSignature {
+ span: data.span,
+ text: data.text,
+ ident_start: data.ident_start,
+ ident_end: data.ident_end,
+ defs: data.defs.into_iter().map(|s| From::from(s)).collect(),
+ refs: data.refs.into_iter().map(|s| From::from(s)).collect(),
+ }
+ }
+}
+
+#[derive(Debug, RustcEncodable)]
+pub struct JsonSigElement {
+ id: Id,
+ start: usize,
+ end: usize,
+}
+
+impl From<SigElement> for JsonSigElement {
+ fn from(data: SigElement) -> JsonSigElement {
+ JsonSigElement {
+ id: From::from(data.id),
+ start: data.start,
+ end: data.end,
+ }
+ }
+}