J'essaie d'écrire un client TCP / IP simple dans Rust et j'ai besoin d'imprimer le tampon que j'ai obtenu du serveur. Comment convertir un Vec<u8>(ou un &[u8]) en un
J'essaie d'écrire un client TCP / IP simple dans Rust et j'ai besoin d'imprimer le tampon que j'ai obtenu du serveur. Comment convertir un Vec<u8>(ou un &[u8]) en un
Je comprends que Rust n'a pas de ramasse-miettes et je me demande comment la mémoire est libérée lorsqu'une liaison est hors de portée. Donc, dans cet exemple, je comprends que Rust récupère la mémoire allouée à «a» quand il est hors de portée. { let a = 4 } Le problème que j'ai avec cela, c'est...
J'ai deux modules dans des fichiers séparés dans la même caisse, où la caisse a été macro_rulesactivée. Je souhaite utiliser les macros définies dans un module dans un autre module. // macros.rs #[macro_export] // or not? is ineffectual for this, afaik macro_rules! my_macro(...) // something.rs...
J'ai déjà lu le terme "gros pointeur" dans plusieurs contextes, mais je ne suis pas sûr de ce qu'il signifie exactement et quand il est utilisé dans Rust. Le pointeur semble être deux fois plus grand qu'un pointeur normal, mais je ne comprends pas pourquoi. Cela semble également avoir quelque...
C'est quelque chose qui m'a toujours dérangé en tant que fonctionnalité des expressions lambda C ++: le type d'une expression lambda C ++ est unique et anonyme, je ne peux tout simplement pas l'écrire. Même si je crée deux lambdas dont la syntaxe est exactement la même, les types résultants sont...
J'ai rencontré un certain nombre de types dans Rust désignés par une seule apostrophe: 'static 'r 'a Quelle est la signification de cette apostrophe? C'est peut-être un modificateur de références ( &)? Typage générique spécifique aux références? Je n'ai aucune idée de l'endroit où se cache la...
Comment convertir un Stringen un &str? Plus précisément, je voudrais le convertir en un stravec la staticdurée de vie ( &'static str).
Rust a une RFC relative aux durées de vie non lexicales qui a été approuvée pour être implémentée dans le langage depuis longtemps. Récemment , la prise en charge de cette fonctionnalité par Rust s'est beaucoup améliorée et est considérée comme complète. Ma question est: qu'est-ce qu'une vie non...
Existe-t-il un moyen d'appeler une commande système, comme lsou fuserdans Rust? Que diriez-vous de capturer sa sortie?
Je suis incapable de compiler du code qui convertit un type d'un entier en une chaîne. J'exécute un exemple du didacticiel Rust for Rubyists qui a diverses conversions de type telles que: "Fizz".to_str()et num.to_str()(où numest un entier). Je pense que la majorité (sinon la totalité) de ces...
Quelque part, j'ai choisi le terme "type fondamental" (et son attribut #[fundamental]) et je voulais en savoir plus à ce sujet. Je me souviens vaguement qu'il s'agissait d'assouplir les règles de cohérence dans certaines situations. Et je pense que les types de référence sont des types...
Dis que j'ai l'extrait de code suivant ( aire de jeux ) struct A { pub val: u32 } const GLOBAL_A: A = A {val: 2}; fn main() { let some_a: A = GLOBAL_A; let other_a: A = GLOBAL_A; println!("double val = {}", some_a.val + other_a.val); } Puisque An'est ni Cloneni Copy, je suppose que la valeur de...
Que signifie l'erreur dans ce cas: fn main() { let mut v: Vec<usize> = vec![1, 2, 3, 4, 5]; v[v[1]] = 999; } error[E0502]: cannot borrow `v` as immutable because it is also borrowed as mutable --> src/main.rs:3:7 | 3 | v[v[1]] = 999; | --^---- | | | | | immutable borrow occurs here |...
L'implémentation de std::mem::dropest documentée comme suit: pub fn drop<T>(_x: T) { } En tant que tel, je m'attendrais à ce que la fermeture |_| ()(familièrement connue sous le nom de fermeture des toilettes ) soit un remplacement potentiel de 1: 1 dropdans les deux sens. Cependant, le code...
J'ai un trait qui a une fonction pour désérialiser un type associé. Cependant, ce type associé doit avoir une durée de vie que l'appelant décide, j'ai donc un trait distinct pour lequel j'utilise un trait de rang supérieur pour qu'il puisse être désérialisé pour toute durée de vie. J'ai besoin...
Avec les informations de débogage incluses, mon binaire devient environ 400 Mo. Cela se produit car Rust inclut des informations de débogage pour toutes les dépendances. Existe-t-il un moyen d'inclure des informations de débogage uniquement pour mon code? [package] name = "app" version = "0.7.1"...
Je ne peux pas gérer les fonctions asynchrones lors de l'écriture d'un routeur asynchrone pour hyper. Ce code: use std::collections::HashMap; use std::future::Future; type BoxedResult<T> = Result<T, Box<dyn std::error::Error + Send + Sync>>; type CalcFn = Box<dyn Fn(i32, i32)...
Contexte Je travaille sur une application actix-web utilisant le diesel via r2d2 et je ne suis pas sûr de la meilleure façon de faire des requêtes asynchrones. J'ai trouvé trois options qui semblent raisonnables, mais je ne sais pas laquelle est la meilleure. Solutions potentielles Acteur de...
J'ai rencontré ce problème en essayant d'ajouter l'impl Add<char> for Stringà la bibliothèque standard. Mais nous pouvons le reproduire facilement, sans manigances d'opérateur. Nous commençons par ceci: trait MyAdd<Rhs> { fn add(self, rhs: Rhs) -> Self; } impl MyAdd<&str>...
Prenons les exemples suivants: main.rs use futures::executor::block_on; use futures::future::{FutureExt, TryFutureExt}; async fn fut1() -> Result<String, u32> { Ok("ok".to_string()) } fn main() { println!("Hello, world!"); match block_on(fut1().and_then(|x| async move { Ok(format!("{} is...