Resultados de la búsqueda a petición "lifetime"

1 la respuesta

Préstamo de referencia y guardia juntos desde un Mutex

Estoy tratando de encapsular algún código para evitar repetirlo, en relación con el préstamo de datos de un Mutex y otras operaciones posteriores (lo que dejo fuera de esta pregunta como fuera de alcance, pero son los factores motivadores). El ...

2 la respuesta

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

2 la respuesta

¿Hay alguna forma de devolver una referencia a una variable creada en una función?

Quiero escribir un programa que escriba un archivo en 2 pasos. Es probable que el archivo no exista antes de ejecutar el programa. El nombre del archivo es fijo. El problema es eseOpenOptions.new().write() puede fallar En ese caso, quiero llamar ...

1 la respuesta

¿Las referencias de hilos requieren una vida útil estática?

Si bien tiene sentido intuitivamente que las referencias pasadas a subprocesos generados deben tener una vida útil estática, no tengo claro qué hace exactamente que el siguiente código no se compile: use std::sync::Arc; use std::sync::Mutex; ...

1 la respuesta

Retornante iterador de un Vec en un RefCell

Dado lo siguientestruct yimpl: use std::slice::Iter; use std::cell::RefCell; struct Foo { bar: RefCell<Vec<u32>>, } impl Foo { pub fn iter(&self) -> Iter<u32> { self.bar.borrow().iter() } } fn main() {}Recibo un mensaje de error sobre ...

1 la respuesta

¿Cómo puedo modelar un mapa bidireccional sin molestar al verificador de préstamos?

De¿Por qué no puedo almacenar un valor y una referencia a ese valor en la misma estructura? [https://stackoverflow.com/questions/32300132/why-cant-i-store-a-value-and-a-reference-to-that-value-in-the-same-struct] Aprendí que no puedo almacenar un ...

1 la respuesta

Error de verificación de préstamo con variable que no vive lo suficiente en lambda anidada

Recibo un error dentro de una lambda anidada. let rows = vec![ vec![3, 6, 2, 8, 9, 0], vec![0, 0, 1, 4, 5, 1], ]; let pair_sums = rows.iter() .flat_map(|row| { (0 ..= row.len()).map(|i| row[i] + row[i + 1]) }) .collect::<Vec<_>>(); ...

3 la respuesta

¿Cómo especifico parámetros de por vida en un tipo asociado?

Tengo este rasgo y estructura simple: use std::path::{Path, PathBuf}; trait Foo { type Item: AsRef<Path>; type Iter: Iterator<Item = Self::Item>; fn get(&self) -> Self::Iter; } struct Bar { v: Vec<PathBuf>, }Me gustaría implementar elFoo rasgo ...

2 la respuesta

No se puede llamar a una función en un subproceso generado porque "no cumple la vida útil requerida"

Puedo ejecutar este código fn testf(host: &str) {} fn start(host: &str) { testf(host); testf(host); }pero por alguna razón, no puedo ejecutar este: fn testf(host: &str) {} fn start(host: &str) { thread::spawn(move || testf(host)); ...

1 la respuesta

Problema de por vida con un rasgo de mayor rango y cierres en caja

Estoy tratando de escribir una función que devuelva un cierre en caja que pueda funcionar en referencias a tipos con cualquier duración. Al escribir una instancia específica, todo funciona bien. Pero cuando escribo una versión genérica, me ...