Articles of rouille

Comment implémenter un trait ‘fmt :: Debug’ personnalisé?

Je suppose que vous faites quelque chose comme ça: extern crate uuid; use uuid::Uuid; use std::fmt::Formatter; use std::fmt::Debug; #[derive(Debug)] struct BlahLF { id: Uuid, } impl BlahLF { fn new() -> BlahLF { return BlahLF { id: Uuid::new_v4() }; } } impl Debug for BlahLF { fn fmt(&self, &mut f: Formatter) -> Result { write!(f.buf, […]

Comment créer une requête HTTP depuis Rust?

Comment puis-je faire une requête HTTP depuis Rust? Je n’arrive pas à trouver quoi que ce soit dans la bibliothèque principale. Je n’ai pas besoin d’parsingr la sortie, il suffit de faire une demande et de vérifier le code de réponse HTTP. Des points bonus si quelqu’un peut me montrer comment encoder les parameters de […]

Vecteur d’objects appartenant à un trait

Considérez le code suivant: trait Animal { fn make_sound(&self) -> Ssortingng; } struct Cat; impl Animal for Cat { fn make_sound(&self) -> Ssortingng { “meow”.to_ssortingng() } } struct Dog; impl Animal for Dog { fn make_sound(&self) -> Ssortingng { “woof”.to_ssortingng() } } fn main () { let dog: Dog = Dog; let cat: Cat = […]

Comment itérer et filtrer un tableau?

J’essaie d’écrire un programme qui implique le filtrage et le pliage des tableaux. J’ai utilisé The Rust Programming Language , première édition comme référence, mais je ne comprends pas ce qui se passe lorsque je forme des iterators sur des tableaux. Voici un exemple: fn comstacks() { let range = (1..6); let range_iter = range.into_iter(); […]

Pourquoi les types de structure récursifs sont-ils illégaux dans Rust?

J’essaie des choses aléatoires pour approfondir ma compréhension de Rust. Je viens de rencontrer l’erreur suivante avec ce code : struct Person { mother: Option, father: Option, partner: Option, } pub fn main() { let susan = Person { mother: None, father: None, partner: None, }; let john = Person { mother: None, father: None, […]

Comment la syntaxe diffère-t-elle d’une limite de vie normale?

Considérez le code suivant: trait Trait {} fn foo(_b: Box<Trait>) {} fn bar(_b: Box<for Trait>) {} Les deux fonctions foo et bar semblent accepter un Box<Trait> , bien que foo fasse de manière plus concise que bar . Quelle est la différence entre eux? De plus, dans quelles situations aurais-je besoin for syntaxe for comme […]

Comment utiliser une caisse locale non publiée?

J’ai fait une bibliothèque: cargo new my_lib et je veux utiliser cette bibliothèque dans un programme différent: cargo new my_program –bin extern crate my_lib; fn main { println!(“Hello, World!”); } que dois-je faire pour que cela fonctionne? Ils ne sont pas dans le même dossier de projet. . ├── my_lib └── my_program J’espère que cela […]

Comment muter un champ struct dans la méthode

Comment puis-je muter le champ struct de la méthode? Je veux faire ça struct Point { x: int, y: int, } impl Point { fn up(&self) { self.y += 1; } } fn main() { let p = Point { x: 0, y: 0 }; p.up(); } Mais cette erreur de compilation de jet de […]

Durée de vie à Rust

Parfois, je me suis retrouvé à vouloir écrire des fonctions pouvant être appelées de deux manières différentes: // With a ssortingng literal: let lines = read_file_lines(“data.txt”); // With a ssortingng pointer: let file_name = ~”data.txt”; let lines = read_file_lines(file_name); Ma première supposition était d’utiliser un pointeur emprunté ( &str ) pour le type de paramètre, […]

Est-ce que cargo install a une commande de mise à jour équivalente?

J’aimerais mettre à jour un paquet que j’ai utilisé pour installer des paquets, comme rustfmt ou racer. Je ne peux pas trouver un moyen de mettre à jour un paquet installé sans le supprimer (via cargo uninstall ), puis exécuter à nouveau la commande d’installation. Y a-t-il une commande de mise à jour?