Skip to content

Commit 065bdca

Browse files
ericktnikomatsakis
authored andcommitted
---
yaml --- r: 30939 b: refs/heads/incoming c: 81423a3 h: refs/heads/master i: 30937: c654bd4 30935: 894ce43 v: v3
1 parent 2bed9a0 commit 065bdca

File tree

8 files changed

+582
-267
lines changed

8 files changed

+582
-267
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ refs/heads/try: d324a424d8f84b1eb049b12cf34182bda91b0024
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: d0c6ce338884ee21843f4b40bf6bf18d222ce5df
9-
refs/heads/incoming: 0a950f394dbe3275c4879dc1f26f78a096f93e28
9+
refs/heads/incoming: 81423a3866fb6cd4cadd28ed49273d7e22d48c17
1010
refs/heads/dist-snap: 2f32a1581f522e524009138b33b1c7049ced668d
1111
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1212
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/incoming/src/libstd/ebml2.rs

Lines changed: 67 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,25 @@ impl Serializer: serialization2::Serializer {
384384
fail ~"Unimplemented: serializing a float";
385385
}
386386

387-
fn emit_str(&self, v: &str) { self.wr_tagged_str(EsStr as uint, v) }
387+
fn emit_char(&self, _v: char) {
388+
fail ~"Unimplemented: serializing a char";
389+
}
390+
391+
fn emit_borrowed_str(&self, v: &str) {
392+
self.wr_tagged_str(EsStr as uint, v)
393+
}
394+
395+
fn emit_owned_str(&self, v: &str) {
396+
self.emit_borrowed_str(v)
397+
}
398+
399+
fn emit_managed_str(&self, v: &str) {
400+
self.emit_borrowed_str(v)
401+
}
402+
403+
fn emit_borrowed(&self, f: fn()) { f() }
404+
fn emit_owned(&self, f: fn()) { f() }
405+
fn emit_managed(&self, f: fn()) { f() }
388406

