Я использую макрос hex!
, который принимает только строковые литералы. У меня есть значение, возвращенное из функции и сохраненное в переменной. Я не могу жестко закодировать значения и вызвать эту функцию. Итак, как я могу вызвать макрос hex!
с переменной?
Это мой рабочий код:
let account: AccountId32 = hex_literal::hex!["d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"].into();
, и это код, где я сталкиваюсь с ошибкой:
let account_id = "d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d";
let account: AccountId32 = hex_literal::hex!(&account_id).into();
Ошибка:
error: proc-macro derive panicked
--> src/examples/example_substratekitties.rs:49:32
|
49 | let account: AccountId32 = hex_literal::hex!(&account_id).into();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: expected one string literal
= note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
Все примеры макроса hex!
демонстрируют его только со строковыми литералами.