@@ -1559,11 +1559,10 @@ def _raise_on_none_value_in_fix_sized_item_array(field: "FieldDescriptor") -> ty
15591559class SchemaWriter (CompactWriter ):
15601560 def __init__ (self , type_name : str ):
15611561 self ._type_name = type_name
1562- self ._fields : typing .List [FieldDescriptor ] = []
1563- self ._field_names : typing .Set [str ] = set ()
1562+ self ._fields : typing .Dict [str , FieldDescriptor ] = {}
15641563
15651564 def build (self ) -> "Schema" :
1566- return Schema (self ._type_name , self ._fields )
1565+ return Schema (self ._type_name , list ( self ._fields . values ()) )
15671566
15681567 def write_boolean (self , field_name : str , value : bool ) -> None :
15691568 self ._add_field (field_name , FieldKind .BOOLEAN )
@@ -1740,11 +1739,10 @@ def write_array_of_compact(
17401739 self ._add_field (field_name , FieldKind .ARRAY_OF_COMPACT )
17411740
17421741 def _add_field (self , name : str , kind : "FieldKind" ):
1743- if name in self ._field_names :
1742+ if name in self ._fields :
17441743 raise HazelcastSerializationError (f"Field with the name '{ name } ' already exists" )
17451744
1746- self ._field_names .add (name )
1747- self ._fields .append (FieldDescriptor (name , kind ))
1745+ self ._fields [name ] = FieldDescriptor (name , kind )
17481746
17491747
17501748class Schema :
0 commit comments