Resultados de la búsqueda a petición "borrow-checker"
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() { ...
Implementando un take_while “cauteloso” usando Peekable
Me gustaria usarPeekable como base para un nuevocautious_take_while operación que actúa comotake_while deIteratorExt pero sin consumir el primer artículo fallido. (Hay una pregunta secundaria sobre si esta es una buena idea, y si hay mejores ...
¿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 = ...
¿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 ...
La mejor manera de eliminar elementos de Vec dependiendo de otros elementos de la misma Vec
Tengo un vector de conjuntos y quiero eliminar todos los conjuntos que son subconjuntos de otros conjuntos en el vector. Ejemplo: a = {0, 3, 5} b = {0, 5} c = {0, 2, 3}En este caso me gustaría eliminarb, porque es un subconjunto dea. Estoy bien ...
¿Por qué no puedo almacenar un valor y una referencia a ese valor en la misma estructura?
Tengo un valor y quiero almacenar ese valor y una referencia a algo dentro de ese valor en mi propio tipo: struct Thing { count: u32, } struct Combined<'a>(Thing, &'a u32); fn make_combined<'a>() -> Combined<'a> { let thing = Thing { count: 42 ...
"No se puede mover fuera de la variable porque está prestada" al rotar las variables
Estoy escribiendo un programa que escribe en un archivo y rota el archivo en el que está escribiendo de vez en cuando. Cuando verifico para rotar el archivo, parece que no puedo cambiar el archivo ya que mi estructura lo tomó prestado. Incluso si ...
¿Verificador de préstamos y argumentos de función en Rust, correcto o demasiado celoso? [duplicar]
Esta pregunta ya tiene una respuesta aquí: No se puede tomar prestado como inmutable porque también se toma prestado como mutable en los argumentos de ...
¿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 ...
¿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> ...