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;
        }
예제 #2
0
        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;
        }