From 5e4b6aac8a9fd42e9ffe27a73623d3d81e5d848d Mon Sep 17 00:00:00 2001 From: Jason Elie Bou Kheir <5115126+jasonboukheir@users.noreply.github.com> Date: Fri, 25 Mar 2022 11:20:03 -0700 Subject: [PATCH] feat(transactiongroup): add generic methods for constructing `TransactionGroup` re #126 --- .../Transaction/TransactionGroup.meta | 8 + .../TransactionGroup.Generic.gen.cs | 218 ++++++++++++++++++ .../TransactionGroup.Generic.gen.cs.meta | 11 + .../TransactionGroup.Generic.tt | 51 ++++ .../TransactionGroup.Generic.tt.meta | 7 + 5 files changed, 295 insertions(+) create mode 100644 Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup.meta create mode 100644 Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.gen.cs create mode 100644 Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.gen.cs.meta create mode 100644 Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.tt create mode 100644 Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.tt.meta diff --git a/Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup.meta b/Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup.meta new file mode 100644 index 000000000..4ca9ddd46 --- /dev/null +++ b/Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e64297f327f8e4c6588781388a97dc31 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.gen.cs b/Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.gen.cs new file mode 100644 index 000000000..f52b772a9 --- /dev/null +++ b/Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.gen.cs @@ -0,0 +1,218 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; + +namespace AlgoSdk +{ + public partial struct TransactionGroup + { + public static TransactionGroup Of(in T0 txn0) + where T0 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId()); + } + public static TransactionGroup Of(in T0 txn0, in T1 txn1) + where T0 : IEquatable, ITransaction + where T1 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId(), txn1.GetId()); + } + public static TransactionGroup Of(in T0 txn0, in T1 txn1, in T2 txn2) + where T0 : IEquatable, ITransaction + where T1 : IEquatable, ITransaction + where T2 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId(), txn1.GetId(), txn2.GetId()); + } + public static TransactionGroup Of(in T0 txn0, in T1 txn1, in T2 txn2, in T3 txn3) + where T0 : IEquatable, ITransaction + where T1 : IEquatable, ITransaction + where T2 : IEquatable, ITransaction + where T3 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId(), txn1.GetId(), txn2.GetId(), txn3.GetId()); + } + public static TransactionGroup Of(in T0 txn0, in T1 txn1, in T2 txn2, in T3 txn3, in T4 txn4) + where T0 : IEquatable, ITransaction + where T1 : IEquatable, ITransaction + where T2 : IEquatable, ITransaction + where T3 : IEquatable, ITransaction + where T4 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId(), txn1.GetId(), txn2.GetId(), txn3.GetId(), txn4.GetId()); + } + public static TransactionGroup Of(in T0 txn0, in T1 txn1, in T2 txn2, in T3 txn3, in T4 txn4, in T5 txn5) + where T0 : IEquatable, ITransaction + where T1 : IEquatable, ITransaction + where T2 : IEquatable, ITransaction + where T3 : IEquatable, ITransaction + where T4 : IEquatable, ITransaction + where T5 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId(), txn1.GetId(), txn2.GetId(), txn3.GetId(), txn4.GetId(), txn5.GetId()); + } + public static TransactionGroup Of(in T0 txn0, in T1 txn1, in T2 txn2, in T3 txn3, in T4 txn4, in T5 txn5, in T6 txn6) + where T0 : IEquatable, ITransaction + where T1 : IEquatable, ITransaction + where T2 : IEquatable, ITransaction + where T3 : IEquatable, ITransaction + where T4 : IEquatable, ITransaction + where T5 : IEquatable, ITransaction + where T6 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId(), txn1.GetId(), txn2.GetId(), txn3.GetId(), txn4.GetId(), txn5.GetId(), txn6.GetId()); + } + public static TransactionGroup Of(in T0 txn0, in T1 txn1, in T2 txn2, in T3 txn3, in T4 txn4, in T5 txn5, in T6 txn6, in T7 txn7) + where T0 : IEquatable, ITransaction + where T1 : IEquatable, ITransaction + where T2 : IEquatable, ITransaction + where T3 : IEquatable, ITransaction + where T4 : IEquatable, ITransaction + where T5 : IEquatable, ITransaction + where T6 : IEquatable, ITransaction + where T7 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId(), txn1.GetId(), txn2.GetId(), txn3.GetId(), txn4.GetId(), txn5.GetId(), txn6.GetId(), txn7.GetId()); + } + public static TransactionGroup Of(in T0 txn0, in T1 txn1, in T2 txn2, in T3 txn3, in T4 txn4, in T5 txn5, in T6 txn6, in T7 txn7, in T8 txn8) + where T0 : IEquatable, ITransaction + where T1 : IEquatable, ITransaction + where T2 : IEquatable, ITransaction + where T3 : IEquatable, ITransaction + where T4 : IEquatable, ITransaction + where T5 : IEquatable, ITransaction + where T6 : IEquatable, ITransaction + where T7 : IEquatable, ITransaction + where T8 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId(), txn1.GetId(), txn2.GetId(), txn3.GetId(), txn4.GetId(), txn5.GetId(), txn6.GetId(), txn7.GetId(), txn8.GetId()); + } + public static TransactionGroup Of(in T0 txn0, in T1 txn1, in T2 txn2, in T3 txn3, in T4 txn4, in T5 txn5, in T6 txn6, in T7 txn7, in T8 txn8, in T9 txn9) + where T0 : IEquatable, ITransaction + where T1 : IEquatable, ITransaction + where T2 : IEquatable, ITransaction + where T3 : IEquatable, ITransaction + where T4 : IEquatable, ITransaction + where T5 : IEquatable, ITransaction + where T6 : IEquatable, ITransaction + where T7 : IEquatable, ITransaction + where T8 : IEquatable, ITransaction + where T9 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId(), txn1.GetId(), txn2.GetId(), txn3.GetId(), txn4.GetId(), txn5.GetId(), txn6.GetId(), txn7.GetId(), txn8.GetId(), txn9.GetId()); + } + public static TransactionGroup Of(in T0 txn0, in T1 txn1, in T2 txn2, in T3 txn3, in T4 txn4, in T5 txn5, in T6 txn6, in T7 txn7, in T8 txn8, in T9 txn9, in T10 txn10) + where T0 : IEquatable, ITransaction + where T1 : IEquatable, ITransaction + where T2 : IEquatable, ITransaction + where T3 : IEquatable, ITransaction + where T4 : IEquatable, ITransaction + where T5 : IEquatable, ITransaction + where T6 : IEquatable, ITransaction + where T7 : IEquatable, ITransaction + where T8 : IEquatable, ITransaction + where T9 : IEquatable, ITransaction + where T10 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId(), txn1.GetId(), txn2.GetId(), txn3.GetId(), txn4.GetId(), txn5.GetId(), txn6.GetId(), txn7.GetId(), txn8.GetId(), txn9.GetId(), txn10.GetId()); + } + public static TransactionGroup Of(in T0 txn0, in T1 txn1, in T2 txn2, in T3 txn3, in T4 txn4, in T5 txn5, in T6 txn6, in T7 txn7, in T8 txn8, in T9 txn9, in T10 txn10, in T11 txn11) + where T0 : IEquatable, ITransaction + where T1 : IEquatable, ITransaction + where T2 : IEquatable, ITransaction + where T3 : IEquatable, ITransaction + where T4 : IEquatable, ITransaction + where T5 : IEquatable, ITransaction + where T6 : IEquatable, ITransaction + where T7 : IEquatable, ITransaction + where T8 : IEquatable, ITransaction + where T9 : IEquatable, ITransaction + where T10 : IEquatable, ITransaction + where T11 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId(), txn1.GetId(), txn2.GetId(), txn3.GetId(), txn4.GetId(), txn5.GetId(), txn6.GetId(), txn7.GetId(), txn8.GetId(), txn9.GetId(), txn10.GetId(), txn11.GetId()); + } + public static TransactionGroup Of(in T0 txn0, in T1 txn1, in T2 txn2, in T3 txn3, in T4 txn4, in T5 txn5, in T6 txn6, in T7 txn7, in T8 txn8, in T9 txn9, in T10 txn10, in T11 txn11, in T12 txn12) + where T0 : IEquatable, ITransaction + where T1 : IEquatable, ITransaction + where T2 : IEquatable, ITransaction + where T3 : IEquatable, ITransaction + where T4 : IEquatable, ITransaction + where T5 : IEquatable, ITransaction + where T6 : IEquatable, ITransaction + where T7 : IEquatable, ITransaction + where T8 : IEquatable, ITransaction + where T9 : IEquatable, ITransaction + where T10 : IEquatable, ITransaction + where T11 : IEquatable, ITransaction + where T12 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId(), txn1.GetId(), txn2.GetId(), txn3.GetId(), txn4.GetId(), txn5.GetId(), txn6.GetId(), txn7.GetId(), txn8.GetId(), txn9.GetId(), txn10.GetId(), txn11.GetId(), txn12.GetId()); + } + public static TransactionGroup Of(in T0 txn0, in T1 txn1, in T2 txn2, in T3 txn3, in T4 txn4, in T5 txn5, in T6 txn6, in T7 txn7, in T8 txn8, in T9 txn9, in T10 txn10, in T11 txn11, in T12 txn12, in T13 txn13) + where T0 : IEquatable, ITransaction + where T1 : IEquatable, ITransaction + where T2 : IEquatable, ITransaction + where T3 : IEquatable, ITransaction + where T4 : IEquatable, ITransaction + where T5 : IEquatable, ITransaction + where T6 : IEquatable, ITransaction + where T7 : IEquatable, ITransaction + where T8 : IEquatable, ITransaction + where T9 : IEquatable, ITransaction + where T10 : IEquatable, ITransaction + where T11 : IEquatable, ITransaction + where T12 : IEquatable, ITransaction + where T13 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId(), txn1.GetId(), txn2.GetId(), txn3.GetId(), txn4.GetId(), txn5.GetId(), txn6.GetId(), txn7.GetId(), txn8.GetId(), txn9.GetId(), txn10.GetId(), txn11.GetId(), txn12.GetId(), txn13.GetId()); + } + public static TransactionGroup Of(in T0 txn0, in T1 txn1, in T2 txn2, in T3 txn3, in T4 txn4, in T5 txn5, in T6 txn6, in T7 txn7, in T8 txn8, in T9 txn9, in T10 txn10, in T11 txn11, in T12 txn12, in T13 txn13, in T14 txn14) + where T0 : IEquatable, ITransaction + where T1 : IEquatable, ITransaction + where T2 : IEquatable, ITransaction + where T3 : IEquatable, ITransaction + where T4 : IEquatable, ITransaction + where T5 : IEquatable, ITransaction + where T6 : IEquatable, ITransaction + where T7 : IEquatable, ITransaction + where T8 : IEquatable, ITransaction + where T9 : IEquatable, ITransaction + where T10 : IEquatable, ITransaction + where T11 : IEquatable, ITransaction + where T12 : IEquatable, ITransaction + where T13 : IEquatable, ITransaction + where T14 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId(), txn1.GetId(), txn2.GetId(), txn3.GetId(), txn4.GetId(), txn5.GetId(), txn6.GetId(), txn7.GetId(), txn8.GetId(), txn9.GetId(), txn10.GetId(), txn11.GetId(), txn12.GetId(), txn13.GetId(), txn14.GetId()); + } + public static TransactionGroup Of(in T0 txn0, in T1 txn1, in T2 txn2, in T3 txn3, in T4 txn4, in T5 txn5, in T6 txn6, in T7 txn7, in T8 txn8, in T9 txn9, in T10 txn10, in T11 txn11, in T12 txn12, in T13 txn13, in T14 txn14, in T15 txn15) + where T0 : IEquatable, ITransaction + where T1 : IEquatable, ITransaction + where T2 : IEquatable, ITransaction + where T3 : IEquatable, ITransaction + where T4 : IEquatable, ITransaction + where T5 : IEquatable, ITransaction + where T6 : IEquatable, ITransaction + where T7 : IEquatable, ITransaction + where T8 : IEquatable, ITransaction + where T9 : IEquatable, ITransaction + where T10 : IEquatable, ITransaction + where T11 : IEquatable, ITransaction + where T12 : IEquatable, ITransaction + where T13 : IEquatable, ITransaction + where T14 : IEquatable, ITransaction + where T15 : IEquatable, ITransaction + { + return TransactionGroup.Of(txn0.GetId(), txn1.GetId(), txn2.GetId(), txn3.GetId(), txn4.GetId(), txn5.GetId(), txn6.GetId(), txn7.GetId(), txn8.GetId(), txn9.GetId(), txn10.GetId(), txn11.GetId(), txn12.GetId(), txn13.GetId(), txn14.GetId(), txn15.GetId()); + } + } +} diff --git a/Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.gen.cs.meta b/Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.gen.cs.meta new file mode 100644 index 000000000..a506d4032 --- /dev/null +++ b/Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.gen.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 330cbd4930fd54bea9486779b910f3f8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.tt b/Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.tt new file mode 100644 index 000000000..732e5bc12 --- /dev/null +++ b/Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.tt @@ -0,0 +1,51 @@ +<#@ assembly name="System.Core" #> +<#@ output extension=".gen.cs" #> +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; + +namespace AlgoSdk +{ + public partial struct TransactionGroup + { +<# +var MAX_SIZE = 16; +var GENERIC_DEF = ""; +var ARGS = ""; +var CONSTRAINTS = ""; +var CALL_ARGS = ""; +for (var i = 0; i < MAX_SIZE; i++) +{ + var typeName = "T" + i.ToString(); + var fieldName = "txn" + i.ToString(); + + if (i > 0) GENERIC_DEF += ", "; + GENERIC_DEF += typeName; + + if (i > 0) ARGS += ", "; + ARGS += "in " + typeName + " " + fieldName; + + if (i > 0) CONSTRAINTS += "\n "; + CONSTRAINTS += "where " + typeName + " : IEquatable<" + typeName + ">, ITransaction"; + + if (i > 0) CALL_ARGS += ", "; + CALL_ARGS += fieldName + ".GetId()"; +#> + public static TransactionGroup Of<<#=GENERIC_DEF#>>(<#=ARGS#>) + <#=CONSTRAINTS#> + { + return TransactionGroup.Of(<#=CALL_ARGS#>); + } +<# +} +#> + } +} diff --git a/Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.tt.meta b/Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.tt.meta new file mode 100644 index 000000000..2e69c99a0 --- /dev/null +++ b/Runtime/CareBoo.AlgoSdk/Transaction/TransactionGroup/TransactionGroup.Generic.tt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ebb90b3d6ae764000a515ee7f2ae0658 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: