pub trait Visitor<'t, B>{
type Res;
Show 19 methods
// Required methods
fn get_ty(&self, name: &Path) -> &'t Ty;
fn visit_bool(&mut self, v: bool) -> Result<Self::Res, Error>;
fn visit_int8(&mut self, v: i8) -> Result<Self::Res, Error>;
fn visit_int16(&mut self, v: i16) -> Result<Self::Res, Error>;
fn visit_int32(&mut self, v: i32) -> Result<Self::Res, Error>;
fn visit_int64(&mut self, v: i64) -> Result<Self::Res, Error>;
fn visit_uint8(&mut self, v: u8) -> Result<Self::Res, Error>;
fn visit_uint16(&mut self, v: u16) -> Result<Self::Res, Error>;
fn visit_uint32(&mut self, v: u32) -> Result<Self::Res, Error>;
fn visit_uint64(&mut self, v: u64) -> Result<Self::Res, Error>;
fn visit_float32(&mut self, v: f32) -> Result<Self::Res, Error>;
fn visit_float64(&mut self, v: f64) -> Result<Self::Res, Error>;
fn visit_text(
&mut self,
contents: B,
len: usize,
) -> Result<Self::Res, Error>;
fn visit_tuple(
&mut self,
fields: impl Iterator<Item = (B, &'t TyTupleField)>,
) -> Result<Self::Res, Error>;
fn visit_array(
&mut self,
items: impl Iterator<Item = B>,
ty_items: &'t Ty,
) -> Result<Self::Res, Error>;
fn visit_enum(
&mut self,
tag: usize,
inner: B,
ty_variants: &'t [TyEnumVariant],
) -> Result<Self::Res, Error>;
// Provided methods
fn get_mat_ty(&self, ty: &'t Ty) -> &'t Ty { ... }
fn visit(&mut self, buf: B, ty: &'t Ty) -> Result<Self::Res, Error> { ... }
fn visit_concrete(&mut self, buf: B, ty: &'t Ty) -> Result<Self::Res, Error> { ... }
}Required Associated Types§
Required Methods§
fn get_ty(&self, name: &Path) -> &'t Ty
fn visit_bool(&mut self, v: bool) -> Result<Self::Res, Error>
fn visit_int8(&mut self, v: i8) -> Result<Self::Res, Error>
fn visit_int16(&mut self, v: i16) -> Result<Self::Res, Error>
fn visit_int32(&mut self, v: i32) -> Result<Self::Res, Error>
fn visit_int64(&mut self, v: i64) -> Result<Self::Res, Error>
fn visit_uint8(&mut self, v: u8) -> Result<Self::Res, Error>
fn visit_uint16(&mut self, v: u16) -> Result<Self::Res, Error>
fn visit_uint32(&mut self, v: u32) -> Result<Self::Res, Error>
fn visit_uint64(&mut self, v: u64) -> Result<Self::Res, Error>
fn visit_float32(&mut self, v: f32) -> Result<Self::Res, Error>
fn visit_float64(&mut self, v: f64) -> Result<Self::Res, Error>
fn visit_text(&mut self, contents: B, len: usize) -> Result<Self::Res, Error>
fn visit_tuple( &mut self, fields: impl Iterator<Item = (B, &'t TyTupleField)>, ) -> Result<Self::Res, Error>
fn visit_array( &mut self, items: impl Iterator<Item = B>, ty_items: &'t Ty, ) -> Result<Self::Res, Error>
fn visit_enum( &mut self, tag: usize, inner: B, ty_variants: &'t [TyEnumVariant], ) -> Result<Self::Res, Error>
Provided Methods§
fn get_mat_ty(&self, ty: &'t Ty) -> &'t Ty
fn visit(&mut self, buf: B, ty: &'t Ty) -> Result<Self::Res, Error>
fn visit_concrete(&mut self, buf: B, ty: &'t Ty) -> Result<Self::Res, Error>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.