Me gustaría crear un paquete Rust que contenga tanto una biblioteca reutilizable (donde se implementa la mayor parte del progtwig) como un ejecutable que la use. Suponiendo que no haya confundido ninguna semántica en el sistema del módulo Rust, ¿cómo debería ser mi archivo Cargo.toml ?
Comencé un nuevo proyecto, donde quiero ser lo más modular posible, con eso quiero decir que me gustaría poder reemplazar algunas partes con otras en el futuro. Esto parece ser un uso perfecto para los traits , en este momento tengo este código: mod parser; mod renderer; mod renderers; use parser::MarkParser; use renderer::MarkRenderer; struct Rustmark […]
Intenté instalar el marco de trabajo de Iron para Rust en Mac OS X 10.11.2, pero no funcionó cuando ejecuté la cargo build o la cargo run en la comstackción de las cosas de openssl : failed to run custom build command for `openssl-sys-extras v0.7.4` Process didn’t exit successfully: `/xxx/rust/hello/target/debug/build/openssl-sys-extras-413d6c73b37a590d/build-script-build` (exit code: 101) — stdout […]
Si tengo un rasgo y una función que acepta un tipo genérico restringido a ese tipo, todo funciona bien. Si trato de pasar una referencia a ese tipo, obtengo un error de comstackción. trait Trait { fn hello(&self) -> u32; } struct Struct(u32); impl Trait for Struct { fn hello(&self) -> u32 { self.0 } […]
Me gustaría crear un par de funciones setter / getter donde los nombres se generen automáticamente en base a un componente compartido, pero no pude encontrar ningún ejemplo de reglas de macros que generen un nuevo nombre. ¿Hay alguna manera de generar código como fn get_$iden() y SomeEnum::XX_GET_$enum_iden ?
Me gustaría tener miembros de la estructura que conozcan a sus padres. Esto es aproximadamente lo que trato de hacer: struct Parent { children: Vec<Child>, } struct Child { parent: &’me Parent, i: i32, } fn main() { let mut p = Parent { children: vec![] }; let c1 = Child { parent: &p, i: […]
Al tratar de entender mejor el rasgo Any , vi que tiene un bloque impl para el rasgo en sí mismo . No entiendo el propósito de este constructo, o incluso si tiene un nombre específico. Hice un pequeño experimento con un método de rasgo “normal” y un método definido en el bloque impl : […]
Tengo un rasgo llamado Sleep : pub trait Sleep { fn sleep(&self); } Podría proporcionar una implementación diferente del sleep para cada estructura, pero resulta que la mayoría de las personas duermen de muy pocas maneras. Puedes dormir en una cama: pub trait HasBed { fn sleep_in_bed(&self); fn jump_on_bed(&self); } impl Sleep for HasBed { […]
Los cambios recientes de Rust han hecho que los “objetos de rasgo” sean más prominentes para mí, pero solo tengo una comprensión nebulosa de lo que realmente convierte a algo en un objeto de rasgo. Un cambio en particular es el próximo cambio para permitir a los objetos de rasgo reenviar las implementaciones de rasgos […]
¿Cuáles son las condiciones específicas para que un cierre implemente los rasgos Fn , FnMut y FnOnce ? Es decir: ¿Cuándo un cierre no implementa el rasgo de FnOnce ? ¿Cuándo un cierre no implementa el rasgo FnMut ? ¿Cuándo un cierre no implementa el rasgo Fn ? Por ejemplo, mutar el estado del cierre […]