Articles of rust

Como faço para criar uma coleção heterogênea de objects?

Eu quero usar objects de traço em um Vec . Em C ++ eu poderia fazer uma class de base Thing da qual é derivada Monster1 e Monster2 . Eu poderia então criar um std::vector . Objetos de Thing devem armazenar alguns dados, por exemplo, x : int, y : int , mas as classs […]

Erro “Expected type parameter” no construtor de uma estrutura genérica

Eu estou tentando armazenar texturas de pistão em uma estrutura. struct TextureFactory where R: gfx::Resources { block_textures: Vec<Rc<Texture>>, } impl TextureFactory where R: gfx::Resources { fn new(window: PistonWindow) -> Self { let texture = Rc::new(gfx_texture::Texture::from_path( &mut *window.factory.borrow_mut(), “assets/element_red_square.png”, Flip::None, &TextureSettings::new() ).unwrap()); let block_textures = Vec::new(); block_textures.push(texture); TextureFactory { block_textures: block_textures, } } } Isso não […]

Por que tentar () e? não compila quando usado em uma function que não retorna Resultado?

Por que esse código não compila? use std::{fs, path::Path}; fn main() { let dir = Path::new(“../FileSystem”); if !dir.is_dir() { println!(“Is not a directory”); return; } for item in try!(fs::read_dir(dir)) { let file = match item { Err(e) => { println!(“Error: {}”, e); return; } Ok(f) => f, }; println!(“”); } println!(“Done”); } Este é o […]

O empréstimo de rust de um HashMap dura além do escopo em que está?

Eu tenho um erro de compilation persistente onde Rust reclama que eu tenho um empréstimo imutável enquanto eu estou tentando emprestar mutably, mas o empréstimo imutável é de outro escopo, e eu não estou trazendo nada através dele. Eu tenho um código que verifica um valor em um mapa e, se estiver presente, retorna, caso […]

Como eu preciso de um tipo genérico para implementar uma operação como Add, Sub, Mul ou Div em uma function genérica?

Eu estou tentando implementar uma function genérica em Rust onde o único requisito para o argumento é que a operação de multiplicação deve ser definida. Eu estou tentando implementar um “poder” genérico, mas vai com uma function de cube mais simples para ilustrar o problema: use std::ops::Mul; fn cube(x: T) -> T { x * […]

Quais são as vidas não lexicais?

Rust tem um RFC relacionado a vidas não-lexicais que foram aprovadas para serem implementadas no idioma por um longo tempo. Recentemente , o suporte de Rust a esse recurso melhorou muito e é considerado completo. Minha pergunta é: o que exatamente é uma vida não-lexical?

Como faço para implementar uma característica que não possuo para um tipo que não possuo?

Eu queria implementar o traço Shl para o Vec , o código está abaixo. Isso tornaria coisas como vec << 4 possível, o que seria um bom açúcar para vec.push(4) . use std::ops::Shl; impl Shl for Vec { type Output = Vec; fn shl(&self, elem: &T) -> Vec { self.push(*elem); *self } } fn main() […]

Como eu imprimo o tipo de uma variável em Rust?

Eu tenho o seguinte: let mut my_number = 32.90; Como faço para imprimir o tipo de my_number ? Usando type e type_of não funcionou. Existe outra maneira de imprimir o tipo do número?

Como posso passar uma referência a uma variável de pilha para um segmento?

Estou escrevendo um servidor WebSocket onde um cliente da Web se conecta para jogar xadrez contra uma IA de computador multithread. O servidor WebSocket quer passar um object Logger para o código AI. O object Logger vai canalizar linhas de log do AI para o Web client. O Logger deve conter uma referência para a […]

Como você pode fazer um singleton estático seguro em Rust?

Esse é um assunto controverso, portanto, deixe-me começar explicando meu caso de uso e, em seguida, fale sobre o problema real. Eu acho que para um monte de coisas inseguras, é importante ter certeza de que você não vazará memory; isso é realmente muito fácil se você começar a usar transmute() e forget() . Por […]