MaxFunction.cs 591 B

12345678910111213141516171819202122
  1. namespace Lua.Standard.Mathematics;
  2. public sealed class MaxFunction : LuaFunction
  3. {
  4. public static readonly MaxFunction Instance = new();
  5. public override string Name => "max";
  6. protected override ValueTask<int> InvokeAsyncCore(LuaFunctionExecutionContext context, Memory<LuaValue> buffer, CancellationToken cancellationToken)
  7. {
  8. var x = context.GetArgument<double>(0);
  9. for (int i = 1; i < context.ArgumentCount; i++)
  10. {
  11. x = Math.Max(x, context.GetArgument<double>(i));
  12. }
  13. buffer.Span[0] = x;
  14. return new(1);
  15. }
  16. }