mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-03 02:27:08 +02:00
* Save work. * three billion tweaks * Rune-aware parser. * a * all shedded out for the night * a * oogh * Publicizes a lot of common generic commands, so custom toolshed envs can include them. * Implement parsing for all number types. * i think i might implode * a * Tests. * a * Enum parser test. * do u like parsers * oopls * ug fixes * Toolshed is approaching a non-insignificant part of the engine's size. * Pool toolshed's tests, also type tests. * bwa * tests pass :yay: * Update Robust.Shared/CVars.cs Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com> * how did this not fail tests * awa * many levels of silly --------- Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com> Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
23 lines
617 B
C#
23 lines
617 B
C#
using System.Collections;
|
|
using System.Linq;
|
|
|
|
namespace Robust.Shared.Toolshed.Commands.Generic;
|
|
|
|
[ToolshedCommand]
|
|
public sealed class IsEmptyCommand : ToolshedCommand
|
|
{
|
|
[CommandImplementation, TakesPipedTypeAsGeneric]
|
|
public bool IsEmpty<T>([PipedArgument] T? input, [CommandInverted] bool inverted)
|
|
{
|
|
if (input is null)
|
|
return true ^ inverted; // Null is empty for all we care.
|
|
|
|
if (input is IEnumerable @enum)
|
|
{
|
|
return !@enum.Cast<object?>().Any() ^ inverted;
|
|
}
|
|
|
|
return false ^ inverted; // Not a collection, cannot be empty.
|
|
}
|
|
}
|