diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2012-07-03 17:11:39 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2012-07-03 17:12:02 -0700 |
| commit | af38333f75416e8599d6534ded7d73ae121f3207 (patch) | |
| tree | fef7bc8d5af0bbf4be2433f9e8ccdbc3e2e4b5c0 /src/libstd | |
| parent | 0f5eaef5fb2443acd3ea67250c953839c3d04d38 (diff) | |
rustc: Speed up def ID parsing in the metadata
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/ebml.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libstd/ebml.rs b/src/libstd/ebml.rs index 70d974f255f..c2b1c61f08f 100644 --- a/src/libstd/ebml.rs +++ b/src/libstd/ebml.rs @@ -26,6 +26,7 @@ export writer; export serializer; export ebml_deserializer; export deserializer; +export with_doc_data; type ebml_tag = {id: uint, size: uint}; @@ -121,6 +122,10 @@ fn tagged_docs(d: doc, tg: uint, it: fn(doc)) { fn doc_data(d: doc) -> ~[u8] { vec::slice::<u8>(*d.data, d.start, d.end) } +fn with_doc_data<T>(d: doc, f: fn(x:&[u8]) -> T) -> T { + ret f(vec::view::<u8>(*d.data, d.start, d.end)); +} + fn doc_as_str(d: doc) -> str { ret str::from_bytes(doc_data(d)); } fn doc_as_u8(d: doc) -> u8 { |
