use fallible_iterator::FallibleIterator;
use postgres_protocol::message::backend::ErrorResponseBody;
pub mod error;
pub mod text_array;
pub fn md5_hash(user: &str, password: &str, salt: &[u8; 4]) -> String {
let inner = md5::compute(format!("{}{}", password, user));
let inner_hex = format!("{:x}", inner);
let mut outer = md5::Context::new();
outer.consume(inner_hex.as_bytes());
outer.consume(salt);
let final_hash = outer.finalize();
format!("md5{:x}", final_hash)
}
pub fn statement_name(query: &str) -> String {
let digest = md5::compute(query.as_bytes());
format!("stmt_{:x}", digest) }
pub fn print_error(err: ErrorResponseBody) {
let fields = err.fields().iterator();
for field in fields {
match field {
Ok(f) => {
let bytes = f.value_bytes();
let value = String::from_utf8_lossy(&bytes);
println!("Received error field: {:?}", value);
}
Err(err) => {
println!("Error parsing error field: {:?}", err);
break;
}
}
}
}