Avatar ·

Como converter uma string C (char*) para Rust String e vice-versa via FFI?

Olá a todos! Estou escrevendo um pequeno programa em Rust que usa uma biblioteca em C via FFI. Encontrei um problema com a conversão de strings entre C e Rust. Eu tenho uma função C que retorna `char*`: ```c // C code char* get_greeting(void) { return "Hello from C!"; } ``` E outra função C que aceita `const char*`: ```c void print_message(const char* msg); ``` Estou tentando chamá-las a partir do Rust: ```rust extern "C" { fn get_greeting() -> *const c_char; fn print_message(msg: *const c_char); } fn main() { unsafe { // Obtém a string C let c_str = get_greeting(); // Como converter *const c_char para Rust String? // Tentando passar uma string Rust para C let rust_string = String::from("Hel