/// <summary>
        /// Internally used to know type of set operation to use.
        /// </summary>
        public UpdateOperationType GetSetOperationType()
        {
            if (MemberType.GetTypeInfo().IsValueType)
            {
                if (BlittableHelper.IsBlittable(MemberType))
                {
                    if (Size == 4)
                    {
                        return(UpdateOperationType.ConditionalSetBlittableField4);
                    }
                    if (Size == 8)
                    {
                        return(UpdateOperationType.ConditionalSetBlittableField8);
                    }
                    if (Size == 12)
                    {
                        return(UpdateOperationType.ConditionalSetBlittableField12);
                    }
                    if (Size == 16)
                    {
                        return(UpdateOperationType.ConditionalSetBlittableField16);
                    }

                    return(UpdateOperationType.ConditionalSetBlittableField);
                }

                return(UpdateOperationType.ConditionalSetStructField);
            }
            else
            {
                return(UpdateOperationType.ConditionalSetObjectField);
            }
        }
Exemple #2
0
        /// <inheritdoc/>
        internal override UpdateOperationType GetSetOperationType()
        {
            if (MemberType.GetTypeInfo().IsValueType)
            {
                if (BlittableHelper.IsBlittable(MemberType))
                {
                    return(UpdateOperationType.ConditionalSetBlittablePropertyBase);
                }

                return(UpdateOperationType.ConditionalSetStructPropertyBase);
            }
            else
            {
                return(UpdateOperationType.ConditionalSetObjectCustom);
            }
        }