1+ //! This module contains dynamic reflection.
2+ //!
3+ //! It is used for dynamically getting fields' values.
4+
5+ #![ doc( hidden) ]
6+
17use std:: any:: Any ;
28use std:: any:: TypeId ;
39use std:: fmt;
@@ -95,8 +101,11 @@ impl DynamicFieldValue {
95101 }
96102}
97103
104+ /// Structure used for dynamic reflection.
105+ ///
106+ /// It is mostly used for dynamically getting fields' values.
98107#[ derive( Debug , Clone ) ]
99- pub ( crate ) struct DynamicMessage {
108+ pub struct DynamicMessage {
100109 descriptor : MessageDescriptor ,
101110 /// Fields by index in the description.
102111 /// This field is lazy-init: it is empty when created.
@@ -127,7 +136,8 @@ impl DynamicMessage {
127136 }
128137 }
129138
130- pub ( crate ) fn get_reflect < ' a > ( & ' a self , field : & FieldDescriptor ) -> ReflectFieldRef < ' a > {
139+ /// Get a field reference for a field descriptor.
140+ pub fn get_reflect < ' a > ( & ' a self , field : & FieldDescriptor ) -> ReflectFieldRef < ' a > {
131141 let ( descriptor, index) = field. regular ( ) ;
132142 assert_eq ! ( self . descriptor, descriptor) ;
133143 if self . fields . is_empty ( ) {
@@ -137,6 +147,7 @@ impl DynamicMessage {
137147 }
138148 }
139149
150+ /// Clear a field.
140151 pub fn clear_field ( & mut self , field : & FieldDescriptor ) {
141152 let ( descriptor, index) = field. regular ( ) ;
142153 assert_eq ! ( self . descriptor, descriptor) ;
0 commit comments