389407
fn emit_enum(&self, name: &str, f: fn()) {
390408
self._emit_label(name);
@@ -397,25 +415,33 @@ impl Serializer: serialization2::Serializer {
397415
}
398416
fn emit_enum_variant_arg(&self, _idx: uint, f: fn()) { f() }
399417

400-
fn emit_vec(&self, len: uint, f: fn()) {
418+
fn emit_borrowed_vec(&self, len: uint, f: fn()) {
401419
do self.wr_tag(EsVec as uint) {
402420
self._emit_tagged_uint(EsVecLen, len);
403421
f()
404422
}
405423
}
406424

425+
fn emit_owned_vec(&self, len: uint, f: fn()) {
426+
self.emit_borrowed_vec(len, f)
427+
}
428+
429+
fn emit_managed_vec(&self, len: uint, f: fn()) {
430+
self.emit_borrowed_vec(len, f)
431+
}
432+
407433
fn emit_vec_elt(&self, _idx: uint, f: fn()) {
408434
self.wr_tag(EsVecElt as uint, f)
409435
}
410436

411-
fn emit_box(&self, f: fn()) { f() }
412-
fn emit_uniq(&self, f: fn()) { f() }
413437
fn emit_rec(&self, f: fn()) { f() }
414-
fn emit_rec_field(&self, f_name: &str, _f_idx: uint, f: fn()) {
415-
self._emit_label(f_name);
438+
fn emit_struct(&self, _name: &str, f: fn()) { f() }
439+
fn emit_field(&self, name: &str, _idx: uint, f: fn()) {
440+
self._emit_label(name);
416441
f()
417442
}
418-
fn emit_tup(&self, _sz: uint, f: fn()) { f() }
443+
444+
fn emit_tup(&self, _len: uint, f: fn()) { f() }
419445
fn emit_tup_elt(&self, _idx: uint, f: fn()) { f() }
420446
}
421447

@@ -525,9 +551,22 @@ impl Deserializer: serialization2::Deserializer {
525551
fn read_f32(&self) -> f32 { fail ~"read_f32()"; }
526552
fn read_float(&self) -> float { fail ~"read_float()"; }
527553

528-
fn read_str(&self) -> ~str { doc_as_str(self.next_doc(EsStr)) }
554+
fn read_char(&self) -> char { fail ~"read_char()"; }
555+
556+
fn read_owned_str(&self) -> ~str { doc_as_str(self.next_doc(EsStr)) }
557+
fn read_managed_str(&self) -> @str { fail ~"read_managed_str()"; }
529558

530559
// Compound types:
560+
fn read_owned<T>(&self, f: fn() -> T) -> T {
561+
debug!("read_owned()");
562+
f()
563+
}
564+
565+
fn read_managed<T>(&self, f: fn() -> T) -> T {
566+
debug!("read_managed()");
567+
f()
568+
}
569+
531570
fn read_enum<T>(&self, name: &str, f: fn() -> T) -> T {
532571
debug!("read_enum(%s)", name);
533572
self._check_label(name);
@@ -548,8 +587,17 @@ impl Deserializer: serialization2::Deserializer {
548587
f()
549588
}
550589

551-
fn read_vec<T>(&self, f: fn(uint) -> T) -> T {
552-
debug!("read_vec()");
590+
fn read_owned_vec<T>(&self, f: fn(uint) -> T) -> T {
591+
debug!("read_owned_vec()");
592+
do self.push_doc(self.next_doc(EsVec)) {
593+
let len = self._next_uint(EsVecLen);
594+
debug!(" len=%u", len);
595+
f(len)
596+
}
597+
}
598+
599+
fn read_managed_vec<T>(&self, f: fn(uint) -> T) -> T {
600+
debug!("read_managed_vec()");
553601
do self.push_doc(self.next_doc(EsVec)) {
554602
let len = self._next_uint(EsVecLen);
555603
debug!(" len=%u", len);
@@ -562,30 +610,24 @@ impl Deserializer: serialization2::Deserializer {
562610
self.push_doc(self.next_doc(EsVecElt), f)
563611
}
564612

565-
fn read_box<T>(&self, f: fn() -> T) -> T {
566-
debug!("read_box()");
613+
fn read_rec<T>(&self, f: fn() -> T) -> T {
614+
debug!("read_rec()");
567615
f()
568616
}
569617

570-
fn read_uniq<T>(&self, f: fn() -> T) -> T {
571-
debug!("read_uniq()");
618+
fn read_struct<T>(&self, name: &str, f: fn() -> T) -> T {
619+
debug!("read_struct(name=%s)", name);
572620
f()
573621
}
574622

575-
fn read_rec<T>(&self, f: fn() -> T) -> T {
576-
debug!("read_rec()");
577-
f()
578-
}
579-
580-
fn read_rec_field<T>(&self, f_name: &str, f_idx: uint,
581-
f: fn() -> T) -> T {
582-
debug!("read_rec_field(%s, idx=%u)", f_name, f_idx);
583-
self._check_label(f_name);
623+
fn read_field<T>(&self, name: &str, idx: uint, f: fn() -> T) -> T {
624+
debug!("read_field(name=%s, idx=%u)", name, idx);
625+
self._check_label(name);
584626
f()
585627
}
586628

587-
fn read_tup<T>(&self, sz: uint, f: fn() -> T) -> T {
588-
debug!("read_tup(sz=%u)", sz);
629+
fn read_tup<T>(&self, len: uint, f: fn() -> T) -> T {
630+
debug!("read_tup(len=%u)", len);
589631
f()
590632
}
591633

@@ -595,7 +637,6 @@ impl Deserializer: serialization2::Deserializer {
595637
}
596638
}
597639

598-
599640
// ___________________________________________________________________________
600641
// Testing
601642

0 commit comments

Comments
 (0)