private Func <ReadOnlyMemory <char>, bool> GetGetter(int i, DataViewType dst, object[] args)
        {
            switch (dst.GetRawKind())
            {
            case InternalDataKind.BL:
                return
                    (src =>
                {
                    bool v;
                    bool tmp = Conversions.DefaultInstance.TryParse(in src, out v);
                    args[i] = v;
                    return tmp;
                });

            case InternalDataKind.I4:
                return
                    (src =>
                {
                    int v;
                    bool tmp = Conversions.DefaultInstance.TryParse(in src, out v);
                    args[i] = v;
                    return tmp;
                });

            case InternalDataKind.I8:
                return
                    (src =>
                {
                    long v;
                    bool tmp = Conversions.DefaultInstance.TryParse(in src, out v);
                    args[i] = v;
                    return tmp;
                });

            case InternalDataKind.R4:
                return
                    (src =>
                {
                    float v;
                    bool tmp = Conversions.DefaultInstance.TryParse(in src, out v);
                    args[i] = v;
                    return tmp;
                });

            case InternalDataKind.R8:
                return
                    (src =>
                {
                    double v;
                    bool tmp = Conversions.DefaultInstance.TryParse(in src, out v);
                    args[i] = v;
                    return tmp;
                });

            case InternalDataKind.TX:
                return
                    (src =>
                {
                    args[i] = src;
                    return true;
                });
            }

            Contracts.Assert(false);
            return(null);
        }