/// <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)); } }