我正在写一个Rust程序,它读取I2C总线并保存数据.当我读了I2C总线,我得到这样的十六进制值0x11,0x22等等.
现在,我只能将其作为字符串处理并按原样保存.有没有办法可以解析为整数?它有内置功能吗?
我找到了rust-secp256k1,它似乎是我需要的,但文档中没有示例。
我尝试在我的代码中使用这个箱子:
extern crate secp256k1;
use secp256k1::key::SecretKey;
fn main() {
let context = secp256k1::Secp256k1::without_caps();
let private_key: String = String::from("d500266f7d37f0957564e4ce1a1dcc8bb3408383634774a2f4a94a35f4bc53e0");
let secret_key = SecretKey::new(&context, &mut private_key);
println!("{:?}", secret_key);
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
extern crate secp256k1;
use secp256k1::key::SecretKey;
fn main() {
let context = secp256k1::Secp256k1::without_caps();
let private_key: String = String::from("d500266f7d37f0957564e4ce1a1dcc8bb3408383634774a2f4a94a35f4bc53e0");
let secret_key = SecretKey::new(&context, &mut private_key);
println!("{:?}", secret_key);
}
Run Code Online (Sandbox Code Playgroud) 我正在使用一个hex!只接受字符串文字的宏。我有一个从函数返回并存储在变量中的值。我无法对值进行硬编码并调用此函数。那么,如何hex!使用变量调用宏?
这是我的工作代码:
let account: AccountId32 = hex_literal::hex!["d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"].into();
Run Code Online (Sandbox Code Playgroud)
这是我面临错误的代码:
let account_id = "d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d";
let account: AccountId32 = hex_literal::hex!(&account_id).into();
Run Code Online (Sandbox Code Playgroud)
错误是:
let account: AccountId32 = hex_literal::hex!["d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"].into();
Run Code Online (Sandbox Code Playgroud)
hex!宏的所有示例仅使用字符串文字来演示它。