about summary refs log tree commit diff
path: root/compiler/rustc_serialize
diff options
context:
space:
mode:
authorBen Kimock <kimockb@gmail.com>2024-05-21 20:12:07 -0400
committerBen Kimock <kimockb@gmail.com>2024-05-21 20:12:30 -0400
commitc3a606237d9c01e4622b267031596bf632567e6f (patch)
treefdcf8485698540fe24cc40d645b96c21561797a5 /compiler/rustc_serialize
parent95150d72465db491f4b04b73545e106462bd003b (diff)
downloadrust-c3a606237d9c01e4622b267031596bf632567e6f.tar.gz
rust-c3a606237d9c01e4622b267031596bf632567e6f.zip
PR feedback
Diffstat (limited to 'compiler/rustc_serialize')
-rw-r--r--compiler/rustc_serialize/src/opaque.rs10
-rw-r--r--compiler/rustc_serialize/tests/leb128.rs5
2 files changed, 8 insertions, 7 deletions
diff --git a/compiler/rustc_serialize/src/opaque.rs b/compiler/rustc_serialize/src/opaque.rs
index 1b4b1d2436f..1dcb69920d7 100644
--- a/compiler/rustc_serialize/src/opaque.rs
+++ b/compiler/rustc_serialize/src/opaque.rs
@@ -17,7 +17,7 @@ use crate::int_overflow::DebugStrictAdd;
 
 pub type FileEncodeResult = Result<usize, (PathBuf, io::Error)>;
 
-const FOOTER: &[u8] = b"rust-end-file";
+pub const MAGIC_END_BYTES: &[u8] = b"rust-end-file";
 
 /// The size of the buffer in `FileEncoder`.
 const BUF_SIZE: usize = 8192;
@@ -183,7 +183,7 @@ impl FileEncoder {
     }
 
     pub fn finish(&mut self) -> FileEncodeResult {
-        self.write_all(FOOTER);
+        self.write_all(MAGIC_END_BYTES);
         self.flush();
         #[cfg(debug_assertions)]
         {
@@ -264,10 +264,10 @@ pub struct MemDecoder<'a> {
 
 impl<'a> MemDecoder<'a> {
     #[inline]
-    pub fn new(data: &'a [u8], position: usize) -> Option<MemDecoder<'a>> {
-        let data = data.strip_suffix(FOOTER)?;
+    pub fn new(data: &'a [u8], position: usize) -> Result<MemDecoder<'a>, ()> {
+        let data = data.strip_suffix(MAGIC_END_BYTES).ok_or(())?;
         let Range { start, end } = data.as_ptr_range();
-        Some(MemDecoder { start, current: data[position..].as_ptr(), end, _marker: PhantomData })
+        Ok(MemDecoder { start, current: data[position..].as_ptr(), end, _marker: PhantomData })
     }
 
     #[inline]
diff --git a/compiler/rustc_serialize/tests/leb128.rs b/compiler/rustc_serialize/tests/leb128.rs
index 2bf4f38d3c3..fafe4b91a95 100644
--- a/compiler/rustc_serialize/tests/leb128.rs
+++ b/compiler/rustc_serialize/tests/leb128.rs
@@ -1,5 +1,6 @@
 use rustc_serialize::leb128::*;
 use rustc_serialize::opaque::MemDecoder;
+use rustc_serialize::opaque::MAGIC_END_BYTES;
 use rustc_serialize::Decoder;
 
 macro_rules! impl_test_unsigned_leb128 {
@@ -27,7 +28,7 @@ macro_rules! impl_test_unsigned_leb128 {
                 stream.extend(&buf[..n]);
             }
             let stream_end = stream.len();
-            stream.extend(b"rust-end-file");
+            stream.extend(MAGIC_END_BYTES);
 
             let mut decoder = MemDecoder::new(&stream, 0).unwrap();
             for &expected in &values {
@@ -76,7 +77,7 @@ macro_rules! impl_test_signed_leb128 {
                 stream.extend(&buf[..n]);
             }
             let stream_end = stream.len();
-            stream.extend(b"rust-end-file");
+            stream.extend(MAGIC_END_BYTES);
 
             let mut decoder = MemDecoder::new(&stream, 0).unwrap();
             for &expected in &values {