Reimplementemos todo en Rust, ¡deprisa!, antes de que entremos en razón.
...probablemente no es una buena idea.
extern crate libc;
use libc::size_t;
#[link(name = "snappy")]
extern {
fn snappy_max_compressed_length(source_length: size_t) -> size_t;
}
fn main() {
let x = unsafe { snappy_max_compressed_length(100) };
println!("max compressed length of a 100 byte buffer: {}", x);
}
Fuente
extern crate libc;
use libc::size_t;
#[link(name = "snappy")]
extern {
fn snappy_max_compressed_length(source_length: size_t) -> size_t;
}
fn main() {
let x = unsafe { snappy_max_compressed_length(100) };
println!("max compressed length of a 100 byte buffer: {}", x);
}
#[no_mangle]
pub extern fn hello_rust() {
println!("Hello, world!");
}
extern void hello_rust();
int main (int argc, char *argv[])
{
hello_rust();
return 0;
}
#[no_mangle]
pub extern fn hello_rust() {
println!("Hello, world!");
}
[lib]
crate-type = ["staticlib"]
from ctypes import cdll
lib = cdll.LoadLibrary("target/release/libtest.so")
lib.hello_rust()
Pero...
convencer a tu jefx es lo más facil.
El otro factor es...
Tus compañerxs de trabajo.
Si vas a vender tamales, grita que vendes tamales.
Informa siempre de lo que hacen, pueden salir muchas oportunidades.
La forma en que los ingenieros crecemos es definiendo el camino que deben tomar las cosas.