Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
MethodSignatureEncoder.cs
Go to the documentation of this file.
2
3public readonly struct MethodSignatureEncoder
4{
5 public BlobBuilder Builder { get; }
6
7 public bool HasVarArgs { get; }
8
9 public MethodSignatureEncoder(BlobBuilder builder, bool hasVarArgs)
10 {
11 Builder = builder;
12 HasVarArgs = hasVarArgs;
13 }
14
15 public void Parameters(int parameterCount, out ReturnTypeEncoder returnType, out ParametersEncoder parameters)
16 {
17 if ((uint)parameterCount > 536870911u)
18 {
19 Throw.ArgumentOutOfRange("parameterCount");
20 }
21 Builder.WriteCompressedInteger(parameterCount);
22 returnType = new ReturnTypeEncoder(Builder);
23 parameters = new ParametersEncoder(Builder, HasVarArgs);
24 }
25
26 public void Parameters(int parameterCount, Action<ReturnTypeEncoder> returnType, Action<ParametersEncoder> parameters)
27 {
28 if (returnType == null)
29 {
30 Throw.ArgumentNull("returnType");
31 }
32 if (parameters == null)
33 {
34 Throw.ArgumentNull("parameters");
35 }
36 Parameters(parameterCount, out var returnType2, out var parameters2);
37 returnType(returnType2);
38 parameters(parameters2);
39 }
40}
static void ArgumentNull(string parameterName)
Definition Throw.cs:110
static void ArgumentOutOfRange(string parameterName)
Definition Throw.cs:145
void Parameters(int parameterCount, Action< ReturnTypeEncoder > returnType, Action< ParametersEncoder > parameters)
void Parameters(int parameterCount, out ReturnTypeEncoder returnType, out ParametersEncoder parameters)