Resultados de la búsqueda a petición "rust"
no se puede mover fuera del contenido prestado al desenvolver una variable miembro en un método & mut self
Estaba tratando de hacer una estructura de datos Disjoint-Set en Rust. El código relevante es: pub struct Set<'a, T: 'a> { rank: u32, value: T, parent: Option<&'a mut Set<'a, T>>, } impl<'a, T> Set<'a, T> { pub fn find(&'a mut self) -> &'a mut ...
¿Se permiten variables polimórficas?
Tengo varias estructuras que implementan el mismo rasgo. Quiero ramificar en alguna condición, decidiendo en tiempo de ejecución cuál de esas estructuras instanciar. Luego, independientemente de la rama que seguí, quiero llamar a los métodos de ...
¿Por qué no se puede alcanzar este patrón de coincidencia cuando se usan patrones no literales?
El siguiente código (patio de recreo [https://play.rust-lang.org/?gist=c1ee7efa123ed8240557c2d086006479&version=stable&backtrace=0] ) let max_column = 7; edge = match current_column { 0 => Edge::Left, max_column => Edge::Right, _ => ...
¿Cómo convierto entre tipos numéricos de forma segura e idiomática?
¿Cuál es la forma idiomática de convertir (digamos) unusize a unu32? Por ejemplo, lanzar usando4294967295us as u32 funciona y eldocumentos de referencia de óxido en fundición de ...
¿Cuál es el equivalente del operador de combinación sobre un vector de cadenas?
No pude encontrar el equivalente de Rust para el operador "join" en un vector deStrings. tengo unVec<String> y me gustaría unirme a ellos como solterosString: let string_list = vec!["Foo".to_string(),"Bar".to_string()]; let joined ...
¿Cómo intercambiar elementos de la matriz?
Quiero intercambiar elementos de rebanadadata usando la función de biblioteca, pero no funciona debido a múltiples préstamos: mem::swap(&mut data[i], &mut data[j]); //errorSe puede hacer manualmente, como siempre: let temp = data[i]; data[i] = ...
¿Cuál es la forma preferida de implementar el rasgo Agregar de manera eficiente para el tipo de Vector?
losAdd rasgo se define comovisto en la documentación [http://doc.rust-lang.org/core/ops/trait.Add.html]. Al implementarlo para un Vector, se requería copiarlo en el método de agregar para permitir una sintaxis comov1 + v2. Si eladd la ...
El valor prestado no dura lo suficiente al crear un Vec
Nota del editor: esta pregunta se hizo antes de Rust 1.0. Desde entonces, muchas funciones y tipos han cambiado, al igual que ciertas semánticas del lenguaje. El código en la pregunta ya no es válido, pero las ideas expresadas en las respuestas ...
¿Por qué Rust verifica los límites de la matriz en tiempo de ejecución, cuando (la mayoría) otras verificaciones ocurren en tiempo de compilación?
Leer elintroducción básica [http://doc.rust-lang.org/book/arrays-vectors-and-slices.html]: Si intenta usar un subíndice que no está en la matriz, obtendrá un error: el acceso a la matriz se verifica en los límites en tiempo de ejecución. ¿Por ...
Retomando la propiedad de una referencia mutable pasada a una función que acepta un tipo genérico
¿Por qué no compila este código? fn use_cursor(cursor: &mut io::Cursor<&mut Vec<u8>>) { // do some work } fn take_reference(data: &mut Vec<u8>) { { let mut buf = io::Cursor::new(data); use_cursor(&mut buf); } data.len(); } fn produce_data() { ...