protected bool Equals(TypeSerializationModel other)
 {
     return(TypeEnum == other.TypeEnum && string.Equals(TypeName, other.TypeName) &&
            string.Equals(NamespaceName, other.NamespaceName) &&
            Equals(GenericArguments, other.GenericArguments) && Equals(Modifiers, other.Modifiers) &&
            Equals(Attributes, other.Attributes) && string.Equals(FullTypeName, other.FullTypeName) &&
            Equals(ImplementedInterfaces, other.ImplementedInterfaces) && Equals(Fields, other.Fields) &&
            Equals(Methods, other.Methods) && Equals(Properties, other.Properties) &&
            Equals(Indexers, other.Indexers) && Equals(Events, other.Events) &&
            Equals(Constructors, other.Constructors) && Equals(NestedTypes, other.NestedTypes));
 }
 public static TypeModel EmitTypeModel(TypeSerializationModel type)
 {
     return(UniqueEmitter.EmitType(type, propertyModel => propertyModel.ToModel()));
 }