public virtual ValueBuffer Create(BsonDocument recordData, IValueBufferFromBsonShaper valueBufferShaper) /* object*/
        {
            var fieldCount = recordData.Count;

            if (fieldCount == 0)
            {
                return(ValueBuffer.Empty);
            }

            var values = new object[fieldCount];

            _processValuesAction?.Invoke(values);

            for (var i = 0; i < fieldCount; i++)
            {
                values[i] = recordData.Values.ToList()[i];
            }

            var idx = 0;

            foreach (var bsonElement in recordData)
            {
                values[idx] = bsonElement;
                idx++;
            }

            return(valueBufferShaper.Shape(new ValueBuffer(values)));
        }