Files
RobustToolbox/Robust.Shared/Toolshed/Commands/Generic/TeeCommand.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

32 lines
1.0 KiB
C#

using System;
using System.Collections.Generic;
using Robust.Shared.Toolshed.Syntax;
using Robust.Shared.Toolshed.TypeParsers;
namespace Robust.Shared.Toolshed.Commands.Generic;
[ToolshedCommand]
public sealed class TeeCommand : ToolshedCommand
{
private static Type[] _parsers = [typeof(MapBlockOutputParser)];
public override Type[] TypeParameterParsers => _parsers;
// Take in some input, use it to evaluate some block, and then just keep passing along the input, disregarding the
// output of the block. I.e., this behaves like the standard tee tee command, where the block is the "file".
[CommandImplementation, TakesPipedTypeAsGeneric]
public IEnumerable<TIn> Tee<TOut, TIn>(
IInvocationContext ctx,
[PipedArgument] IEnumerable<TIn> value,
Block<TIn, TOut> block
)
{
foreach (var x in value)
{
block.Invoke(x, ctx);
if (ctx.HasErrors)
yield break;
yield return x;
}
}
}