1use std::fmt::Display;
2
3#[derive(Debug, PartialEq)]
4pub struct SolanaError {
5 error_msg: String,
6 error_name: String,
7 #[allow(unused)]
8 error_code_number: u32,
9 #[allow(unused)]
10 error_origin: Option<String>,
11 #[allow(unused)]
12 compared_values: Option<String>
13}
14
15impl Display for SolanaError {
16 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
17 write!(f, "Error: {} - {}", self.error_name, self.error_msg)
18 }
19}
20
21pub fn err(msg: &str) -> SolanaError {
22 SolanaError {
23 error_msg: msg.to_string(),
24 error_name: "Exception".to_string(),
25 error_code_number: 0,
26 error_origin: None,
27 compared_values: None
28 }
29}
30
31pub fn vec_to_u128(vec: &Vec<u8>) -> u128 {
32 let mut array = [0u8; 16];
33 array.copy_from_slice(&vec);
34 u128::from_be_bytes(array)
35}
36
37
38pub fn bytes_to_binary(i: &[u8; 32], r: &mut Vec<u8>) {
39 for m in i.iter() {
40 format!("{:8b}", m).chars().for_each(|b| if b == '1' { r.push(1); } else { r.push(0) } );
41 }
42}