• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #![doc(hidden)]
2 
3 use crate::reflect::acc::v1::FieldAccessorFunctions;
4 use crate::reflect::acc::v1::FieldAccessorImpl;
5 use crate::reflect::acc::v1::FieldAccessorTrait;
6 use crate::Message;
7 
8 pub(crate) mod v1;
9 
10 pub(crate) enum Accessor {
11     V1(Box<dyn FieldAccessorTrait + 'static>),
12 }
13 
14 /// Accessor object is constructed in generated code.
15 /// Should not be used directly.
16 pub struct FieldAccessor {
17     pub(crate) name: &'static str,
18     pub(crate) accessor: Accessor,
19 }
20 
21 impl FieldAccessor {
new_v1<M: Message>( name: &'static str, fns: FieldAccessorFunctions<M>, ) -> FieldAccessor22     pub(crate) fn new_v1<M: Message>(
23         name: &'static str,
24         fns: FieldAccessorFunctions<M>,
25     ) -> FieldAccessor {
26         FieldAccessor {
27             name,
28             accessor: Accessor::V1(Box::new(FieldAccessorImpl { fns })),
29         }
30     }
31 }
32