Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/rust/macho-unwind-info/src/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 934 B image not shown  

Quelle  reader.rs   Sprache: unbekannt

 
Spracherkennung für: .rs vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

use zerocopy::{FromBytes, Ref, Unaligned};

pub trait Reader {
    fn read_at<T: FromBytes + Unaligned>(&self, offset: u64) -> Option<&T>;
    fn read_slice_at<T: FromBytes + Unaligned>(&self, offset: u64, len: usize) -> Option<&[T]>;
}

impl Reader for [u8] {
    fn read_at<T: FromBytes + Unaligned>(&self, offset: u64) -> Option<&T> {
        let offset: usize = offset.try_into().ok()?;
        let end: usize = offset.checked_add(core::mem::size_of::<T>())?;
        let lv = Ref::<&[u8], T>::new_unaligned(self.get(offset..end)?)?;
        Some(lv.into_ref())
    }

    fn read_slice_at<T: FromBytes + Unaligned>(&self, offset: u64, len: usize) -> Option<&[T]> {
        let offset: usize = offset.try_into().ok()?;
        let end: usize = offset.checked_add(core::mem::size_of::<T>().checked_mul(len)?)?;
        let lv = Ref::<&[u8], [T]>::new_slice_unaligned(self.get(offset..end)?)?;
        Some(lv.into_slice())
    }
}

[ Dauer der Verarbeitung: 0.28 Sekunden  ]