Skip to content

Commit d33356f

Browse files
committed
Enable optional logging support
1 parent 13d49ec commit d33356f

File tree

5 files changed

+16
-4
lines changed

5 files changed

+16
-4
lines changed

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ members = [
1414
"tests/wasm_bindgen",
1515
]
1616

17+
[dependencies]
18+
log = { version = "0.4", optional = true }
19+
1720
[target.'cfg(unix)'.dependencies]
1821
libc = "0.2.27"
1922

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ fn get_random_buf() -> Result<[u8; 32], getrandom::Error> {
3838

3939
This library is `no_std` compatible on SGX but requires `std` on most platforms.
4040

41+
The `log` library is supported as an optional dependency. If enabled, error
42+
reporting will be improved on some platforms.
43+
4144
For WebAssembly (`wasm32`), Enscripten targets are supported directly; otherwise
4245
one of the following features must be enabled:
4346

src/error.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ impl fmt::Debug for Error {
6565
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
6666
match self.msg() {
6767
Some(msg) => write!(f, "Error(\"{}\")", msg),
68-
None => write!(f, "Error({:08X})", self.0),
68+
None => write!(f, "Error(0x{:08X})", self.0),
6969
}
7070
}
7171
}
@@ -74,7 +74,7 @@ impl fmt::Display for Error {
7474
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
7575
match self.msg() {
7676
Some(msg) => write!(f, "{}", msg),
77-
None => write!(f, "getrandom: unknown code {:08X}", self.0),
77+
None => write!(f, "getrandom: unknown code 0x{:08X}", self.0),
7878
}
7979
}
8080
}

src/lib.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,10 @@ extern crate wasm_bindgen;
111111
feature = "stdweb"))]
112112
#[macro_use] extern crate stdweb;
113113

114+
#[cfg(feature = "log")] #[macro_use] extern crate log;
115+
#[allow(unused)]
116+
#[cfg(not(feature = "log"))] macro_rules! warn { ($($x:tt)*) => () }
117+
114118
#[cfg(any(
115119
target_os = "android",
116120
target_os = "netbsd",

src/wasm32_stdweb.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ fn getrandom_init() -> Result<RngSource, Error> {
6666
else { unreachable!() }
6767
} else {
6868
let err: WebError = js!{ return @{ result }.error }.try_into().unwrap();
69-
Err(ERROR_UNAVAILABLE) // TODO: forward err
69+
warn!("getrandom unavailable: {}", err);
70+
Err(ERROR_UNAVAILABLE)
7071
}
7172
}
7273

@@ -101,7 +102,8 @@ fn getrandom_fill(source: &mut RngSource, dest: &mut [u8]) -> Result<(), Error>
101102

102103
if js!{ return @{ result.as_ref() }.success } != true {
103104
let err: WebError = js!{ return @{ result }.error }.try_into().unwrap();
104-
return Err(ERROR_UNKNOWN) // TODO: forward err
105+
warn!("getrandom failed: {}", err);
106+
return Err(ERROR_UNKNOWN)
105107
}
106108
}
107109
Ok(())

0 commit comments

Comments
 (0)