pub struct BitStreamReader { /* private fields */ }Expand description
Bitstream reader
Implementations§
Source§impl BitStreamReader
impl BitStreamReader
Sourcepub const TOP_LEVEL_BLOCK_ID: u32 = 4_294_967_295u32
pub const TOP_LEVEL_BLOCK_ID: u32 = 4_294_967_295u32
Top level fake block ID
Sourcepub fn new() -> Self
pub fn new() -> Self
Examples found in repository?
examples/llvm_bca.rs (line 15)
9fn main() {
10 let path = std::env::args()
11 .nth(1)
12 .expect("Provide file path to a .bc file");
13 let file = std::fs::read(&path).unwrap();
14
15 let mut reader = BitStreamReader::new();
16 let (sig, bitcode) = Signature::parse(&file).unwrap();
17
18 println!(
19 "<BITCODE_WRAPPER_HEADER Magic=0x{:08x} Version=0x{:08x} Offset=0x{:08x} Size=0x{:08x} CPUType=0x{:08x}/>",
20 sig.magic, sig.version, sig.offset, sig.size, sig.cpu_type
21 );
22 iter_block(reader.iter_bitcode(bitcode), 0).unwrap();
23}Sourcepub fn iter_bitcode<'input>(
&mut self,
bitcode_data: &'input [u8],
) -> BlockIter<'_, 'input>
pub fn iter_bitcode<'input>( &mut self, bitcode_data: &'input [u8], ) -> BlockIter<'_, 'input>
Skip Signature first
Examples found in repository?
examples/llvm_bca.rs (line 22)
9fn main() {
10 let path = std::env::args()
11 .nth(1)
12 .expect("Provide file path to a .bc file");
13 let file = std::fs::read(&path).unwrap();
14
15 let mut reader = BitStreamReader::new();
16 let (sig, bitcode) = Signature::parse(&file).unwrap();
17
18 println!(
19 "<BITCODE_WRAPPER_HEADER Magic=0x{:08x} Version=0x{:08x} Offset=0x{:08x} Size=0x{:08x} CPUType=0x{:08x}/>",
20 sig.magic, sig.version, sig.offset, sig.size, sig.cpu_type
21 );
22 iter_block(reader.iter_bitcode(bitcode), 0).unwrap();
23}Sourcepub fn read_block<V: BitStreamVisitor>(
&mut self,
cursor: Cursor<'_>,
block_id: u32,
abbrev_width: u8,
visitor: &mut V,
) -> Result<(), Error>
pub fn read_block<V: BitStreamVisitor>( &mut self, cursor: Cursor<'_>, block_id: u32, abbrev_width: u8, visitor: &mut V, ) -> Result<(), Error>
Read block with visitor
Trait Implementations§
Source§impl Clone for BitStreamReader
impl Clone for BitStreamReader
Source§fn clone(&self) -> BitStreamReader
fn clone(&self) -> BitStreamReader
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for BitStreamReader
impl RefUnwindSafe for BitStreamReader
impl Send for BitStreamReader
impl Sync for BitStreamReader
impl Unpin for BitStreamReader
impl UnwindSafe for BitStreamReader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more