Fixing the lifetimes for `Seekable`

pmeunier
Jul 19, 2021, 6:23 PM
IB4L4N5M765IYALNZENJRKOGUPBRK2AMAB6IRNWPDCKNKKRMOB5AC

Dependencies

  • [2] HEFGMMUM Start oxidizing 1/N
  • [3] HELRYMZK Manual bindings (Windows and Clang aren't very good friends), and getting rid of anyhow
  • [4] IH334Q5A Reboot
  • [5] UPRY2FEL Remove bindgen dependency

Change contents

  • replacement in src/lib.rs at line 14
    [2.114][2.114:174]()
    use std::{cmp, fmt, fs, io, marker, mem, ptr, slice, sync};
    [2.114]
    [2.174]
    use std::{cmp, fmt, fs, io, mem, ptr, slice, sync};
  • replacement in src/lib.rs at line 77
    [3.241840][3.241840:241869]()
    pub struct Seekable<'a, R> {
    [3.241840]
    [2.1334]
    pub struct Seekable<R> {
  • replacement in src/lib.rs at line 80
    [2.1393][2.1393:1413]()
    src: &'a mut R,
    [2.1393]
    [2.1413]
    src: R,
  • replacement in src/lib.rs at line 90
    [3.241983][3.241983:242031]()
    unsafe impl<R> Send for Seekable<'static, R> {}
    [3.241983]
    [3.242031]
    unsafe impl<R> Send for Seekable<R> {}
  • replacement in src/lib.rs at line 136
    [3.243308][2.2056:2091]()
    impl<R> Drop for Seekable<'_, R> {
    [3.243308]
    [3.243347]
    impl<R> Drop for Seekable<R> {
  • replacement in src/lib.rs at line 457
    [2.8819][2.8819:8948]()
    impl<'a, R: io::Read + io::Seek> Seekable<'a, R> {
    fn make_seekable(source: &'a mut R, dstream: *mut ZSTD_DStream) -> Self {
    [2.8819]
    [2.8948]
    impl<R: io::Read + io::Seek> Seekable<R> {
    fn make_seekable(source: R, dstream: *mut ZSTD_DStream) -> Self {
  • edit in src/lib.rs at line 476
    [2.9462][2.9462:9506]()
    // marker: marker::PhantomData,
  • replacement in src/lib.rs at line 483
    [3.252014][2.9655:9726]()
    let mut handle = self.src.take(SEEK_TABLE_FOOTER_SIZE as u64);
    [3.252014]
    [2.9726]
    let mut handle = (&mut self.src).take(SEEK_TABLE_FOOTER_SIZE as u64);
  • replacement in src/lib.rs at line 505
    [2.10575][2.10575:10623]()
    handle = self.src.take(to_read as u64);
    [2.10575]
    [2.10623]
    handle = (&mut self.src).take(to_read as u64);
  • replacement in src/lib.rs at line 530
    [2.11640][2.11640:11696]()
    handle = self.src.take(to_read as u64);
    [2.11640]
    [2.11696]
    handle = (&mut self.src).take(to_read as u64);
  • replacement in src/lib.rs at line 676
    [2.16888][2.16888:16956]()
    let mut handle = self.src.take(to_read as u64);
    [2.16888]
    [2.16956]
    let mut handle = (&mut self.src).take(to_read as u64);
  • replacement in src/lib.rs at line 694
    [2.17365][2.17365:17415]()
    impl<'a> Seekable<'a, io::Cursor<&'a mut [u8]>> {
    [2.17365]
    [2.17415]
    impl<'a> Seekable<io::Cursor<&'a mut [u8]>> {
  • replacement in src/lib.rs at line 702
    [2.17662][2.17662:17785]()
    let mut source = io::Cursor::new(input);
    let mut seekable = Seekable::make_seekable(&mut source, dstream);
    [2.17662]
    [2.17785]
    let source = io::Cursor::new(input);
    let mut seekable = Seekable::make_seekable(source, dstream);
  • replacement in src/lib.rs at line 709
    [2.17850][2.17850:17884]()
    impl<'a> Seekable<'a, fs::File> {
    [2.17850]
    [2.17884]
    impl Seekable<fs::File> {
  • replacement in src/lib.rs at line 711
    [2.18014][2.18014:18207]()
    pub fn init_file(name: &'a str) -> Result<Self, Error> {
    let mut source = fs::File::create(name)?;
    let mut seekable = Seekable::make_seekable(&mut source, ptr::null_mut());
    [2.18014]
    [2.18207]
    pub fn init_file(name: &str) -> Result<Self, Error> {
    let source = fs::File::create(name)?;
    let mut seekable = Seekable::make_seekable(source, ptr::null_mut());
  • replacement in src/lib.rs at line 719
    [2.18272][2.18272:18328]()
    impl<'a, R: io::Read + io::Seek> Seekable<'a, Box<R>> {
    [2.18272]
    [2.18328]
    impl<R: io::Read + io::Seek> Seekable<R> {
  • replacement in src/lib.rs at line 721
    [2.18458][2.18458:18558]()
    pub fn init(source: &'a mut Box<R>) -> Result<Self, Error> {
    let source = &mut *source;
    [2.18458]
    [2.18558]
    pub fn init(source: R) -> Result<Self, Error> {
  • replacement in src/lib.rs at line 733
    [3.255562][2.18806:18836]()
    impl<'a, R> Seekable<'a, R> {
    [3.255562]
    [3.255562]
    impl<R> Seekable<R> {