Fix builds in no_std environments

This commit is contained in:
Mark Poliakov 2023-07-19 17:50:05 +03:00
parent 1436aab797
commit 9f36ba0ffa
4 changed files with 10 additions and 5 deletions

View File

@ -16,7 +16,7 @@ edition = "2021"
name = "elf"
[dependencies]
hashbrown = { version = "0.14.0", optional = true }
hashbrown = { version = "0.14.0", optional = true, default-features = false }
[features]
default = ["std", "to_str"]

View File

@ -1,9 +1,9 @@
use core::ops::Range;
#[cfg(not(feature = "std"))]
use hashbrown::HashMap;
use alloc::{boxed::Box, collections::BTreeMap as BufferMap, vec, vec::Vec};
#[cfg(feature = "std")]
use std::collections::HashMap;
use std::collections::BTreeMap as BufferMap;
use crate::abi;
use crate::compression::CompressionHeader;
@ -683,7 +683,7 @@ impl<E: EndianParse, S: Read + Seek> ElfStream<E, S> {
struct CachingReader<R: Read + Seek> {
reader: R,
stream_len: u64,
bufs: HashMap<(usize, usize), Box<[u8]>>,
bufs: BufferMap<(usize, usize), Box<[u8]>>,
}
impl<R: Read + Seek> CachingReader<R> {
@ -694,7 +694,7 @@ impl<R: Read + Seek> CachingReader<R> {
Ok(CachingReader {
reader,
stream_len,
bufs: HashMap::<(usize, usize), Box<[u8]>>::default(),
bufs: BufferMap::<(usize, usize), Box<[u8]>>::default(),
})
}

View File

@ -1,6 +1,8 @@
#[cfg(feature = "std")]
pub type StreamError = std::io::Error;
#[cfg(not(feature = "std"))]
#[derive(Debug)]
pub struct StreamError {
pub message: &'static str,
}

View File

@ -130,6 +130,9 @@
#![warn(rust_2018_idioms)]
#![deny(missing_debug_implementations)]
#[cfg(not(feature = "std"))]
extern crate alloc;
pub mod abi;
pub mod compression;