@@ -172,7 +172,7 @@ pub struct ValueSet<'a> {
172172enum Values < ' a > {
173173 /// A set of field-value pairs. Fields may be for the wrong field set, some
174174 /// fields may be missing, and fields may be in any order.
175- Mixed ( & ' a [ ( & ' a Field , Option < & ' a ( dyn Value + ' a ) > ) ] ) ,
175+ Explicit ( & ' a [ ( & ' a Field , Option < & ' a ( dyn Value + ' a ) > ) ] ) ,
176176 /// A list of values corresponding exactly to the fields in a `FieldSet`.
177177 All ( & ' a [ Option < & ' a ( dyn Value + ' a ) > ] ) ,
178178}
@@ -930,12 +930,16 @@ impl FieldSet {
930930 {
931931 ValueSet {
932932 fields : self ,
933- values : Values :: Mixed ( values. borrow ( ) ) ,
933+ values : Values :: Explicit ( values. borrow ( ) ) ,
934934 }
935935 }
936936
937937 /// Returns a new `ValueSet` for `values`. These values must exactly
938938 /// correspond to the fields in this `FieldSet`.
939+ ///
940+ /// If `values` does not meet this requirement, the behavior of the
941+ /// constructed `ValueSet` is unspecified (but not undefined). You will
942+ /// probably observe panics or mismatched field/values.
939943 #[ doc( hidden) ]
940944 pub fn value_set_all < ' v > ( & ' v self , values : & ' v [ Option < & ' v ( dyn Value + ' v ) > ] ) -> ValueSet < ' v > {
941945 debug_assert_eq ! ( values. len( ) , self . len( ) ) ;
@@ -1053,7 +1057,7 @@ impl ValueSet<'_> {
10531057 /// [visitor]: Visit
10541058 pub fn record ( & self , visitor : & mut dyn Visit ) {
10551059 match self . values {
1056- Values :: Mixed ( values) => {
1060+ Values :: Explicit ( values) => {
10571061 let my_callsite = self . callsite ( ) ;
10581062 for ( field, value) in values {
10591063 if field. callsite ( ) != my_callsite {
@@ -1081,7 +1085,7 @@ impl ValueSet<'_> {
10811085 /// [`ValueSet::record()`]: ValueSet::record()
10821086 pub fn len ( & self ) -> usize {
10831087 match self . values {
1084- Values :: Mixed ( values) => {
1088+ Values :: Explicit ( values) => {
10851089 let my_callsite = self . callsite ( ) ;
10861090 values
10871091 . iter ( )
@@ -1098,7 +1102,7 @@ impl ValueSet<'_> {
10981102 return false ;
10991103 }
11001104 match self . values {
1101- Values :: Mixed ( values) => values
1105+ Values :: Explicit ( values) => values
11021106 . iter ( )
11031107 . any ( |( key, val) | * key == field && val. is_some ( ) ) ,
11041108 Values :: All ( values) => values[ field. i ] . is_some ( ) ,
@@ -1109,7 +1113,7 @@ impl ValueSet<'_> {
11091113 pub fn is_empty ( & self ) -> bool {
11101114 match self . values {
11111115 Values :: All ( values) => values. iter ( ) . all ( |v| v. is_none ( ) ) ,
1112- Values :: Mixed ( values) => {
1116+ Values :: Explicit ( values) => {
11131117 let my_callsite = self . callsite ( ) ;
11141118 values
11151119 . iter ( )
0 commit comments