chr
2026-04-05 fe750b791d5b517cc4e9bc8e99a9a75139a0cfba
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
 
namespace OpenTap
{
    /// <summary> Action(T) IInvokable. </summary>
    readonly struct Invokable<T> : IInvokable<T>
    {
        readonly Action<T> action;
        public Invokable(Action<T> action) => this.action = action;
 
        public void Invoke(T v) => action(v);
 
        /// <summary> Add an ignored argument. </summary>
        public Invokable<T, T2> AddArg<T2>()
        {
            var act = action;
            return new Invokable<T, T2>((a1, a2) => act(a1));
        }
    }
    
    /// <summary> Action(T) IInvokable. </summary>
    readonly struct Invokable<T, T2> : IInvokable<T,T2>
    {
        readonly Action<T,T2> action;
        public Invokable(Action<T,T2> action) => this.action = action;
 
        public void Invoke(T v, T2 v2) => action(v, v2);
    }
}