Пример #1
0
        /// <summary>
        /// Read-modify-write with Span input
        /// </summary>
        /// <typeparam name="Input"></typeparam>
        /// <typeparam name="Output"></typeparam>
        /// <typeparam name="Context"></typeparam>
        /// <typeparam name="Functions"></typeparam>
        /// <param name="clientSession"></param>
        /// <param name="key"></param>
        /// <param name="input"></param>
        /// <param name="userContext"></param>
        /// <param name="serialNo"></param>
        /// <returns></returns>
        public static Status RMW <Input, Output, Context, Functions>(this ClientSession <SpanByte, SpanByte, Input, Output, Context, Functions> clientSession, ReadOnlySpan <byte> key, ref Input input, Context userContext = default, long serialNo = 0)
            where Functions : IFunctions <SpanByte, SpanByte, Input, Output, Context>
        {
            fixed(byte *k = key)
            {
                var _key = SpanByte.FromFixedSpan(key);

                return(clientSession.RMW(ref _key, ref input, userContext, serialNo));
            }
        }