public UnityFieldDetails(FieldDefinition field, DetailsStore store) { PascalCaseName = Formatting.SnakeCaseToPascalCase(field.Name); CamelCaseName = Formatting.PascalCaseToCamelCase(PascalCaseName); FieldNumber = field.FieldId; IsBlittable = store.CheckBlittable(field); if (field.OptionType != null) { CanBeEmpty = true; fieldType = new OptionFieldType(field.OptionType.InnerType, store); } else if (field.ListType != null) { CanBeEmpty = true; fieldType = new ListFieldType(field.ListType.InnerType, store); } else if (field.MapType != null) { CanBeEmpty = true; fieldType = new MapFieldType(field.MapType.KeyType, field.MapType.ValueType, store); } else { var singularType = field.SingularType.Type; fieldType = new SingularFieldType(singularType, store); } Raw = field; }
public UnityFieldDetails(FieldDefinition rawFieldDefinition, DetailsStore store) : base(rawFieldDefinition) { fieldNumber = rawFieldDefinition.FieldId; IsBlittable = store.CheckBlittable(rawFieldDefinition); if (rawFieldDefinition.OptionType != null) { CanBeEmpty = true; FieldType = new OptionFieldType(rawFieldDefinition.OptionType.InnerType); } else if (rawFieldDefinition.ListType != null) { CanBeEmpty = true; FieldType = new ListFieldType(rawFieldDefinition.ListType.InnerType); } else if (rawFieldDefinition.MapType != null) { CanBeEmpty = true; FieldType = new MapFieldType(rawFieldDefinition.MapType.KeyType, rawFieldDefinition.MapType.ValueType); } else { FieldType = new SingularFieldType(rawFieldDefinition.SingularType.Type); } RawFieldDefinition = rawFieldDefinition; }