traduccion ps4 lenguaje language descargar rust

rust - ps4 - ¿Cómo implementar un rasgo ''fmt:: Debug'' personalizado?



rust traduccion (1)

Supongo que haces algo como esto:

extern crate uuid; use uuid::Uuid; use std::fmt::Formatter; use std::fmt::Debug; #[derive(Debug)] struct BlahLF { id: Uuid, } impl BlahLF { fn new() -> BlahLF { return BlahLF { id: Uuid::new_v4() }; } } impl Debug for BlahLF { fn fmt(&self, &mut f: Formatter) -> Result { write!(f.buf, "Hi: {}", self.id); } }

... pero intentar implementar este rasgo genera:

error[E0243]: wrong number of type arguments --> src/main.rs:19:41 | 19 | fn fmt(&self, &mut f: Formatter) -> Result { | ^^^^^^ expected 2 type arguments, found 0

Sin embargo, esa parece ser la forma en que otras implementaciones lo hacen. ¿Qué estoy haciendo mal?


De acuerdo con el ejemplo de std::fmt docs :

extern crate uuid; use uuid::Uuid; use std::fmt; struct BlahLF { id: Uuid, } impl fmt::Debug for BlahLF { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "Hi: {}", self.id) } }

La parte a destacar es fmt:: in fmt::Result . Sin eso te refieres al tipo de Result simple. El tipo de Result simple tiene dos parámetros de tipo genérico, fmt::Result no tiene ninguno.