Files
RobustToolbox/Robust.Shared/Toolshed/Commands/Math/ComparisonCommands.cs
T
Leon FriedrichandGitHub 9af119f57a Toolshed Rejig (#5455)
* Toolshed Rejig

* shorten hint string

* Try fix conflicts. Ill make with work later

* bodge

* Fix ProtoIdTypeParser assert

* comment

* AllEntities

* Remove more linq from WhereCommand

* better help strings

* Add ContainsCommand

* loc strings

* Add contains command description

* Add $self variable

* Errors for writing to readonly variables

* A
2024-12-21 17:49:11 +11:00

70 lines
1.7 KiB
C#

using System;
using System.Numerics;
namespace Robust.Shared.Toolshed.Commands.Math;
[ToolshedCommand(Name = ">")]
public sealed class GreaterThanCommand : ToolshedCommand
{
[CommandImplementation, TakesPipedTypeAsGeneric]
public bool Comparison<T>([PipedArgument] T x, T y) where T : INumber<T>
{
return x > y;
}
}
[ToolshedCommand(Name = "<")]
public sealed class LessThanCommand : ToolshedCommand
{
[CommandImplementation, TakesPipedTypeAsGeneric]
public bool Comparison<T>([PipedArgument] T x, T y)
where T : IComparisonOperators<T, T, bool>
{
return x > y;
}
}
[ToolshedCommand(Name = ">=")]
public sealed class GreaterThanOrEqualCommand : ToolshedCommand
{
[CommandImplementation, TakesPipedTypeAsGeneric]
public bool Comparison<T>([PipedArgument] T x, T y)
where T : INumber<T>
{
return x >= y;
}
}
[ToolshedCommand(Name = "<=")]
public sealed class LessThanOrEqualCommand : ToolshedCommand
{
[CommandImplementation, TakesPipedTypeAsGeneric]
public bool Comparison<T>([PipedArgument] T x, T y)
where T : IComparisonOperators<T, T, bool>
{
return x <= y;
}
}
[ToolshedCommand(Name = "==")]
public sealed class EqualCommand : ToolshedCommand
{
[CommandImplementation, TakesPipedTypeAsGeneric]
public bool Comparison<T>([PipedArgument] T x, T y)
where T : IEquatable<T>
{
return x.Equals(y);
}
}
[ToolshedCommand(Name = "!=")]
public sealed class NotEqualCommand : ToolshedCommand
{
[CommandImplementation, TakesPipedTypeAsGeneric]
public bool Comparison<T>([PipedArgument] T x, T y)
where T : IEquatable<T>
{
return !x.Equals(y);
}
}