the trait `std::error::Error` is not implemented for `getrandom::error::Error` Why error being a normal error is platform-dependent?