Resultados de la búsqueda a petición "borrow-checker"

1 la respuesta

¿Hay alguna forma de liberar un enlace antes de que salga del alcance?

Estoy tratando de analizar un archivo usando expresiones regulares: extern crate regex; // 1.0.1 use regex::Regex; fn example( section_header_pattern: Regex, section_name: &str, mut line: String, mut is_in_right_section: bool, ) { loop { if let ...

1 la respuesta

¿Es este error debido al conocimiento especial del compilador sobre RefCell?

fn works<'a>(foo: &Option<&'a mut String>, s: &'a mut String) {} fn error<'a>(foo: &RefCell<Option<&'a mut String>>, s: &'a mut String) {} let mut s = "hi".to_string(); let foo = None; works(&foo, &mut s); // with this, it errors // let bar = ...

1 la respuesta

¿Cuál es la forma correcta de implementar el equivalente de múltiples devoluciones de llamada mutables (asignadas estáticamente, despachadas estáticamente, etc.) en Rust?

Tengo el siguiente código de ejemplo, que es la base estándar de las API controladas por eventos en otros lenguajes de programación, pero en Rust el verificador de préstamos lo bloquea con "no puedo tomar prestadop1 como mutable más de una vez a ...

1 la respuesta

¿Por qué el parámetro "toma prestado" el valor? [duplicar]

Esta pregunta ya tiene una respuesta aquí: ¿Verificador de préstamos y argumentos de función en Rust, correcto o demasiado celoso? [duplicar] [/questions/41421107/borrow-checker-and-function-arguments-in-rust-correct-or-over-zealous] 1 ...

1 la respuesta

¿Cómo puedo iterar simultáneamente sobre un Rust HashMap y modificar algunos de sus valores?

Estoy intentando Advent of Code in Rust este año, como una forma de aprender el idioma. Analicé la entrada (desde el día 7) en la siguiente estructura: struct Process { name: String, weight: u32, children: Vec<String>, parent: Option<String> ...

1 la respuesta

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() { ...

1 la respuesta

No se puede pedir prestado de manera mutable dentro de dos cierres diferentes en el mismo alcance

Mi objetivo es hacer una función (específicamente, relleno) que funcione independientemente de la estructura de datos subyacente. Traté de hacer esto pasando dos cierres: uno para consultar, que toma prestados algunos datos de manera inmutable, y ...

1 la respuesta

¿Por qué puedo devolver una referencia a un literal local pero no a una variable?

¿Por qué se compila este código? fn get_iter() -> impl Iterator<Item = i32> { [1, 2, 3].iter().map(|&i| i) } fn main() { let _it = get_iter(); }[1, 2, 3] es una variable local yiter() lo toma prestado. Este código no debe compilarse porque el ...

1 la respuesta

l error de préstamo doble mutable en un bucle ocurre incluso con NLL en

Supongo que tengo varias estructuras como en el siguiente ejemplo, y en lanext() método Necesito extraer el próximo evento utilizando un búfer proporcionado por el usuario, pero si este evento es un comentario e ignorar el indicador ...

2 la respuesta

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 ...