/// <summary> /// Invoke the given action on a cached buffer that returns the given type. /// </summary> /// <example> /// return BufferHelper.BufferInvoke((NativeBuffer buffer) => { return string.Empty; }); /// </example> public static T BufferInvoke <BufferType, T>(Func <BufferType, T> func) where BufferType : HeapBuffer { var wrapper = new FuncWrapper <BufferType, T> { Func = func }; return(BufferInvoke <FuncWrapper <BufferType, T>, BufferType, T>(ref wrapper)); }
/// <summary> /// Invoke the given action on a cached buffer that returns the given type. /// </summary> /// <example> /// return BufferHelper.BufferInvoke((NativeBuffer buffer) => { return string.Empty; }); /// </example> public static T BufferInvoke <TBuffer, T>(Func <TBuffer, T> func) where TBuffer : HeapBuffer { var wrapper = new FuncWrapper <TBuffer, T> { Func = func }; return(BufferInvoke <FuncWrapper <TBuffer, T>, TBuffer, T>(ref wrapper)); }