diff --git a/.gitattributes b/.gitattributes index 8059f23d196..05b1a132398 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,4 @@ **/module_bindings/** linguist-generated=true eol=lf +**/ModuleBindings/** linguist-generated=true eol=lf /docs/llms/** linguist-generated=true /docs/llms/*-details.json linguist-generated=false diff --git a/crates/codegen/src/unrealcpp.rs b/crates/codegen/src/unrealcpp.rs index bab5d0bfed5..d55ffa5e04e 100644 --- a/crates/codegen/src/unrealcpp.rs +++ b/crates/codegen/src/unrealcpp.rs @@ -1,7 +1,7 @@ //! Autogenerated Unreal‑C++ code‑gen backend for SpacetimeDB CLI use crate::code_indenter::CodeIndenter; use crate::util::{ - fmt_fn, iter_table_names_and_types, iter_tables, print_auto_generated_file_comment, + fmt_fn, iter_table_names_and_types, iter_tables, iter_views, print_auto_generated_file_comment, print_auto_generated_version_comment, CodegenVisibility, }; use crate::util::{iter_indexes, iter_procedures, iter_reducers}; @@ -16,10 +16,13 @@ use spacetimedb_schema::schema::{Schema, TableSchema}; use spacetimedb_schema::type_for_generate::{ AlgebraicTypeDef, AlgebraicTypeUse, PlainEnumTypeDef, ProductTypeDef, SumTypeDef, }; +use std::collections::HashMap; use std::fmt::{self}; use std::ops::Deref; use std::path::Path; +const UE_TVARIANT_SAFE_ALTERNATIVES: usize = 255; + pub struct UnrealCpp<'opts> { pub module_name: &'opts str, pub uproject_dir: &'opts Path, @@ -916,6 +919,14 @@ impl Lang for UnrealCpp<'_> { ); } + for (_, _, product_type_ref) in iter_table_names_and_types(module, options.visibility) { + includes.insert(format!( + "ModuleBindings/Types/{}Type.g.h", + type_ref_name(self.module_prefix, module, product_type_ref) + )); + } + includes.insert("QueryBuilder/query_builder.h".to_string()); + // Convert to sorted vector let mut include_vec: Vec = includes.into_iter().collect(); include_vec.sort(); @@ -989,8 +1000,24 @@ impl Lang for UnrealCpp<'_> { self.module_name, ); + // QueryBuilder types + generate_query_builder_types( + &mut client_h, + module, + options.visibility, + self.module_prefix, + &self.get_api_macro(), + self.module_name, + ); + // SubscriptionBuilder class - generate_subscription_builder_class(&mut client_h, self.module_prefix, &self.get_api_macro()); + generate_subscription_builder_class( + &mut client_h, + module, + options.visibility, + self.module_prefix, + &self.get_api_macro(), + ); // SubscriptionHandle class generate_subscription_handle_class(&mut client_h, self.module_prefix, &self.get_api_macro()); @@ -2032,11 +2059,16 @@ fn generate_reducer_bindings( module_name: &str, ) { let reducer_count: usize = iter_reducers(module, visibility).count(); + let use_large_reducer_storage = reducer_count > UE_TVARIANT_SAFE_ALTERNATIVES; // --------------------------------------------------------------------- // Per-module typed Reducer tagged union + typed Event // --------------------------------------------------------------------- - writeln!(output, "UENUM(BlueprintType, Category = \"SpacetimeDB\")"); - writeln!(output, "enum class E{module_prefix}ReducerTag : uint8"); + if !use_large_reducer_storage { + writeln!(output, "UENUM(BlueprintType, Category = \"SpacetimeDB\")"); + writeln!(output, "enum class E{module_prefix}ReducerTag : uint8"); + } else { + writeln!(output, "enum class E{module_prefix}ReducerTag : int32"); + } writeln!(output, "{{"); { let mut first = true; @@ -2058,6 +2090,30 @@ fn generate_reducer_bindings( writeln!(output, "}};"); writeln!(output); + if use_large_reducer_storage { + writeln!(output, "struct F{module_prefix}ReducerArgsStorageBase"); + writeln!(output, "{{"); + writeln!( + output, + " virtual ~F{module_prefix}ReducerArgsStorageBase() = default;" + ); + writeln!(output, "}};"); + writeln!(output); + writeln!(output, "template"); + writeln!( + output, + "struct T{module_prefix}ReducerArgsStorage final : F{module_prefix}ReducerArgsStorageBase" + ); + writeln!(output, "{{"); + writeln!( + output, + " explicit T{module_prefix}ReducerArgsStorage(const T& InValue) : Value(InValue) {{}}" + ); + writeln!(output, " T Value;"); + writeln!(output, "}};"); + writeln!(output); + } + // F{module_prefix}Reducer: tagged union over reducer args, with optional metadata writeln!(output, "USTRUCT(BlueprintType)"); writeln!(output, "struct {api_macro} F{module_prefix}Reducer"); @@ -2066,28 +2122,36 @@ fn generate_reducer_bindings( writeln!(output); writeln!(output, "public:"); writeln!(output, " UPROPERTY(BlueprintReadOnly, Category = \"SpacetimeDB\")"); - writeln!( - output, - " E{module_prefix}ReducerTag Tag = static_cast(0);" - ); + if !use_large_reducer_storage { + writeln!( + output, + " E{module_prefix}ReducerTag Tag = static_cast(0);" + ); + } else { + writeln!(output, " int32 Tag = 0;"); + } writeln!(output); - write!(output, " TVariant<"); - { - let mut first = true; - for reducer in iter_reducers(module, visibility) { - let reducer_pascal = format!("{module_prefix}{}", reducer.name.deref().to_case(Case::Pascal)); - if !first { - write!(output, ", "); - } else { - first = false; + if !use_large_reducer_storage { + write!(output, " TVariant<"); + { + let mut first = true; + for reducer in iter_reducers(module, visibility) { + let reducer_pascal = format!("{module_prefix}{}", reducer.name.deref().to_case(Case::Pascal)); + if !first { + write!(output, ", "); + } else { + first = false; + } + write!(output, "F{reducer_pascal}Args"); } - write!(output, "F{reducer_pascal}Args"); } + if reducer_count == 0 { + write!(output, "FSpacetimeDBUnit"); + } + writeln!(output, "> Data;"); + } else { + writeln!(output, " TSharedPtr Data;"); } - if reducer_count == 0 { - write!(output, "FSpacetimeDBUnit"); - } - writeln!(output, "> Data;"); writeln!(output); writeln!(output, " // Optional metadata"); writeln!(output, " UPROPERTY(BlueprintReadOnly, Category = \"SpacetimeDB\")"); @@ -2106,16 +2170,34 @@ fn generate_reducer_bindings( ); writeln!(output, " {{"); writeln!(output, " F{module_prefix}Reducer Out;"); - writeln!(output, " Out.Tag = E{module_prefix}ReducerTag::{reducer_name};"); - writeln!(output, " Out.Data.Set(Value);"); + if !use_large_reducer_storage { + writeln!(output, " Out.Tag = E{module_prefix}ReducerTag::{reducer_name};"); + writeln!(output, " Out.Data.Set(Value);"); + } else { + writeln!( + output, + " Out.Tag = static_cast(E{module_prefix}ReducerTag::{reducer_name});" + ); + writeln!( + output, + " Out.Data = MakeShared>(Value);" + ); + } writeln!(output, " Out.ReducerName = TEXT(\"{}\");", reducer.name.deref()); writeln!(output, " return Out;"); writeln!(output, " }}"); writeln!(output); - writeln!( - output, - " FORCEINLINE bool Is{reducer_name}() const {{ return Tag == E{module_prefix}ReducerTag::{reducer_name}; }}" - ); + if !use_large_reducer_storage { + writeln!( + output, + " FORCEINLINE bool Is{reducer_name}() const {{ return Tag == E{module_prefix}ReducerTag::{reducer_name}; }}" + ); + } else { + writeln!( + output, + " FORCEINLINE bool Is{reducer_name}() const {{ return Tag == static_cast(E{module_prefix}ReducerTag::{reducer_name}); }}" + ); + } writeln!( output, " FORCEINLINE F{reducer_pascal}Args GetAs{reducer_name}() const" @@ -2125,7 +2207,16 @@ fn generate_reducer_bindings( output, " ensureMsgf(Is{reducer_name}(), TEXT(\"Reducer does not hold {reducer_name}!\"));" ); - writeln!(output, " return Data.Get();"); + if !use_large_reducer_storage { + writeln!(output, " return Data.Get();"); + } else { + writeln!(output, " const auto* TypedData = static_cast*>(Data.Get());"); + writeln!(output, " ensureMsgf(TypedData != nullptr, TEXT(\"Reducer payload is missing or has the wrong type for {reducer_name}!\"));"); + writeln!( + output, + " return TypedData ? TypedData->Value : F{reducer_pascal}Args();" + ); + } writeln!(output, " }}"); writeln!(output); } @@ -2139,14 +2230,28 @@ fn generate_reducer_bindings( writeln!(output, " {{"); for reducer in iter_reducers(module, visibility) { let reducer_name = reducer.name.deref().to_case(Case::Pascal); - writeln!(output, " case E{module_prefix}ReducerTag::{reducer_name}:"); + if !use_large_reducer_storage { + writeln!(output, " case E{module_prefix}ReducerTag::{reducer_name}:"); + } else { + writeln!( + output, + " case static_cast(E{module_prefix}ReducerTag::{reducer_name}):" + ); + } writeln!( output, " return GetAs{reducer_name}() == Other.GetAs{reducer_name}();" ); } if reducer_count == 0 { - writeln!(output, " case E{module_prefix}ReducerTag::None:"); + if !use_large_reducer_storage { + writeln!(output, " case E{module_prefix}ReducerTag::None:"); + } else { + writeln!( + output, + " case static_cast(E{module_prefix}ReducerTag::None):" + ); + } writeln!(output, " return true;"); } @@ -2948,7 +3053,736 @@ fn generate_remote_procedures_class( writeln!(output); } -fn generate_subscription_builder_class(output: &mut UnrealCppAutogen, module_prefix: &str, api_macro: &str) { +fn generate_query_builder_types( + output: &mut UnrealCppAutogen, + module: &ModuleDef, + visibility: CodegenVisibility, + module_prefix: &str, + api_macro: &str, + module_name: &str, +) { + #[derive(Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)] + enum BlueprintPredicateKind { + Bool, + U8, + I32, + I64, + F32, + F64, + String, + Identity, + ConnectionId, + Timestamp, + Uuid, + } + + fn supports_blueprint_query_filter(module: &ModuleDef, ty: &AlgebraicTypeUse) -> bool { + match ty { + AlgebraicTypeUse::Primitive(_) + | AlgebraicTypeUse::String + | AlgebraicTypeUse::Identity + | AlgebraicTypeUse::ConnectionId + | AlgebraicTypeUse::Timestamp + | AlgebraicTypeUse::Uuid => is_blueprintable(module, ty), + _ => false, + } + } + + fn blueprint_predicate_kind(ty: &AlgebraicTypeUse) -> Option { + match ty { + AlgebraicTypeUse::Primitive(PrimitiveType::Bool) => Some(BlueprintPredicateKind::Bool), + AlgebraicTypeUse::Primitive(PrimitiveType::U8) => Some(BlueprintPredicateKind::U8), + AlgebraicTypeUse::Primitive(PrimitiveType::I32) => Some(BlueprintPredicateKind::I32), + AlgebraicTypeUse::Primitive(PrimitiveType::I64) => Some(BlueprintPredicateKind::I64), + AlgebraicTypeUse::Primitive(PrimitiveType::F32) => Some(BlueprintPredicateKind::F32), + AlgebraicTypeUse::Primitive(PrimitiveType::F64) => Some(BlueprintPredicateKind::F64), + AlgebraicTypeUse::String => Some(BlueprintPredicateKind::String), + AlgebraicTypeUse::Identity => Some(BlueprintPredicateKind::Identity), + AlgebraicTypeUse::ConnectionId => Some(BlueprintPredicateKind::ConnectionId), + AlgebraicTypeUse::Timestamp => Some(BlueprintPredicateKind::Timestamp), + AlgebraicTypeUse::Uuid => Some(BlueprintPredicateKind::Uuid), + _ => None, + } + } + + fn blueprint_predicate_kind_name(kind: BlueprintPredicateKind) -> &'static str { + match kind { + BlueprintPredicateKind::Bool => "Bool", + BlueprintPredicateKind::U8 => "UInt8", + BlueprintPredicateKind::I32 => "Int32", + BlueprintPredicateKind::I64 => "Int64", + BlueprintPredicateKind::F32 => "Float", + BlueprintPredicateKind::F64 => "Double", + BlueprintPredicateKind::String => "String", + BlueprintPredicateKind::Identity => "Identity", + BlueprintPredicateKind::ConnectionId => "ConnectionId", + BlueprintPredicateKind::Timestamp => "Timestamp", + BlueprintPredicateKind::Uuid => "Uuid", + } + } + + fn blueprint_predicate_kinds() -> &'static [BlueprintPredicateKind] { + &[ + BlueprintPredicateKind::Bool, + BlueprintPredicateKind::U8, + BlueprintPredicateKind::I32, + BlueprintPredicateKind::I64, + BlueprintPredicateKind::F32, + BlueprintPredicateKind::F64, + BlueprintPredicateKind::String, + BlueprintPredicateKind::Identity, + BlueprintPredicateKind::ConnectionId, + BlueprintPredicateKind::Timestamp, + BlueprintPredicateKind::Uuid, + ] + } + + fn blueprint_predicate_kind_ty(kind: BlueprintPredicateKind) -> AlgebraicTypeUse { + match kind { + BlueprintPredicateKind::Bool => AlgebraicTypeUse::Primitive(PrimitiveType::Bool), + BlueprintPredicateKind::U8 => AlgebraicTypeUse::Primitive(PrimitiveType::U8), + BlueprintPredicateKind::I32 => AlgebraicTypeUse::Primitive(PrimitiveType::I32), + BlueprintPredicateKind::I64 => AlgebraicTypeUse::Primitive(PrimitiveType::I64), + BlueprintPredicateKind::F32 => AlgebraicTypeUse::Primitive(PrimitiveType::F32), + BlueprintPredicateKind::F64 => AlgebraicTypeUse::Primitive(PrimitiveType::F64), + BlueprintPredicateKind::String => AlgebraicTypeUse::String, + BlueprintPredicateKind::Identity => AlgebraicTypeUse::Identity, + BlueprintPredicateKind::ConnectionId => AlgebraicTypeUse::ConnectionId, + BlueprintPredicateKind::Timestamp => AlgebraicTypeUse::Timestamp, + BlueprintPredicateKind::Uuid => AlgebraicTypeUse::Uuid, + } + } + + fn blueprint_predicate_kind_supports_ordering(kind: BlueprintPredicateKind) -> bool { + !matches!( + kind, + BlueprintPredicateKind::Bool + | BlueprintPredicateKind::String + | BlueprintPredicateKind::Identity + | BlueprintPredicateKind::ConnectionId + | BlueprintPredicateKind::Uuid + ) + } + + fn blueprint_predicate_kind_spec( + module_prefix: &str, + module: &ModuleDef, + module_name: &str, + kind: BlueprintPredicateKind, + ) -> (String, bool, bool) { + let ty = blueprint_predicate_kind_ty(kind); + ( + cpp_ty_fmt_blueprint_compatible(module_prefix, module, &ty, module_name).to_string(), + should_pass_by_value_in_delegate(module, &ty), + blueprint_predicate_kind_supports_ordering(kind), + ) + } + + struct QueryBuilderSourceMeta { + row_struct: String, + cols_struct: String, + ix_cols_struct: String, + fields: Vec<(String, String, String, AlgebraicTypeUse)>, + singleton_indexed_fields: Vec, + source_name: String, + source_pascal: String, + can_be_lookup: bool, + } + + writeln!(output, "// QueryBuilder types"); + + let mut source_metas = Vec::::new(); + + let singleton_indexed_fields_for_schema = |schema: &TableSchema, product_type: &ProductTypeDef| { + let mut singleton_indexed_fields = Vec::::new(); + for (columns, constraints) in schema.backcompat_column_constraints() { + if columns.len() != 1 { + continue; + } + if !(constraints.has_indexed() || constraints.has_unique() || constraints.has_primary_key()) { + continue; + } + let col_idx = columns.iter().next().expect("singleton column").idx(); + let (field_name, _) = &product_type.elements[col_idx]; + singleton_indexed_fields.push(field_name.deref().to_case(Case::Pascal)); + } + singleton_indexed_fields + }; + + for table in iter_tables(module, visibility) { + let product_type = module.typespace_for_generate()[table.product_type_ref] + .as_product() + .expect("query builder source should be a product type"); + let row_struct = format!("F{}Type", type_ref_name(module_prefix, module, table.product_type_ref)); + let source_pascal = table.accessor_name.deref().to_case(Case::Pascal); + let schema = TableSchema::from_module_def(module, table, (), 0.into()) + .validated() + .expect("table schema should validate for query builder codegen"); + + let singleton_indexed_fields = singleton_indexed_fields_for_schema(&schema, product_type); + + let fields = product_type + .elements + .iter() + .map(|(field_name, field_ty)| { + ( + field_name.deref().to_string(), + field_name.deref().to_case(Case::Pascal), + cpp_ty_fmt_with_module(module_prefix, module, field_ty, module_name).to_string(), + field_ty.clone(), + ) + }) + .collect::>(); + + source_metas.push(QueryBuilderSourceMeta { + row_struct, + cols_struct: format!("F{module_prefix}{source_pascal}Cols"), + ix_cols_struct: format!("F{module_prefix}{source_pascal}IxCols"), + fields, + singleton_indexed_fields, + source_name: table.name.deref().to_string(), + source_pascal, + can_be_lookup: !table.is_event, + }); + } + + for view in iter_views(module) { + let product_type = module.typespace_for_generate()[view.product_type_ref] + .as_product() + .expect("query builder source should be a product type"); + let row_struct = format!("F{}Type", type_ref_name(module_prefix, module, view.product_type_ref)); + let source_pascal = view.accessor_name.deref().to_case(Case::Pascal); + let schema = TableSchema::from_view_def_for_codegen(module, view) + .validated() + .expect("view schema should validate for query builder codegen"); + + let singleton_indexed_fields = singleton_indexed_fields_for_schema(&schema, product_type); + + let fields = product_type + .elements + .iter() + .map(|(field_name, field_ty)| { + ( + field_name.deref().to_string(), + field_name.deref().to_case(Case::Pascal), + cpp_ty_fmt_with_module(module_prefix, module, field_ty, module_name).to_string(), + field_ty.clone(), + ) + }) + .collect::>(); + + source_metas.push(QueryBuilderSourceMeta { + row_struct, + cols_struct: format!("F{module_prefix}{source_pascal}Cols"), + ix_cols_struct: format!("F{module_prefix}{source_pascal}IxCols"), + fields, + singleton_indexed_fields, + source_name: view.name.deref().to_string(), + source_pascal, + can_be_lookup: true, + }); + } + + let mut row_struct_counts = HashMap::::new(); + for source_meta in &source_metas { + *row_struct_counts.entry(source_meta.row_struct.clone()).or_default() += 1; + } + for source_meta in &mut source_metas { + if row_struct_counts + .get(&source_meta.row_struct) + .copied() + .unwrap_or_default() + == 1 + { + let row_type_name = source_meta + .row_struct + .strip_prefix('F') + .and_then(|name| name.strip_suffix("Type")) + .expect("row struct should match F*Type"); + source_meta.cols_struct = format!("F{row_type_name}Cols"); + source_meta.ix_cols_struct = format!("F{row_type_name}IxCols"); + } + } + + source_metas.sort_by(|a, b| a.source_pascal.cmp(&b.source_pascal)); + + let mut declared_helper_structs = HashSet::::new(); + for source_meta in &source_metas { + if declared_helper_structs.insert(source_meta.cols_struct.clone()) { + writeln!(output, "struct {api_macro} {};", source_meta.cols_struct); + } + if declared_helper_structs.insert(source_meta.ix_cols_struct.clone()) { + writeln!(output, "struct {api_macro} {};", source_meta.ix_cols_struct); + } + } + writeln!(output); + + for source_meta in &source_metas { + let row_struct = &source_meta.row_struct; + let cols_struct = &source_meta.cols_struct; + let ix_cols_struct = &source_meta.ix_cols_struct; + let singleton_indexed_fields = &source_meta.singleton_indexed_fields; + + writeln!(output, "struct {api_macro} {cols_struct}"); + writeln!(output, "{{"); + writeln!(output, " explicit {cols_struct}(const char* TableName)"); + write!(output, " : "); + for (idx, (field_name_raw, field_name_pascal, _field_type, _field_ty)) in source_meta.fields.iter().enumerate() + { + if idx > 0 { + write!(output, ", "); + } + write!(output, "{}(TableName, \"{}\")", field_name_pascal, field_name_raw); + } + writeln!(output, " {{}}"); + writeln!(output); + for (_field_name_raw, field_name_pascal, field_type, _field_ty) in &source_meta.fields { + writeln!( + output, + " ::SpacetimeDB::query_builder::Col<{row_struct}, {field_type}> {field_name_pascal};" + ); + } + writeln!(output, "}};"); + writeln!(output); + + writeln!(output, "struct {api_macro} {ix_cols_struct}"); + writeln!(output, "{{"); + writeln!(output, " explicit {ix_cols_struct}(const char* TableName)"); + if !singleton_indexed_fields.is_empty() { + write!(output, " : "); + for (idx, (field_name_raw, field_name_pascal, _field_type, _field_ty)) in source_meta + .fields + .iter() + .filter(|(_field_name_raw, field_name_pascal, _, _)| { + singleton_indexed_fields.contains(field_name_pascal) + }) + .enumerate() + { + if idx > 0 { + write!(output, ", "); + } + write!(output, "{}(TableName, \"{}\")", field_name_pascal, field_name_raw); + } + } + writeln!(output, " {{}}"); + writeln!(output); + for (_field_name_raw, field_name_pascal, field_type, _field_ty) in source_meta + .fields + .iter() + .filter(|(_field_name_raw, field_name_pascal, _, _)| singleton_indexed_fields.contains(field_name_pascal)) + { + writeln!( + output, + " ::SpacetimeDB::query_builder::IxCol<{row_struct}, {field_type}> {field_name_pascal};" + ); + } + writeln!(output, "}};"); + writeln!(output); + + if source_meta.can_be_lookup { + writeln!(output, "namespace SpacetimeDB::query_builder"); + writeln!(output, "{{"); + writeln!(output, " template<>"); + writeln!( + output, + " struct CanBeLookupTable> : std::true_type {{}};" + ); + writeln!(output, "}}"); + writeln!(output); + } + } + + writeln!(output, "struct {api_macro} F{module_prefix}From"); + writeln!(output, "{{"); + for source_meta in &source_metas { + let row_struct = &source_meta.row_struct; + let source_pascal = &source_meta.source_pascal; + let cols_struct = &source_meta.cols_struct; + let ix_cols_struct = &source_meta.ix_cols_struct; + writeln!( + output, + " [[nodiscard]] ::SpacetimeDB::query_builder::Table<{row_struct}, {cols_struct}, {ix_cols_struct}> {source_pascal}() const {{ return ::SpacetimeDB::query_builder::Table<{row_struct}, {cols_struct}, {ix_cols_struct}>(\"{}\", {cols_struct}(\"{}\"), {ix_cols_struct}(\"{}\")); }}", + source_meta.source_name, + source_meta.source_name, + source_meta.source_name + ); + } + writeln!(output, "}};"); + writeln!(output); + + writeln!(output, "struct {api_macro} F{module_prefix}QueryBuilder"); + writeln!(output, "{{"); + writeln!(output, " F{module_prefix}From From;"); + writeln!(output); + writeln!(output, " static TArray AllTablesSqlQueries()"); + writeln!(output, " {{"); + writeln!(output, " TArray Sql;"); + for source_meta in &source_metas { + let source_pascal = &source_meta.source_pascal; + writeln!( + output, + " Sql.Add(FString(UTF8_TO_TCHAR(F{module_prefix}QueryBuilder().From.{source_pascal}().into_sql().c_str())));" + ); + } + writeln!(output, " return Sql;"); + writeln!(output, " }}"); + writeln!(output, "}};"); + writeln!(output); + + let blueprint_query_struct = format!("F{module_prefix}BlueprintQuery"); + let blueprint_predicate_struct = format!("F{module_prefix}BlueprintPredicate"); + writeln!(output, "USTRUCT(BlueprintType)"); + writeln!(output, "struct {api_macro} {blueprint_query_struct}"); + writeln!(output, "{{"); + writeln!(output, " GENERATED_BODY()"); + writeln!(output); + writeln!( + output, + " UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=\"SpacetimeDB|Queries\")" + ); + writeln!(output, " FString Sql;"); + writeln!(output); + writeln!( + output, + " UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=\"SpacetimeDB|Queries\")" + ); + writeln!(output, " FString ResultSourceName;"); + writeln!(output, "}};"); + writeln!(output); + + writeln!(output, "USTRUCT(BlueprintType)"); + writeln!(output, "struct {api_macro} {blueprint_predicate_struct}"); + writeln!(output, "{{"); + writeln!(output, " GENERATED_BODY()"); + writeln!(output); + writeln!( + output, + " UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=\"SpacetimeDB|Queries\")" + ); + writeln!(output, " FString Sql;"); + writeln!(output); + writeln!( + output, + " UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=\"SpacetimeDB|Queries\")" + ); + writeln!(output, " FString ResultSourceName;"); + writeln!(output, "}};"); + writeln!(output); + + for source_meta in &source_metas { + let source_pascal = &source_meta.source_pascal; + let query_struct = format!("F{module_prefix}{source_pascal}Query"); + writeln!(output, "USTRUCT(BlueprintType)"); + writeln!(output, "struct {api_macro} {query_struct}"); + writeln!(output, "{{"); + writeln!(output, " GENERATED_BODY()"); + writeln!(output); + writeln!( + output, + " UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=\"SpacetimeDB|Queries\")" + ); + writeln!(output, " FString Sql;"); + writeln!(output); + writeln!( + output, + " UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=\"SpacetimeDB|Queries\")" + ); + writeln!(output, " FString ResultSourceName;"); + writeln!(output, "}};"); + writeln!(output); + } + + for kind in blueprint_predicate_kinds() { + let column_struct = format!( + "F{module_prefix}Blueprint{}Column", + blueprint_predicate_kind_name(*kind) + ); + writeln!(output, "USTRUCT(BlueprintType)"); + writeln!(output, "struct {api_macro} {column_struct}"); + writeln!(output, "{{"); + writeln!(output, " GENERATED_BODY()"); + writeln!(output); + writeln!( + output, + " UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=\"SpacetimeDB|Queries\")" + ); + writeln!(output, " FString ResultSourceName;"); + writeln!(output); + writeln!( + output, + " UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=\"SpacetimeDB|Queries\")" + ); + writeln!(output, " FString ColumnName;"); + writeln!(output, "}};"); + writeln!(output); + } + + writeln!(output, "UCLASS(BlueprintType)"); + writeln!( + output, + "class {api_macro} U{module_prefix}QueryBuilderBlueprintLibrary : public UBlueprintFunctionLibrary" + ); + writeln!(output, "{{"); + writeln!(output, " GENERATED_BODY()"); + writeln!(output); + writeln!(output, "public:"); + writeln!(output); + + for source_meta in &source_metas { + let source_pascal = &source_meta.source_pascal; + let source_name = &source_meta.source_name; + let query_struct = format!("F{module_prefix}{source_pascal}Query"); + + writeln!( + output, + " UFUNCTION(BlueprintPure, Category=\"SpacetimeDB|Queries|{source_pascal}\", meta=(DisplayName=\"From {source_pascal}\"))" + ); + writeln!(output, " static {query_struct} From{source_pascal}()"); + writeln!(output, " {{"); + writeln!(output, " {query_struct} Query;"); + writeln!( + output, + " Query.Sql = FString(UTF8_TO_TCHAR(F{module_prefix}QueryBuilder().From.{source_pascal}().into_sql().c_str()));" + ); + writeln!(output, " Query.ResultSourceName = TEXT(\"{source_name}\");"); + writeln!(output, " return Query;"); + writeln!(output, " }}"); + writeln!(output); + + writeln!( + output, + " UFUNCTION(BlueprintPure, Category=\"SpacetimeDB|Queries|{source_pascal}\", meta=(DisplayName=\"To Query\", BlueprintAutocast))" + ); + writeln!( + output, + " static {blueprint_query_struct} Conv_{source_pascal}QueryToBlueprintQuery(const {query_struct}& Query)" + ); + writeln!(output, " {{"); + writeln!(output, " {blueprint_query_struct} GenericQuery;"); + writeln!(output, " GenericQuery.Sql = Query.Sql;"); + writeln!( + output, + " GenericQuery.ResultSourceName = Query.ResultSourceName;" + ); + writeln!(output, " return GenericQuery;"); + writeln!(output, " }}"); + writeln!(output); + + for (field_name_raw, field_name_pascal, _field_type, field_ty) in &source_meta.fields { + if !supports_blueprint_query_filter(module, field_ty) { + continue; + } + let Some(kind) = blueprint_predicate_kind(field_ty) else { + continue; + }; + let column_struct = format!("F{module_prefix}Blueprint{}Column", blueprint_predicate_kind_name(kind)); + writeln!( + output, + " UFUNCTION(BlueprintPure, Category=\"SpacetimeDB|Queries|{source_pascal}|Columns\", meta=(DisplayName=\"{source_pascal} {field_name_pascal}\"))" + ); + writeln!( + output, + " static {column_struct} {source_pascal}{field_name_pascal}(const {query_struct}& Query)" + ); + writeln!(output, " {{"); + writeln!(output, " {column_struct} Column;"); + writeln!( + output, + " Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT(\"{source_name}\") : Query.ResultSourceName;" + ); + writeln!(output, " Column.ColumnName = TEXT(\"{field_name_raw}\");"); + writeln!(output, " return Column;"); + writeln!(output, " }}"); + writeln!(output); + } + + writeln!( + output, + " UFUNCTION(BlueprintPure, Category=\"SpacetimeDB|Queries|{source_pascal}\", meta=(DisplayName=\"{source_pascal} Where\"))" + ); + writeln!( + output, + " static {query_struct} {source_pascal}Where({query_struct} Query, const {blueprint_predicate_struct}& Predicate)" + ); + writeln!(output, " {{"); + writeln!( + output, + " if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty())" + ); + writeln!(output, " {{"); + writeln!(output, " return Query;"); + writeln!(output, " }}"); + writeln!(output, " Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql);"); + writeln!(output, " return Query;"); + writeln!(output, " }}"); + writeln!(output); + } + + for kind in blueprint_predicate_kinds() { + let (blueprint_type, pass_by_value, supports_ordering) = + blueprint_predicate_kind_spec(module_prefix, module, module_name, *kind); + let kind_suffix = blueprint_predicate_kind_name(*kind); + let kind_display = blueprint_predicate_kind_name(*kind); + let column_struct = format!("F{module_prefix}Blueprint{kind_suffix}Column"); + let value_param = if pass_by_value { + format!("const {blueprint_type} Value") + } else { + format!("const {blueprint_type}& Value") + }; + + writeln!( + output, + " UFUNCTION(BlueprintPure, Category=\"SpacetimeDB|Queries|Predicates\", meta=(DisplayName=\"{kind_display} Equal\", CompactNodeTitle=\"==\", Keywords=\"== equal\"))" + ); + writeln!( + output, + " static {blueprint_predicate_struct} {kind_suffix}Equal(const {column_struct}& Column, {value_param})" + ); + writeln!(output, " {{"); + writeln!(output, " {blueprint_predicate_struct} Predicate;"); + writeln!(output, " Predicate.ResultSourceName = Column.ResultSourceName;"); + writeln!( + output, + " Predicate.Sql = FString::Printf(TEXT(\"\\\"%s\\\".\\\"%s\\\" = %s\"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str()));" + ); + writeln!(output, " return Predicate;"); + writeln!(output, " }}"); + writeln!(output); + + if supports_ordering { + for (fn_suffix, display_name, compact_title, sql_op, keywords) in [ + ( + "GreaterThan", + format!("{kind_display} Greater Than"), + ">", + ">", + "> greater", + ), + ( + "GreaterEqual", + format!("{kind_display} Greater Equal"), + ">=", + ">=", + ">= greater equal", + ), + ("LessThan", format!("{kind_display} Less Than"), "<", "<", "< less"), + ( + "LessEqual", + format!("{kind_display} Less Equal"), + "<=", + "<=", + "<= less equal", + ), + ] { + writeln!( + output, + " UFUNCTION(BlueprintPure, Category=\"SpacetimeDB|Queries|Predicates\", meta=(DisplayName=\"{display_name}\", CompactNodeTitle=\"{compact_title}\", Keywords=\"{keywords}\"))" + ); + writeln!( + output, + " static {blueprint_predicate_struct} {kind_suffix}{fn_suffix}(const {column_struct}& Column, {value_param})" + ); + writeln!(output, " {{"); + writeln!(output, " {blueprint_predicate_struct} Predicate;"); + writeln!(output, " Predicate.ResultSourceName = Column.ResultSourceName;"); + writeln!( + output, + " Predicate.Sql = FString::Printf(TEXT(\"\\\"%s\\\".\\\"%s\\\" {sql_op} %s\"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str()));" + ); + writeln!(output, " return Predicate;"); + writeln!(output, " }}"); + writeln!(output); + } + } + } + + writeln!( + output, + " UFUNCTION(BlueprintPure, Category=\"SpacetimeDB|Queries|Predicates\", meta=(DisplayName=\"AND\", CompactNodeTitle=\"AND\", Keywords=\"and &&\"))" + ); + writeln!( + output, + " static {blueprint_predicate_struct} And(const {blueprint_predicate_struct}& A, const {blueprint_predicate_struct}& B)" + ); + writeln!(output, " {{"); + writeln!(output, " {blueprint_predicate_struct} Predicate;"); + writeln!(output, " Predicate.ResultSourceName = A.ResultSourceName;"); + writeln!( + output, + " Predicate.Sql = FString::Printf(TEXT(\"(%s) AND (%s)\"), *A.Sql, *B.Sql);" + ); + writeln!(output, " return Predicate;"); + writeln!(output, " }}"); + writeln!(output); + + writeln!( + output, + " UFUNCTION(BlueprintPure, Category=\"SpacetimeDB|Queries|Predicates\", meta=(DisplayName=\"OR\", CompactNodeTitle=\"OR\", Keywords=\"or ||\"))" + ); + writeln!( + output, + " static {blueprint_predicate_struct} Or(const {blueprint_predicate_struct}& A, const {blueprint_predicate_struct}& B)" + ); + writeln!(output, " {{"); + writeln!(output, " {blueprint_predicate_struct} Predicate;"); + writeln!(output, " Predicate.ResultSourceName = A.ResultSourceName;"); + writeln!( + output, + " Predicate.Sql = FString::Printf(TEXT(\"(%s) OR (%s)\"), *A.Sql, *B.Sql);" + ); + writeln!(output, " return Predicate;"); + writeln!(output, " }}"); + writeln!(output); + + writeln!( + output, + " UFUNCTION(BlueprintPure, Category=\"SpacetimeDB|Queries|Predicates\", meta=(DisplayName=\"NOT\", CompactNodeTitle=\"NOT\", Keywords=\"not !\"))" + ); + writeln!( + output, + " static {blueprint_predicate_struct} Not(const {blueprint_predicate_struct}& A)" + ); + writeln!(output, " {{"); + writeln!(output, " {blueprint_predicate_struct} Predicate;"); + writeln!(output, " Predicate.ResultSourceName = A.ResultSourceName;"); + writeln!( + output, + " Predicate.Sql = FString::Printf(TEXT(\"NOT (%s)\"), *A.Sql);" + ); + writeln!(output, " return Predicate;"); + writeln!(output, " }}"); + writeln!(output); + + writeln!(output, "private:"); + writeln!( + output, + " static FString AppendPredicate(const FString& Sql, const FString& Predicate)" + ); + writeln!(output, " {{"); + writeln!(output, " if (Sql.Contains(TEXT(\" WHERE \")))"); + writeln!(output, " {{"); + writeln!( + output, + " return Sql + TEXT(\" AND (\") + Predicate + TEXT(\")\");" + ); + writeln!(output, " }}"); + writeln!( + output, + " return Sql + TEXT(\" WHERE (\") + Predicate + TEXT(\")\");" + ); + writeln!(output, " }}"); + writeln!(output, "}};"); + writeln!(output); +} + +fn generate_subscription_builder_class( + output: &mut UnrealCppAutogen, + module: &ModuleDef, + visibility: CodegenVisibility, + module_prefix: &str, + api_macro: &str, +) { + let blueprint_query_struct = format!("F{module_prefix}BlueprintQuery"); writeln!(output, "// SubscriptionBuilder class"); writeln!(output, "UCLASS(BlueprintType)"); writeln!( @@ -2973,14 +3807,55 @@ fn generate_subscription_builder_class(output: &mut UnrealCppAutogen, module_pre ); writeln!(output); writeln!(output, " UFUNCTION(BlueprintCallable, Category=\"SpacetimeDB\")"); + writeln!(output, " U{module_prefix}SubscriptionHandle* Subscribe();"); + writeln!(output); writeln!( output, " U{module_prefix}SubscriptionHandle* Subscribe(const TArray& SQL);" ); writeln!(output); + writeln!(output, " template"); + writeln!(output, " U{module_prefix}SubscriptionBuilder* AddQuery(TFn&& Build)"); + writeln!(output, " {{"); + writeln!(output, " F{module_prefix}QueryBuilder Q;"); + writeln!(output, " auto Query = std::forward(Build)(Q);"); + writeln!( + output, + " static_assert(::SpacetimeDB::query_builder::QueryBuilderReturn," + ); + writeln!( + output, + " \"Typed subscription queries must return a query_builder table/query expression.\");" + ); + writeln!( + output, + " PendingSqlQueries.Add(FString(UTF8_TO_TCHAR(Query.into_sql().c_str())));" + ); + writeln!(output, " return this;"); + writeln!(output, " }}"); + writeln!(output); + writeln!(output, " UFUNCTION(BlueprintCallable, Category=\"SpacetimeDB\", meta=(DisplayName=\"AddQuery\", ScriptName=\"AddQuery\"))"); + writeln!( + output, + " U{module_prefix}SubscriptionBuilder* AddBlueprintQuery(const {blueprint_query_struct}& Query);" + ); + writeln!(output); + let mut blueprint_sources = iter_tables(module, visibility) + .map(|t| t.accessor_name.deref().to_case(Case::Pascal)) + .chain(iter_views(module).map(|v| v.accessor_name.deref().to_case(Case::Pascal))) + .collect::>(); + blueprint_sources.sort(); + for source_pascal in blueprint_sources { + let query_struct = format!("F{module_prefix}{source_pascal}Query"); + writeln!( + output, + " U{module_prefix}SubscriptionBuilder* Add{source_pascal}Query(const {query_struct}& Query);" + ); + writeln!(output); + } writeln!( output, - " /** Convenience for subscribing to all rows from all tables */" + " /** Convenience for subscribing to all rows from all public sources, including views */" ); writeln!(output, " UFUNCTION(BlueprintCallable, Category = \"SpacetimeDB\")"); writeln!( @@ -2996,6 +3871,9 @@ fn generate_subscription_builder_class(output: &mut UnrealCppAutogen, module_pre writeln!(output, " UPROPERTY()"); writeln!(output, " class U{module_prefix}DbConnection* Conn;"); writeln!(output); + writeln!(output, " UPROPERTY()"); + writeln!(output, " TArray PendingSqlQueries;"); + writeln!(output); writeln!( output, " // Delegates stored so Subscribe() can bind forwarding callbacks" @@ -3285,6 +4163,7 @@ fn generate_client_implementation( module_prefix: &str, module_name: &str, ) { + let blueprint_query_struct = format!("F{module_prefix}BlueprintQuery"); // U{module_prefix}DbConnection constructor writeln!( output, @@ -3682,6 +4561,15 @@ fn generate_client_implementation( writeln!(output, "\tOnErrorDelegateInternal = Callback;"); writeln!(output, "\treturn this;"); writeln!(output, "}}"); + writeln!( + output, + "U{module_prefix}SubscriptionHandle* U{module_prefix}SubscriptionBuilder::Subscribe()" + ); + writeln!(output, "{{"); + writeln!(output, "\tconst TArray SqlQueries = PendingSqlQueries;"); + writeln!(output, "\tPendingSqlQueries.Empty();"); + writeln!(output, "\treturn Subscribe(SqlQueries);"); + writeln!(output, "}}"); writeln!( output, "U{module_prefix}SubscriptionHandle* U{module_prefix}SubscriptionBuilder::Subscribe(const TArray& SQL)" @@ -3721,9 +4609,40 @@ fn generate_client_implementation( "U{module_prefix}SubscriptionHandle* U{module_prefix}SubscriptionBuilder::SubscribeToAllTables()" ); writeln!(output, "{{"); - writeln!(output, "\treturn Subscribe({{ \"SELECT * FROM * \" }});"); + writeln!( + output, + "\treturn Subscribe(F{module_prefix}QueryBuilder::AllTablesSqlQueries());" + ); writeln!(output, "}}"); writeln!(output); + writeln!( + output, + "U{module_prefix}SubscriptionBuilder* U{module_prefix}SubscriptionBuilder::AddBlueprintQuery(const {blueprint_query_struct}& Query)" + ); + writeln!(output, "{{"); + writeln!(output, "\tPendingSqlQueries.Add(Query.Sql);"); + writeln!(output, "\treturn this;"); + writeln!(output, "}}"); + writeln!(output); + let mut blueprint_sources = iter_tables(module, visibility) + .map(|t| t.accessor_name.deref().to_case(Case::Pascal)) + .chain(iter_views(module).map(|v| v.accessor_name.deref().to_case(Case::Pascal))) + .collect::>(); + blueprint_sources.sort(); + for source_pascal in blueprint_sources { + let query_struct = format!("F{module_prefix}{source_pascal}Query"); + writeln!( + output, + "U{module_prefix}SubscriptionBuilder* U{module_prefix}SubscriptionBuilder::Add{source_pascal}Query(const {query_struct}& Query)" + ); + writeln!(output, "{{"); + writeln!(output, "\t{blueprint_query_struct} GenericQuery;"); + writeln!(output, "\tGenericQuery.Sql = Query.Sql;"); + writeln!(output, "\tGenericQuery.ResultSourceName = Query.ResultSourceName;"); + writeln!(output, "\treturn AddBlueprintQuery(GenericQuery);"); + writeln!(output, "}}"); + writeln!(output); + } writeln!( output, "U{module_prefix}SubscriptionHandle::U{module_prefix}SubscriptionHandle(U{module_prefix}DbConnection* InConn)" @@ -3867,7 +4786,7 @@ fn generate_client_implementation( writeln!(output, "{{"); writeln!(output, "\tif (OnConnectDelegate.IsBound())"); writeln!(output, "\t{{"); - writeln!(output, "\t\tOnConnectDelegate.Execute(this, Identity, Token);"); + writeln!(output, "\t\tOnConnectDelegate.Execute(this, InIdentity, InToken);"); writeln!(output, "\t}}"); writeln!(output, "}}"); writeln!( @@ -5572,10 +6491,7 @@ fn autogen_cpp_sum( let pas = variant_name.to_case(Case::Pascal); writeln!(output, " case E{name}Tag::{pas}:"); - writeln!( - output, - " return GetAs{variant_name}() == Other.GetAs{variant_name}();" - ); + writeln!(output, " return GetAs{pas}() == Other.GetAs{pas}();"); } writeln!(output, " default:"); diff --git a/docs/docs/00200-core-concepts/00400-subscriptions.md b/docs/docs/00200-core-concepts/00400-subscriptions.md index 04f84d9e9bd..18d4f6fc6b6 100644 --- a/docs/docs/00200-core-concepts/00400-subscriptions.md +++ b/docs/docs/00200-core-concepts/00400-subscriptions.md @@ -139,11 +139,69 @@ conn.db().user().on_update(|ctx, old_user, new_user| { }); ``` + + + +```cpp +// Connect to the database +FOnConnectDelegate ConnectDelegate; +BIND_DELEGATE_SAFE(ConnectDelegate, this, AMyActor, OnConnected); + +Conn = UDbConnection::Builder() + ->WithUri(TEXT("wss://maincloud.spacetimedb.com")) + ->WithDatabaseName(TEXT("my_module")) + ->OnConnect(ConnectDelegate) + ->Build(); + +// React to new rows being inserted +Conn->Db->User->OnInsert.AddDynamic(this, &AMyActor::OnUserInsert); + +// React to rows being deleted +Conn->Db->User->OnDelete.AddDynamic(this, &AMyActor::OnUserDelete); + +// React to rows being updated +Conn->Db->User->OnUpdate.AddDynamic(this, &AMyActor::OnUserUpdate); + +void AMyActor::OnConnected(UDbConnection* Connection, FSpacetimeDBIdentity Identity, const FString& Token) +{ + FOnSubscriptionApplied SubscriptionAppliedDelegate; + BIND_DELEGATE_SAFE(SubscriptionAppliedDelegate, this, AMyActor, OnSubscriptionApplied); + + Connection->SubscriptionBuilder() + ->OnApplied(SubscriptionAppliedDelegate) + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.User(); + }) + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.Message(); + }) + ->Subscribe(); +} + +void AMyActor::OnSubscriptionApplied(const FSubscriptionEventContext& Context) +{ + UE_LOG(LogTemp, Log, TEXT("Subscription ready!")); + + // Initial data is now in the client cache + for (const FUserType& User : Context.Db->User->Iter()) + { + UE_LOG(LogTemp, Log, TEXT("User: %s"), *User.Name); + } +} +``` + + + + +![Unreal Blueprint quick start subscription graph](/images/unreal/subscriptions/ue-blueprint-quick-start.png) + :::tip Typed Query Builders -Type-safe query builders are available in TypeScript, C#, and Rust and are the recommended default. They provide auto-completion and compile-time type checking. For complete API details, see [TypeScript](./00600-clients/00700-typescript-reference.md#query-builder-api), [C#](./00600-clients/00600-csharp-reference.md#query-builder-api), and [Rust](./00600-clients/00500-rust-reference.md#query-builder-api) references. +Type-safe query builders are available in TypeScript, C#, Rust, and Unreal and are the recommended default. They provide auto-completion and compile-time type checking. For complete API details, see [TypeScript](./00600-clients/00700-typescript-reference.md#query-builder-api), [C#](./00600-clients/00600-csharp-reference.md#query-builder-api), [Rust](./00600-clients/00500-rust-reference.md#query-builder-api), and [Unreal](./00600-clients/00800-unreal-reference.md#query-builder-api) references. ::: ## How Subscriptions Work @@ -169,16 +227,20 @@ All SDKs expose a builder API for creating subscriptions: - Register an error callback: runs if subscription registration fails or a subscription later terminates with an error. - Subscribe with one or more queries. +In Unreal, inspect the initial subscribed data set in `OnApplied`. Use table callbacks like `OnInsert`, `OnDelete`, and `OnUpdate` for later live changes. + ### Query Forms -All SDKs support subscriptions. TypeScript, C#, and Rust support query builders (recommended), while Unreal uses query strings: +All SDKs support subscriptions. Query builders are the recommended default across SDKs, with raw SQL available where needed: | SDK | Typed Query Builder Support | Entry Point | | --- | --- | --- | | TypeScript | Yes | `tables..where(...)` passed to `subscribe(...)` | | C# | Yes | `SubscriptionBuilder.AddQuery(...).Subscribe()` | | Rust | Yes | `subscription_builder().add_query(...).subscribe()` | -| Unreal | No | Query strings passed to `Subscribe(...)` | +| Unreal | Yes | `SubscriptionBuilder.AddQuery(...).Subscribe()` | + +Unreal also supports raw SQL subscriptions through `Subscribe(const TArray& SQL)` when you need direct SQL control. ### Subscription Handles @@ -198,6 +260,7 @@ Subscribing returns a handle that manages an individual subscription lifecycle. - [Rust subscription API](./00600-clients/00500-rust-reference.md#subscribe-to-queries) - [Rust query builder API](./00600-clients/00500-rust-reference.md#query-builder-api) - [Unreal subscription API](./00600-clients/00800-unreal-reference.md#subscriptions) +- [Unreal query builder API](./00600-clients/00800-unreal-reference.md#query-builder-api) ## Best Practices for Optimizing Server Compute and Reducing Serialization Overhead @@ -265,7 +328,7 @@ var globalSubscriptions = conn // May unsubscribe to shop_items as player advances var shopSubscription = conn .SubscriptionBuilder() - .AddQuery(q => q.From.ShopItems().Where(r => r.RequiredLevel.Lte(5U))) + .AddQuery(q => q.From.ShopItems().Where(r => r.RequiredLevel.Lte(5))) .Subscribe(); ``` @@ -285,10 +348,45 @@ let global_subscriptions = conn // May unsubscribe to shop_items as player advances let shop_subscription = conn .subscription_builder() - .add_query(|q| q.from.shop_items().r#where(|r| r.required_level.lte(5u32))) + .add_query(|q| q.from.shop_items().r#where(|r| r.required_level.lte(5))) .subscribe(); ``` + + + +```cpp +UDbConnection* Conn = ConnectToDB(); + +// Never need to unsubscribe from global subscriptions +USubscriptionHandle* GlobalSubscriptions = Conn->SubscriptionBuilder() + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.Announcements(); + }) + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.Badges(); + }) + ->Subscribe(); + +// May unsubscribe from ShopItems as player advances +USubscriptionHandle* ShopSubscription = Conn->SubscriptionBuilder() + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.ShopItems().Where([](const FShopItemsCols& Row) + { + return Row.RequiredLevel.Lte(5); + }); + }) + ->Subscribe(); +``` + + + + +![Unreal Blueprint grouped subscriptions graph](/images/unreal/subscriptions/ue-blueprint-group-subscriptions.png) + @@ -349,14 +447,14 @@ var conn = ConnectToDB(); var shopSubscription = conn .SubscriptionBuilder() .AddQuery(q => q.From.ExchangeRates()) - .AddQuery(q => q.From.ShopItems().Where(r => r.RequiredLevel.Lte(5U))) + .AddQuery(q => q.From.ShopItems().Where(r => r.RequiredLevel.Lte(5))) .Subscribe(); // New subscription: player now at level 6, which overlaps with the previous query. var newShopSubscription = conn .SubscriptionBuilder() .AddQuery(q => q.From.ExchangeRates()) - .AddQuery(q => q.From.ShopItems().Where(r => r.RequiredLevel.Lte(6U))) + .AddQuery(q => q.From.ShopItems().Where(r => r.RequiredLevel.Lte(6))) .Subscribe(); // Unsubscribe from the old subscription once the new one is in place. @@ -376,14 +474,14 @@ let conn: DbConnection = connect_to_db(); let shop_subscription = conn .subscription_builder() .add_query(|q| q.from.exchange_rates()) - .add_query(|q| q.from.shop_items().r#where(|r| r.required_level.lte(5u32))) + .add_query(|q| q.from.shop_items().r#where(|r| r.required_level.lte(5))) .subscribe(); // New subscription: player now at level 6, which overlaps with the previous query. let new_shop_subscription = conn .subscription_builder() .add_query(|q| q.from.exchange_rates()) - .add_query(|q| q.from.shop_items().r#where(|r| r.required_level.lte(6u32))) + .add_query(|q| q.from.shop_items().r#where(|r| r.required_level.lte(6))) .subscribe(); // Unsubscribe from the old subscription once the new one is active. @@ -392,6 +490,56 @@ if shop_subscription.is_active() { } ``` + + + +```cpp +UDbConnection* Conn = ConnectToDB(); + +// Initial subscription: player at level 5. +USubscriptionHandle* ShopSubscription = Conn->SubscriptionBuilder() + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.ExchangeRates(); + }) + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.ShopItems().Where([](const FShopItemsCols& Row) + { + return Row.RequiredLevel.Lte(5); + }); + }) + ->Subscribe(); + +// New subscription: player now at level 6, which overlaps with the previous query. +USubscriptionHandle* NewShopSubscription = Conn->SubscriptionBuilder() + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.ExchangeRates(); + }) + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.ShopItems().Where([](const FShopItemsCols& Row) + { + return Row.RequiredLevel.Lte(6); + }); + }) + ->Subscribe(); + +// Unsubscribe from the old subscription once the new one is in place. +if (ShopSubscription->IsActive()) +{ + ShopSubscription->Unsubscribe(); +} +``` + + + + +![Unreal Blueprint new overlapping subscription graph](/images/unreal/subscriptions/ue-blueprint-unsubscription-1.png) + +![Unreal Blueprint unsubscribe old subscription graph](/images/unreal/subscriptions/ue-blueprint-unsubscription-2.png) + diff --git a/docs/docs/00200-core-concepts/00600-clients/00800-unreal-reference.md b/docs/docs/00200-core-concepts/00600-clients/00800-unreal-reference.md index 57063d8f08a..5888d3bf08f 100644 --- a/docs/docs/00200-core-concepts/00600-clients/00800-unreal-reference.md +++ b/docs/docs/00200-core-concepts/00600-clients/00800-unreal-reference.md @@ -21,6 +21,7 @@ Before diving into the reference, you may want to review: | [Access the client cache](#access-the-client-cache) | Access to your local view of the database. | | [Observe and invoke reducers](#observe-and-invoke-reducers) | Send requests to the database to run reducers, and register callbacks for reducer results on the calling connection. | | [Subscriptions](#subscriptions) | Subscribe to queries and manage subscription lifecycle. | +| [Query Builder API](#query-builder-api) | Build typed subscription queries in Unreal C++ and Blueprint. | | [Identify a client](#identify-a-client) | Types for identifying users and client connections. | ## Project setup @@ -539,6 +540,8 @@ The generated `On` delegates are the Unreal equivalent of a per-call ca Create subscriptions to receive updates for specific queries using the `USubscriptionBuilder` and `USubscriptionHandle` classes. +For Unreal C++, the recommended default is to build subscriptions with `AddQuery(...)` and then call parameterless `Subscribe()`. Raw SQL subscriptions remain available when you need to provide SQL directly. + | Name | Description | | -------------------------------------------------- | ---------------------------------- | | [USubscriptionBuilder](#type-usubscriptionbuilder) | Build and configure subscriptions. | @@ -555,6 +558,11 @@ class USubscriptionBuilder UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") USubscriptionBuilder* OnError(FOnSubscriptionError Callback); + USubscriptionBuilder* AddQuery(TFunctionRef BuildQuery); + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + USubscriptionHandle* Subscribe(); + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") USubscriptionHandle* Subscribe(const TArray& SQL); @@ -579,13 +587,29 @@ USubscriptionBuilder* OnError(FOnSubscriptionError Callback); Register a callback to run if the subscription fails. +#### Method `AddQuery` + +```cpp +USubscriptionBuilder* AddQuery(TFunctionRef BuildQuery); +``` + +Append a typed query to the builder. The callback receives an `FQueryBuilder`, typically named `Q`, and returns a generated query source or filtered query. Call `AddQuery(...)` once per table or view query you want to subscribe to, then finish with parameterless `Subscribe()`. + #### Method `Subscribe` +```cpp +USubscriptionHandle* Subscribe(); +``` + +Subscribe to the typed queries accumulated with `AddQuery(...)` and return a handle for managing the subscription. + +#### Method `Subscribe` (SQL overload) + ```cpp USubscriptionHandle* Subscribe(const TArray& SQL); ``` -Subscribe to the provided SQL queries and return a handle for managing the subscription. +Subscribe to the provided SQL queries and return a handle for managing the subscription. Use this when you need to write SQL directly instead of using the typed query builder. #### Method `SubscribeToAllTables` @@ -595,6 +619,8 @@ USubscriptionHandle* SubscribeToAllTables(); Subscribe to all public tables in the module. +`SubscribeToAllTables()` is useful for quick prototypes and small modules. Prefer typed queries for production subscriptions so the subscription set stays explicit. + ### Type `USubscriptionHandle` ```cpp @@ -657,6 +683,129 @@ TArray GetQuerySqls() const; Get the SQL queries associated with this subscription. +## Query Builder API + +Use the Unreal query builder to build typed subscriptions in C++ and Blueprint. + +In C++, a query typically starts from the generated `FQueryBuilder` passed to `AddQuery(...)`, selects a source from `Q.From`, and optionally applies `Where(...)` with generated column objects: + +```cpp +USubscriptionHandle* Handle = Conn->SubscriptionBuilder() + ->OnApplied(FOnSubscriptionApplied::CreateUObject(this, &AMyActor::OnSubscriptionApplied)) + ->OnError(FOnSubscriptionError::CreateUObject(this, &AMyActor::OnSubscriptionError)) + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.Player().Where([](const FPlayerCols& Cols) + { + return Cols.Level.Gte(1).And(Cols.DisplayName.Neq(TEXT("Guest"))); + }); + }) + ->Subscribe(); +``` + +The generated query-builder surface is module-specific. Sources, column sets, and query return types are generated from your schema and views. + +### Query sources + +Each public table or subscribed query source is available under `Q.From` using a generated method: + +```cpp +Q.From.Player() +Q.From.ActivePlayerLocations() +Q.From.PlayersAtLevel0() +``` + +Event tables are not subscribed implicitly. Subscribe to them with an explicit query just like any other source: + +```cpp +Conn->SubscriptionBuilder() + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.DamageEvent(); + }) + ->Subscribe(); +``` + +### Predicates + +Generated column objects expose typed predicate methods such as: + +- `Eq` +- `Neq` +- `Gt` +- `Lt` +- `Gte` +- `Lte` + +Predicates can be combined with: + +- `And` +- `Or` +- `Not` + +Example: + +```cpp +Conn->SubscriptionBuilder() + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.Player().Where([](const FPlayerCols& Cols) + { + return Cols.Level.Gte(3).And(Cols.IsOnline.Eq(true)); + }); + }) + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.ActivePlayerLocations().Where([](const FActivePlayerLocationsCols& Cols) + { + return Cols.X.Gte(10).And(Cols.Y.Lte(400)); + }); + }) + ->Subscribe(); +``` + +### Blueprint availability + +The Unreal query builder is available in both C++ and Blueprint. + +In Blueprint, generated nodes expose the same overall flow: + +- source query nodes +- column nodes +- predicate nodes +- `Where` +- `AddQuery` +- `Subscribe` + +Blueprint uses generated source-specific query types for authoring and converts them at the `AddQuery` boundary automatically. + +For example, a Blueprint subscription to online players at level 3 or higher would follow this node flow: + +```text +From Player +├─> Player Level +│ └─> Int32 Greater Equal (3) +├─> Player IsOnline +│ └─> Bool Equal (true) +└─> Player Where + └─> AND + ├─> Int32 Greater Equal (3) + └─> Bool Equal (true) + +Player Where +└─> AddQuery + └─> Subscribe +``` + +The exact node names are generated from your schema, so `Player`, `Level`, and `IsOnline` will vary by module. + +### Notes and limitations + +- `OnApplied` is the right place to inspect the initial subscribed result set in the client cache. +- `OnInsert`, `OnUpdate`, and `OnDelete` are for subsequent live changes after the subscription is active. +- `TimeDuration` query predicates are currently unsupported. +- Raw SQL subscriptions remain available when you need manual SQL control. + ## Identify a client ### Type `FSpacetimeDBIdentity` @@ -712,7 +861,7 @@ struct FSpacetimeDBTimestamp ## Example usage -Here's a complete example of connecting to SpacetimeDB, subscribing to tables, and handling events: +Here's a complete example of connecting to SpacetimeDB, subscribing with the typed query builder, and handling events: ```cpp // In your Actor's BeginPlay() @@ -749,10 +898,22 @@ void AMyActor::OnConnected(UDbConnection* Connection, FSpacetimeDBIdentity Ident // Save token for future connections UCredentials::SaveToken(Token); - // Subscribe to all tables + // Subscribe with typed queries USubscriptionHandle* Handle = Connection->SubscriptionBuilder() ->OnApplied(FOnSubscriptionApplied::CreateUObject(this, &AMyActor::OnSubscriptionApplied)) - ->SubscribeToAllTables(); + ->OnError(FOnSubscriptionError::CreateUObject(this, &AMyActor::OnSubscriptionError)) + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.User(); + }) + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.Message().Where([](const FMessageCols& Cols) + { + return Cols.ChannelId.Eq(1); + }); + }) + ->Subscribe(); } void AMyActor::OnUserInsert(const FEventContext& Context, const FUserType& NewRow) @@ -773,3 +934,11 @@ void AMyActor::SendMessage(const FString& Text) } } ``` + +For small modules or quick debugging sessions, you can still subscribe to every public table: + +```cpp +USubscriptionHandle* Handle = Conn->SubscriptionBuilder() + ->OnApplied(FOnSubscriptionApplied::CreateUObject(this, &AMyActor::OnSubscriptionApplied)) + ->SubscribeToAllTables(); +``` diff --git a/docs/docs/00300-resources/00100-how-to/00600-migrating-to-2.0.md b/docs/docs/00300-resources/00100-how-to/00600-migrating-to-2.0.md index d3de7a145c3..8f70388d274 100644 --- a/docs/docs/00300-resources/00100-how-to/00600-migrating-to-2.0.md +++ b/docs/docs/00300-resources/00100-how-to/00600-migrating-to-2.0.md @@ -399,7 +399,11 @@ Conn->Db->DamageEvent->OnInsert.AddDynamic(this, &AMyActor::OnDamageEvent); Conn->SubscriptionBuilder() ->OnApplied(OnAppliedDelegate) ->OnError(OnErrorDelegate) - ->Subscribe({ TEXT("SELECT * FROM damage_event") }); + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.DamageEvent(); + }) + ->Subscribe(); ``` @@ -585,14 +589,18 @@ ctx.subscription_builder() ```cpp -// 2.0 -- same as 1.0 today +// 2.0 -- typed query builder Conn->SubscriptionBuilder() ->OnApplied(OnAppliedDelegate) ->OnError(OnErrorDelegate) - ->Subscribe({ TEXT("SELECT * FROM person") }); + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.Person(); + }) + ->Subscribe(); ``` -The Unreal SDK does not expose typed query builders yet. For now, use SQL strings. Typed query builder support is planned. +Unreal 2.0 now supports typed query-builder subscriptions in C++. Use `AddQuery(...)` as the default for table and event-table subscriptions. @@ -640,7 +648,11 @@ ctx.subscription_builder() Conn->SubscriptionBuilder() ->OnApplied(OnAppliedDelegate) ->OnError(OnErrorDelegate) - ->Subscribe({ TEXT("SELECT * FROM damage_event") }); + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.DamageEvent(); + }) + ->Subscribe(); ``` @@ -1782,6 +1794,8 @@ spacetime sql "SELECT * FROM my_table" - Replace with `_then()` callbacks for your own reducer calls - Unreal: replace with generated `On` delegates on the calling connection - Replace with event tables + `on_insert` for cross-client notifications +- [ ] Migrate Unreal subscription SQL strings to typed queries where appropriate + - Use `Conn->SubscriptionBuilder()->AddQuery(...)->Subscribe()` instead of `Subscribe({ TEXT("SELECT ...") })` - [ ] Update `Event::UnknownTransaction` matches to `Event::Transaction` - [ ] For each reducer whose args you were observing from other clients: 1. Create an `#[table(..., event)]` on the server diff --git a/docs/static/images/unreal/subscriptions/ue-blueprint-group-subscriptions.png b/docs/static/images/unreal/subscriptions/ue-blueprint-group-subscriptions.png new file mode 100644 index 00000000000..b7f8f42e1b4 Binary files /dev/null and b/docs/static/images/unreal/subscriptions/ue-blueprint-group-subscriptions.png differ diff --git a/docs/static/images/unreal/subscriptions/ue-blueprint-quick-start.png b/docs/static/images/unreal/subscriptions/ue-blueprint-quick-start.png new file mode 100644 index 00000000000..a13d67e244f Binary files /dev/null and b/docs/static/images/unreal/subscriptions/ue-blueprint-quick-start.png differ diff --git a/docs/static/images/unreal/subscriptions/ue-blueprint-unsubscription-1.png b/docs/static/images/unreal/subscriptions/ue-blueprint-unsubscription-1.png new file mode 100644 index 00000000000..926b713ca44 Binary files /dev/null and b/docs/static/images/unreal/subscriptions/ue-blueprint-unsubscription-1.png differ diff --git a/docs/static/images/unreal/subscriptions/ue-blueprint-unsubscription-2.png b/docs/static/images/unreal/subscriptions/ue-blueprint-unsubscription-2.png new file mode 100644 index 00000000000..484492a4b9a Binary files /dev/null and b/docs/static/images/unreal/subscriptions/ue-blueprint-unsubscription-2.png differ diff --git a/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/Connection/DbConnectionBase.h b/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/Connection/DbConnectionBase.h index b32221ce641..1a66ed1a1f6 100644 --- a/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/Connection/DbConnectionBase.h +++ b/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/Connection/DbConnectionBase.h @@ -1,4 +1,4 @@ -#pragma once +#pragma once #include "CoreMinimal.h" #include "Containers/Ticker.h" diff --git a/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/QueryBuilder/expr.h b/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/QueryBuilder/expr.h new file mode 100644 index 00000000000..91e934c15aa --- /dev/null +++ b/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/QueryBuilder/expr.h @@ -0,0 +1,540 @@ +#pragma once + +#include "BSATN/Core/timestamp.h" +#include "BSATN/Core/types.h" +#include "CoreMinimal.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace SpacetimeDB::query_builder { + +template +class Col; + +template +struct is_col : std::false_type {}; + +template +inline constexpr bool is_rhs_for_value_v = + std::is_same_v> || + (std::is_same_v && std::is_convertible_v) || + (std::is_same_v && + (std::is_convertible_v || std::is_convertible_v)); + +template +class ColumnRef { +public: + constexpr ColumnRef() + : table_name_(""), column_name_("") {} + + constexpr ColumnRef(const char* table_name, const char* column_name) + : table_name_(table_name), column_name_(column_name) {} + + [[nodiscard]] std::string format() const { + return "\"" + std::string(table_name_) + "\".\"" + std::string(column_name_) + "\""; + } + + [[nodiscard]] constexpr const char* table_name() const { return table_name_; } + [[nodiscard]] constexpr const char* column_name() const { return column_name_; } + +private: + const char* table_name_; + const char* column_name_; +}; + +namespace detail { + +inline std::string quote_string(std::string_view value) { + std::string escaped; + escaped.reserve(value.size() + 2); + escaped.push_back('\''); + for (char ch : value) { + escaped.push_back(ch); + if (ch == '\'') { + escaped.push_back('\''); + } + } + escaped.push_back('\''); + return escaped; +} + +inline std::string trim_timestamp_fraction(std::string value) { + // Keep this in sync with the current Timestamp::to_string() UTC form. + // If that representation changes away from a +00:00 / Z suffix, revisit this trimming logic. + const std::size_t plus = value.rfind("+00:00"); + const std::size_t z = value.rfind('Z'); + const std::size_t dot = value.find('.'); + const std::size_t suffix = plus != std::string::npos ? plus : z; + if (suffix == std::string::npos || dot == std::string::npos || dot > suffix) { + return value; + } + + std::size_t trim = suffix; + while (trim > dot + 1 && value[trim - 1] == '0') { + --trim; + } + if (trim == dot + 1) { + value.erase(dot, suffix - dot); + } else { + value.erase(trim, suffix - trim); + } + return value; +} + +inline std::string literal_sql(const std::string& value) { return quote_string(value); } +inline std::string literal_sql(std::string_view value) { return quote_string(value); } +inline std::string literal_sql(const char* value) { return quote_string(value == nullptr ? "" : value); } +inline std::string literal_sql(bool value) { return value ? "TRUE" : "FALSE"; } +inline std::string literal_sql(const ::SpacetimeDb::Identity& value) { return "0x" + value.to_hex_string(); } +inline std::string literal_sql(const ::SpacetimeDb::ConnectionId& value) { return "0x" + value.to_string(); } +inline std::string literal_sql(const ::SpacetimeDb::Timestamp& value) { return quote_string(trim_timestamp_fraction(value.to_string())); } +inline std::string literal_sql(const ::SpacetimeDb::TimeDuration&) = delete; +#include "QueryBuilder/expr_unreal_adapters.h" +inline std::string literal_sql(const std::vector& value) { + std::ostringstream out; + out << "0x" << std::hex << std::setfill('0'); + for (uint8_t byte : value) { + out << std::setw(2) << static_cast(byte); + } + return out.str(); +} +inline std::string literal_sql(const ::SpacetimeDb::u128& value) { return value.to_string(); } +inline std::string literal_sql(const ::SpacetimeDb::i128& value) { return value.to_string(); } +inline std::string literal_sql(const ::SpacetimeDb::u256& value) { return value.to_string(); } +inline std::string literal_sql(const ::SpacetimeDb::i256& value) { return value.to_string(); } + +template +inline std::string format_floating_point(TFloat value) { + char buffer[64]; + const auto result = std::to_chars(buffer, buffer + sizeof(buffer), value, std::chars_format::general); + if (result.ec == std::errc{}) { + return std::string(buffer, result.ptr); + } + + std::ostringstream out; + out.imbue(std::locale::classic()); + out << std::setprecision(std::numeric_limits::max_digits10); + out << value; + return out.str(); +} + +inline std::string literal_sql(float value) { + return format_floating_point(value); +} + +inline std::string literal_sql(double value) { + return format_floating_point(value); +} + +template +std::string literal_sql(const TValue& value) +requires(std::is_integral_v && !std::is_same_v, bool>) +{ + return std::to_string(value); +} + +template +class Operand { +public: + static Operand column(ColumnRef column) { return Operand(std::move(column)); } + static Operand literal(std::string sql) { return Operand(std::move(sql)); } + + [[nodiscard]] std::string format() const { + return std::holds_alternative>(value_) + ? std::get>(value_).format() + : std::get(value_); + } + +private: + explicit Operand(ColumnRef column) : value_(std::move(column)) {} + explicit Operand(std::string sql) : value_(std::move(sql)) {} + + std::variant, std::string> value_; +}; + +template +Operand to_operand(const Col& column); + +template +Operand to_operand(const TValue& value) { + return Operand::literal(literal_sql(value)); +} + +} // namespace detail + +template +class BoolExpr { +public: + enum class Kind { + Eq, + Ne, + Gt, + Lt, + Gte, + Lte, + And, + Or, + Not, + }; + + static BoolExpr compare(Kind kind, detail::Operand lhs, detail::Operand rhs) { + return BoolExpr(std::make_shared(kind, std::move(lhs), std::move(rhs))); + } + + static BoolExpr always(bool value) { + return compare( + Kind::Eq, + detail::Operand::literal(value ? "TRUE" : "FALSE"), + detail::Operand::literal("TRUE")); + } + + [[nodiscard]] std::string format() const { + return format_node(root_); + } + + [[nodiscard]] BoolExpr and_(const BoolExpr& other) const { + return BoolExpr(std::make_shared(Kind::And, root_, other.root_)); + } + [[nodiscard]] BoolExpr And(const BoolExpr& other) const { return and_(other); } + + [[nodiscard]] BoolExpr or_(const BoolExpr& other) const { + return BoolExpr(std::make_shared(Kind::Or, root_, other.root_)); + } + [[nodiscard]] BoolExpr Or(const BoolExpr& other) const { return or_(other); } + + [[nodiscard]] BoolExpr not_() const { + return BoolExpr(std::make_shared(Kind::Not, root_, nullptr)); + } + [[nodiscard]] BoolExpr Not() const { return not_(); } + +private: + struct Node; + + struct CompareData { + detail::Operand lhs; + detail::Operand rhs; + }; + + struct LogicData { + std::shared_ptr left; + std::shared_ptr right; + }; + + struct NotData { + std::shared_ptr child; + }; + + struct Node { + Node(Kind kind_in, detail::Operand lhs_in, detail::Operand rhs_in) + : kind(kind_in), data(CompareData{std::move(lhs_in), std::move(rhs_in)}) {} + + Node(Kind kind_in, std::shared_ptr left_in, std::shared_ptr right_in) + : kind(kind_in), + data(kind_in == Kind::Not + ? NodeData(NotData{std::move(left_in)}) + : NodeData(LogicData{std::move(left_in), std::move(right_in)})) {} + + Kind kind; + using NodeData = std::variant; + NodeData data; + }; + + explicit BoolExpr(std::shared_ptr root) + : root_(std::move(root)) {} + + static std::string format_node(const std::shared_ptr& node) { + switch (node->kind) { + case Kind::Eq: { + const auto& compare = std::get(node->data); + return "(" + compare.lhs.format() + " = " + compare.rhs.format() + ")"; + } + case Kind::Ne: { + const auto& compare = std::get(node->data); + return "(" + compare.lhs.format() + " <> " + compare.rhs.format() + ")"; + } + case Kind::Gt: { + const auto& compare = std::get(node->data); + return "(" + compare.lhs.format() + " > " + compare.rhs.format() + ")"; + } + case Kind::Lt: { + const auto& compare = std::get(node->data); + return "(" + compare.lhs.format() + " < " + compare.rhs.format() + ")"; + } + case Kind::Gte: { + const auto& compare = std::get(node->data); + return "(" + compare.lhs.format() + " >= " + compare.rhs.format() + ")"; + } + case Kind::Lte: { + const auto& compare = std::get(node->data); + return "(" + compare.lhs.format() + " <= " + compare.rhs.format() + ")"; + } + case Kind::And: { + const auto& logic = std::get(node->data); + return "(" + format_node(logic.left) + " AND " + format_node(logic.right) + ")"; + } + case Kind::Or: { + const auto& logic = std::get(node->data); + return "(" + format_node(logic.left) + " OR " + format_node(logic.right) + ")"; + } + case Kind::Not: { + const auto& not_data = std::get(node->data); + return "(NOT " + format_node(not_data.child) + ")"; + } + } + return {}; + } + + std::shared_ptr root_; +}; + +namespace detail { + +template +BoolExpr make_bool_expr(BoolExpr expr) { + return expr; +} + +template +BoolExpr make_bool_expr(bool value) { + return BoolExpr::always(value); +} + +template +BoolExpr make_bool_expr(const Col& column) { + return column.eq(true); +} + +} // namespace detail + +template +class Col { +public: + constexpr Col() = default; + + constexpr Col(const char* table_name, const char* column_name) + : column_(table_name, column_name) {} + + template + requires(is_rhs_for_value_v) + [[nodiscard]] BoolExpr eq(const TRhs& rhs) const { return compare(BoolExpr::Kind::Eq, rhs); } + template + requires(is_rhs_for_value_v) + [[nodiscard]] BoolExpr Eq(const TRhs& rhs) const { return eq(rhs); } + template + requires(is_rhs_for_value_v) + [[nodiscard]] BoolExpr ne(const TRhs& rhs) const { return compare(BoolExpr::Kind::Ne, rhs); } + template + requires(is_rhs_for_value_v) + [[nodiscard]] BoolExpr Ne(const TRhs& rhs) const { return ne(rhs); } + template + requires(is_rhs_for_value_v) + [[nodiscard]] BoolExpr gt(const TRhs& rhs) const { return compare(BoolExpr::Kind::Gt, rhs); } + template + requires(is_rhs_for_value_v) + [[nodiscard]] BoolExpr Gt(const TRhs& rhs) const { return gt(rhs); } + template + requires(is_rhs_for_value_v) + [[nodiscard]] BoolExpr lt(const TRhs& rhs) const { return compare(BoolExpr::Kind::Lt, rhs); } + template + requires(is_rhs_for_value_v) + [[nodiscard]] BoolExpr Lt(const TRhs& rhs) const { return lt(rhs); } + template + requires(is_rhs_for_value_v) + [[nodiscard]] BoolExpr gte(const TRhs& rhs) const { return compare(BoolExpr::Kind::Gte, rhs); } + template + requires(is_rhs_for_value_v) + [[nodiscard]] BoolExpr Gte(const TRhs& rhs) const { return gte(rhs); } + template + requires(is_rhs_for_value_v) + [[nodiscard]] BoolExpr lte(const TRhs& rhs) const { return compare(BoolExpr::Kind::Lte, rhs); } + template + requires(is_rhs_for_value_v) + [[nodiscard]] BoolExpr Lte(const TRhs& rhs) const { return lte(rhs); } + + // Keep incompatible non-column RHS values on a dedicated overload so they + // fail with the same diagnostic shape as mismatched column comparisons. + template + requires(!is_rhs_for_value_v && !is_col>::value) + [[nodiscard]] auto eq(const TRhs&) const { + static_assert(is_rhs_for_value_v, "Column comparison requires both sides to have the same value type."); + return BoolExpr::always(false); + } + template + requires(!is_rhs_for_value_v && !is_col>::value) + [[nodiscard]] auto Eq(const TRhs& rhs) const { return eq(rhs); } + template + requires(!is_rhs_for_value_v && !is_col>::value) + [[nodiscard]] auto ne(const TRhs&) const { + static_assert(is_rhs_for_value_v, "Column comparison requires both sides to have the same value type."); + return BoolExpr::always(false); + } + template + requires(!is_rhs_for_value_v && !is_col>::value) + [[nodiscard]] auto Ne(const TRhs& rhs) const { return ne(rhs); } + template + requires(!is_rhs_for_value_v && !is_col>::value) + [[nodiscard]] auto gt(const TRhs&) const { + static_assert(is_rhs_for_value_v, "Column comparison requires both sides to have the same value type."); + return BoolExpr::always(false); + } + template + requires(!is_rhs_for_value_v && !is_col>::value) + [[nodiscard]] auto Gt(const TRhs& rhs) const { return gt(rhs); } + template + requires(!is_rhs_for_value_v && !is_col>::value) + [[nodiscard]] auto lt(const TRhs&) const { + static_assert(is_rhs_for_value_v, "Column comparison requires both sides to have the same value type."); + return BoolExpr::always(false); + } + template + requires(!is_rhs_for_value_v && !is_col>::value) + [[nodiscard]] auto Lt(const TRhs& rhs) const { return lt(rhs); } + template + requires(!is_rhs_for_value_v && !is_col>::value) + [[nodiscard]] auto gte(const TRhs&) const { + static_assert(is_rhs_for_value_v, "Column comparison requires both sides to have the same value type."); + return BoolExpr::always(false); + } + template + requires(!is_rhs_for_value_v && !is_col>::value) + [[nodiscard]] auto Gte(const TRhs& rhs) const { return gte(rhs); } + template + requires(!is_rhs_for_value_v && !is_col>::value) + [[nodiscard]] auto lte(const TRhs&) const { + static_assert(is_rhs_for_value_v, "Column comparison requires both sides to have the same value type."); + return BoolExpr::always(false); + } + template + requires(!is_rhs_for_value_v && !is_col>::value) + [[nodiscard]] auto Lte(const TRhs& rhs) const { return lte(rhs); } + + template + requires(std::is_same_v) + [[nodiscard]] BoolExpr eq(const Col& rhs) const { return compare(BoolExpr::Kind::Eq, rhs); } + template + requires(std::is_same_v) + [[nodiscard]] BoolExpr Eq(const Col& rhs) const { return eq(rhs); } + template + requires(std::is_same_v) + [[nodiscard]] BoolExpr ne(const Col& rhs) const { return compare(BoolExpr::Kind::Ne, rhs); } + template + requires(std::is_same_v) + [[nodiscard]] BoolExpr Ne(const Col& rhs) const { return ne(rhs); } + template + requires(std::is_same_v) + [[nodiscard]] BoolExpr gt(const Col& rhs) const { return compare(BoolExpr::Kind::Gt, rhs); } + template + requires(std::is_same_v) + [[nodiscard]] BoolExpr Gt(const Col& rhs) const { return gt(rhs); } + template + requires(std::is_same_v) + [[nodiscard]] BoolExpr lt(const Col& rhs) const { return compare(BoolExpr::Kind::Lt, rhs); } + template + requires(std::is_same_v) + [[nodiscard]] BoolExpr Lt(const Col& rhs) const { return lt(rhs); } + template + requires(std::is_same_v) + [[nodiscard]] BoolExpr gte(const Col& rhs) const { return compare(BoolExpr::Kind::Gte, rhs); } + template + requires(std::is_same_v) + [[nodiscard]] BoolExpr Gte(const Col& rhs) const { return gte(rhs); } + template + requires(std::is_same_v) + [[nodiscard]] BoolExpr lte(const Col& rhs) const { return compare(BoolExpr::Kind::Lte, rhs); } + template + requires(std::is_same_v) + [[nodiscard]] BoolExpr Lte(const Col& rhs) const { return lte(rhs); } + + // Keep mismatched column-to-column comparisons on a dedicated overload so + // they fail here with a clear diagnostic instead of disappearing into the + // generic operand-conversion path. + template + requires(!std::is_same_v) + [[nodiscard]] auto eq(const Col&) const { + static_assert(std::is_same_v, "Column comparison requires both sides to have the same value type."); + return BoolExpr::always(false); + } + template + requires(!std::is_same_v) + [[nodiscard]] auto Eq(const Col& rhs) const { return eq(rhs); } + template + requires(!std::is_same_v) + [[nodiscard]] auto ne(const Col&) const { + static_assert(std::is_same_v, "Column comparison requires both sides to have the same value type."); + return BoolExpr::always(false); + } + template + requires(!std::is_same_v) + [[nodiscard]] auto Ne(const Col& rhs) const { return ne(rhs); } + template + requires(!std::is_same_v) + [[nodiscard]] auto gt(const Col&) const { + static_assert(std::is_same_v, "Column comparison requires both sides to have the same value type."); + return BoolExpr::always(false); + } + template + requires(!std::is_same_v) + [[nodiscard]] auto Gt(const Col& rhs) const { return gt(rhs); } + template + requires(!std::is_same_v) + [[nodiscard]] auto lt(const Col&) const { + static_assert(std::is_same_v, "Column comparison requires both sides to have the same value type."); + return BoolExpr::always(false); + } + template + requires(!std::is_same_v) + [[nodiscard]] auto Lt(const Col& rhs) const { return lt(rhs); } + template + requires(!std::is_same_v) + [[nodiscard]] auto gte(const Col&) const { + static_assert(std::is_same_v, "Column comparison requires both sides to have the same value type."); + return BoolExpr::always(false); + } + template + requires(!std::is_same_v) + [[nodiscard]] auto Gte(const Col& rhs) const { return gte(rhs); } + template + requires(!std::is_same_v) + [[nodiscard]] auto lte(const Col&) const { + static_assert(std::is_same_v, "Column comparison requires both sides to have the same value type."); + return BoolExpr::always(false); + } + template + requires(!std::is_same_v) + [[nodiscard]] auto Lte(const Col& rhs) const { return lte(rhs); } + + [[nodiscard]] constexpr const ColumnRef& column_ref() const { return column_; } + +private: + template + [[nodiscard]] BoolExpr compare(typename BoolExpr::Kind kind, const TRhs& rhs) const { + return BoolExpr::compare(kind, detail::to_operand(*this), detail::to_operand(rhs)); + } + + ColumnRef column_; +}; + +template +struct is_col> : std::true_type {}; + +namespace detail { + +template +Operand to_operand(const Col& column) { + return Operand::column(column.column_ref()); +} + +} // namespace detail + +} // namespace SpacetimeDB::query_builder diff --git a/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/QueryBuilder/expr_unreal_adapters.h b/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/QueryBuilder/expr_unreal_adapters.h new file mode 100644 index 00000000000..3c4e27d22e4 --- /dev/null +++ b/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/QueryBuilder/expr_unreal_adapters.h @@ -0,0 +1,51 @@ +#pragma once + +#include "CoreMinimal.h" +#include "Types/Builtins.h" + +inline std::string literal_sql(const TCHAR* value) { + return quote_string(value == nullptr ? "" : TCHAR_TO_UTF8(value)); +} + +inline std::string literal_sql(const FString& value) { + return quote_string(TCHAR_TO_UTF8(*value)); +} + +inline std::string ensure_hex_prefix(std::string value) { + if (value.rfind("0x", 0) == 0 || value.rfind("0X", 0) == 0) { + return value; + } + return "0x" + value; +} + +inline std::string literal_sql(const FSpacetimeDBIdentity& value) { + return ensure_hex_prefix(std::string(TCHAR_TO_UTF8(*value.ToHex()))); +} + +inline std::string literal_sql(const FSpacetimeDBConnectionId& value) { + return ensure_hex_prefix(std::string(TCHAR_TO_UTF8(*value.ToHex()))); +} + +inline std::string literal_sql(const FSpacetimeDBUuid& value) { + return quote_string(TCHAR_TO_UTF8(*value.ToString())); +} + +inline std::string literal_sql(const FSpacetimeDBTimestamp& value) { + return quote_string(trim_timestamp_fraction(TCHAR_TO_UTF8(*value.ToString()))); +} + +std::string literal_sql(const FSpacetimeDBTimeDuration& value) = delete; + +inline std::string literal_sql(const TArray& value) { + std::ostringstream out; + out << "0x" << std::hex << std::setfill('0'); + for (uint8 byte : value) { + out << std::setw(2) << static_cast(byte); + } + return out.str(); +} + +inline std::string literal_sql(const FSpacetimeDBUInt128& value) { return TCHAR_TO_UTF8(*value.ToDecimalString()); } +inline std::string literal_sql(const FSpacetimeDBInt128& value) { return TCHAR_TO_UTF8(*value.ToDecimalString()); } +inline std::string literal_sql(const FSpacetimeDBUInt256& value) { return TCHAR_TO_UTF8(*value.ToDecimalString()); } +inline std::string literal_sql(const FSpacetimeDBInt256& value) { return TCHAR_TO_UTF8(*value.ToDecimalString()); } diff --git a/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/QueryBuilder/join.h b/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/QueryBuilder/join.h new file mode 100644 index 00000000000..55f8aba52a3 --- /dev/null +++ b/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/QueryBuilder/join.h @@ -0,0 +1,385 @@ +#pragma once + +#include "QueryBuilder/table.h" +#include +#include +#include + +namespace SpacetimeDB::query_builder { + +template +struct IxJoinEq; + +template +struct member_tag {}; + +template +struct is_ix_col : std::false_type {}; + +template +struct is_ix_join_eq : std::false_type {}; + +inline std::false_type indexed_member_lookup(...); + +template +inline constexpr bool is_indexed_member_v = decltype(indexed_member_lookup(member_tag{}))::value; + +template +class IxCol { +public: + constexpr IxCol() = default; + + constexpr IxCol(const char* table_name, const char* column_name) + : column_(table_name, column_name) {} + + template + [[nodiscard]] auto eq(const IxCol& rhs) const { + return IxJoinEq{column_, rhs.column_}; + } + + template + [[nodiscard]] auto Eq(const IxCol& rhs) const { + return eq(rhs); + } + + // Keep mismatched indexed-column comparisons on a dedicated overload so they + // fail here with a clear diagnostic instead of falling through to BoolExpr. + template + [[nodiscard]] auto eq(const IxCol&) const { + static_assert(std::is_same_v, "Semijoin indexed equality requires both sides to have the same value type."); + return IxJoinEq{}; + } + + template + [[nodiscard]] auto Eq(const IxCol& rhs) const { + return eq(rhs); + } + + template + requires(!is_ix_col>::value) + [[nodiscard]] BoolExpr eq(const TRhs& rhs) const { + return compare(BoolExpr::Kind::Eq, rhs); + } + + template + requires(!is_ix_col>::value) + [[nodiscard]] BoolExpr Eq(const TRhs& rhs) const { return eq(rhs); } + + [[nodiscard]] constexpr const ColumnRef& column_ref() const { return column_; } + +private: + template + [[nodiscard]] BoolExpr compare(typename BoolExpr::Kind kind, const TRhs& rhs) const { + return BoolExpr::compare(kind, detail::Operand::column(column_), detail::to_operand(rhs)); + } + + ColumnRef column_; + + template + friend class IxCol; +}; + +template +struct is_ix_col> : std::true_type {}; + +namespace detail { + +template +inline constexpr bool delayed_is_indexed_member_v = is_indexed_member_v; + +} // namespace detail + +template +struct IxJoinEq { + ColumnRef lhs; + ColumnRef rhs; +}; + +template +struct is_ix_join_eq> : std::true_type {}; + +template +class LeftSemiJoin { +public: + using row_type = TLeftRow; + + LeftSemiJoin( + Table left, + Table right, + ColumnRef left_join_ref, + ColumnRef right_join_ref, + std::optional> where_expr = std::nullopt) + : left_(std::move(left)) + , right_(std::move(right)) + , left_join_ref_(left_join_ref) + , right_join_ref_(right_join_ref) + , where_expr_(std::move(where_expr)) {} + + // `where` is the ergonomic entry point. Normal C++ predicates receive only + // columns; indexed columns are reserved for joins unless explicitly enabled. + template + [[nodiscard]] LeftSemiJoin where(TFn&& predicate) const { + if constexpr (SPACETIMEDB_QUERY_BUILDER_ENABLE_INDEXED_WHERE && std::is_invocable_v) { + return where_ix(std::forward(predicate)); + } else { + detail::assert_where_predicate_is_column_only(); + return where_col(std::forward(predicate)); + } + } + + template + [[nodiscard]] LeftSemiJoin Where(TFn&& predicate) const { + return where(std::forward(predicate)); + } + + template + [[nodiscard]] LeftSemiJoin filter(TFn&& predicate) const { + return where(std::forward(predicate)); + } + + template + [[nodiscard]] LeftSemiJoin Filter(TFn&& predicate) const { + return where(std::forward(predicate)); + } + + [[nodiscard]] RawQuery build() const { + std::string sql; + sql.reserve( + 48 + + (std::char_traits::length(left_.name()) * 3) + + std::char_traits::length(right_.name()) * 2 + + std::char_traits::length(left_join_ref_.column_name()) + + std::char_traits::length(right_join_ref_.column_name())); + sql += "SELECT \""; + sql += left_.name(); + sql += "\".* FROM \""; + sql += left_.name(); + sql += "\" JOIN \""; + sql += right_.name(); + sql += "\" ON "; + sql += left_join_ref_.format(); + sql += " = "; + sql += right_join_ref_.format(); + if (where_expr_) { + sql += " WHERE " + where_expr_->format(); + } + return RawQuery(std::move(sql)); + } + + [[nodiscard]] std::string into_sql() const { return build().into_sql(); } + +private: + template + [[nodiscard]] LeftSemiJoin where_col(TFn&& predicate) const { + auto extra = detail::make_bool_expr(std::forward(predicate)(left_.cols())); + return LeftSemiJoin(left_, right_, left_join_ref_, right_join_ref_, where_expr_ ? where_expr_->and_(extra) : std::optional>(std::move(extra))); + } + + template + [[nodiscard]] LeftSemiJoin where_ix(TFn&& predicate) const { + auto extra = detail::make_bool_expr(std::forward(predicate)(left_.cols(), left_.ix_cols())); + return LeftSemiJoin(left_, right_, left_join_ref_, right_join_ref_, where_expr_ ? where_expr_->and_(extra) : std::optional>(std::move(extra))); + } + + Table left_; + Table right_; + ColumnRef left_join_ref_; + ColumnRef right_join_ref_; + std::optional> where_expr_; +}; + +template +class RightSemiJoin { +public: + using row_type = TRightRow; + + RightSemiJoin( + Table left, + Table right, + ColumnRef left_join_ref, + ColumnRef right_join_ref, + std::optional> left_where_expr = std::nullopt, + std::optional> right_where_expr = std::nullopt) + : left_(std::move(left)) + , right_(std::move(right)) + , left_join_ref_(left_join_ref) + , right_join_ref_(right_join_ref) + , left_where_expr_(std::move(left_where_expr)) + , right_where_expr_(std::move(right_where_expr)) {} + + // `where` is the ergonomic entry point. Normal C++ predicates receive only + // columns; indexed columns are reserved for joins unless explicitly enabled. + template + [[nodiscard]] RightSemiJoin where(TFn&& predicate) const { + if constexpr (SPACETIMEDB_QUERY_BUILDER_ENABLE_INDEXED_WHERE && std::is_invocable_v) { + return where_ix(std::forward(predicate)); + } else { + detail::assert_where_predicate_is_column_only(); + return where_col(std::forward(predicate)); + } + } + + template + [[nodiscard]] RightSemiJoin Where(TFn&& predicate) const { + return where(std::forward(predicate)); + } + + template + [[nodiscard]] RightSemiJoin filter(TFn&& predicate) const { + return where(std::forward(predicate)); + } + + template + [[nodiscard]] RightSemiJoin Filter(TFn&& predicate) const { + return where(std::forward(predicate)); + } + + [[nodiscard]] RawQuery build() const { + std::string sql; + sql.reserve( + 48 + + (std::char_traits::length(left_.name()) * 2) + + (std::char_traits::length(right_.name()) * 3) + + std::char_traits::length(left_join_ref_.column_name()) + + std::char_traits::length(right_join_ref_.column_name())); + sql += "SELECT \""; + sql += right_.name(); + sql += "\".* FROM \""; + sql += left_.name(); + sql += "\" JOIN \""; + sql += right_.name(); + sql += "\" ON "; + sql += left_join_ref_.format(); + sql += " = "; + sql += right_join_ref_.format(); + + if (left_where_expr_ && right_where_expr_) { + sql += " WHERE "; + sql += left_where_expr_->format(); + sql += " AND "; + sql += right_where_expr_->format(); + } else if (left_where_expr_) { + sql += " WHERE "; + sql += left_where_expr_->format(); + } else if (right_where_expr_) { + sql += " WHERE "; + sql += right_where_expr_->format(); + } + + return RawQuery(std::move(sql)); + } + + [[nodiscard]] std::string into_sql() const { return build().into_sql(); } + +private: + template + [[nodiscard]] RightSemiJoin where_col(TFn&& predicate) const { + auto extra = detail::make_bool_expr(std::forward(predicate)(right_.cols())); + return RightSemiJoin(left_, right_, left_join_ref_, right_join_ref_, left_where_expr_, right_where_expr_ ? right_where_expr_->and_(extra) : std::optional>(std::move(extra))); + } + + template + [[nodiscard]] RightSemiJoin where_ix(TFn&& predicate) const { + auto extra = detail::make_bool_expr(std::forward(predicate)(right_.cols(), right_.ix_cols())); + return RightSemiJoin(left_, right_, left_join_ref_, right_join_ref_, left_where_expr_, right_where_expr_ ? right_where_expr_->and_(extra) : std::optional>(std::move(extra))); + } + + Table left_; + Table right_; + ColumnRef left_join_ref_; + ColumnRef right_join_ref_; + std::optional> left_where_expr_; + std::optional> right_where_expr_; +}; + +namespace detail { + +template +[[nodiscard]] auto left_semijoin_impl(const Table& left, const Table& right, TFn&& predicate) { + static_assert(can_be_lookup_table_v>, "Lookup side of a semijoin must opt in via CanBeLookupTable."); + const auto join = std::forward(predicate)(left.ix_cols(), right.ix_cols()); + using TJoin = std::remove_cvref_t; + if constexpr (is_ix_join_eq::value) { + return LeftSemiJoin(left, right, join.lhs, join.rhs); + } else { + static_assert(is_ix_join_eq::value, "Semijoin predicate must compare two indexed columns with eq()."); + return LeftSemiJoin(left, right, {}, {}); + } +} + +template +[[nodiscard]] auto left_semijoin_impl(const FromWhere& left, const Table& right, TFn&& predicate) { + static_assert(can_be_lookup_table_v>, "Lookup side of a semijoin must opt in via CanBeLookupTable."); + const auto join = std::forward(predicate)(left.table().ix_cols(), right.ix_cols()); + using TJoin = std::remove_cvref_t; + if constexpr (is_ix_join_eq::value) { + return LeftSemiJoin(left.table(), right, join.lhs, join.rhs, left.expr()); + } else { + static_assert(is_ix_join_eq::value, "Semijoin predicate must compare two indexed columns with eq()."); + return LeftSemiJoin(left.table(), right, {}, {}, left.expr()); + } +} + +template +[[nodiscard]] auto right_semijoin_impl(const Table& left, const Table& right, TFn&& predicate) { + static_assert(can_be_lookup_table_v>, "Lookup side of a semijoin must opt in via CanBeLookupTable."); + const auto join = std::forward(predicate)(left.ix_cols(), right.ix_cols()); + using TJoin = std::remove_cvref_t; + if constexpr (is_ix_join_eq::value) { + return RightSemiJoin(left, right, join.lhs, join.rhs); + } else { + static_assert(is_ix_join_eq::value, "Semijoin predicate must compare two indexed columns with eq()."); + return RightSemiJoin(left, right, {}, {}); + } +} + +template +[[nodiscard]] auto right_semijoin_impl(const FromWhere& left, const Table& right, TFn&& predicate) { + static_assert(can_be_lookup_table_v>, "Lookup side of a semijoin must opt in via CanBeLookupTable."); + const auto join = std::forward(predicate)(left.table().ix_cols(), right.ix_cols()); + using TJoin = std::remove_cvref_t; + if constexpr (is_ix_join_eq::value) { + return RightSemiJoin(left.table(), right, join.lhs, join.rhs, left.expr()); + } else { + static_assert(is_ix_join_eq::value, "Semijoin predicate must compare two indexed columns with eq()."); + return RightSemiJoin(left.table(), right, {}, {}, left.expr()); + } +} + +} // namespace detail + +template +template +[[nodiscard]] auto Table::left_semijoin(const Table& right, TFn&& predicate) const { + return detail::left_semijoin_impl(*this, right, std::forward(predicate)); +} + +template +template +[[nodiscard]] auto Table::right_semijoin(const Table& right, TFn&& predicate) const { + return detail::right_semijoin_impl(*this, right, std::forward(predicate)); +} + +template +template +[[nodiscard]] auto FromWhere::left_semijoin(const Table& right, TFn&& predicate) const { + return detail::left_semijoin_impl(*this, right, std::forward(predicate)); +} + +template +template +[[nodiscard]] auto FromWhere::right_semijoin(const Table& right, TFn&& predicate) const { + return detail::right_semijoin_impl(*this, right, std::forward(predicate)); +} + +template +struct query_row_type> { + using type = TLeftRow; +}; + +template +struct query_row_type> { + using type = TRightRow; +}; + +} // namespace SpacetimeDB::query_builder diff --git a/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/QueryBuilder/query_builder.h b/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/QueryBuilder/query_builder.h new file mode 100644 index 00000000000..8b06502e337 --- /dev/null +++ b/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/QueryBuilder/query_builder.h @@ -0,0 +1,98 @@ +#pragma once + +#include "QueryBuilder/expr.h" +#include "QueryBuilder/join.h" +#include "QueryBuilder/table.h" + +#include +#include +#include +#include + +namespace SpacetimeDB { + +template +using Query = query_builder::RawQuery; + +namespace detail { + +template +struct NamedQuerySourceTag { + using type = TRow; + const char* __table_name_internal; +}; + +struct NotAQuerySourceTag {}; + +template +struct query_source_row_type {}; + +template +concept HasQuerySourceRowType = requires { + typename query_source_row_type>::type; +}; + +template +using query_source_row_type_t = typename query_source_row_type>::type; + +template + requires query_builder::QueryBuilderReturn +struct query_source_row_type { + using type = query_builder::query_row_type_t; +}; + +template +struct query_source_row_type> { + using type = TRow; +}; + +template +struct query_source_row_type> { + using type = TRow; +}; + +template +constexpr auto MakeQuerySourceTag(const char* source_name) { + if constexpr (HasQuerySourceRowType) { + return NamedQuerySourceTag>{source_name}; + } else { + return NotAQuerySourceTag{}; + } +} + +template +constexpr const char* GetQuerySourceName(const TSourceTag& tag) { + return tag.__table_name_internal; +} + +} // namespace detail + +class QueryBuilder { +public: + template + [[nodiscard]] constexpr query_builder::Table table(const char* table_name, TCols cols, TIxCols ix_cols) const { + return query_builder::Table(table_name, std::move(cols), std::move(ix_cols)); + } + + template + [[nodiscard]] constexpr auto table(TTableTag tag) const + -> query_builder::Table< + typename std::remove_cvref_t::type, + decltype(query_builder::HasCols::type>::get(std::declval())), + decltype(query_builder::HasIxCols::type>::get(std::declval()))> { + using TRow = typename std::remove_cvref_t::type; + const char* table_name = detail::GetQuerySourceName(tag); + return table( + table_name, + query_builder::HasCols::get(table_name), + query_builder::HasIxCols::get(table_name)); + } + + template + [[nodiscard]] constexpr auto operator[](TTableTag tag) const + -> decltype(table(tag)) { + return table(tag); + } +}; + +} // namespace SpacetimeDB diff --git a/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/QueryBuilder/table.h b/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/QueryBuilder/table.h new file mode 100644 index 00000000000..e27f1a55da1 --- /dev/null +++ b/sdks/unreal/src/SpacetimeDbSdk/Source/SpacetimeDbSdk/Public/QueryBuilder/table.h @@ -0,0 +1,333 @@ +#pragma once + +#ifndef SPACETIMEDB_QUERY_BUILDER_ENABLE_BSATN +#define SPACETIMEDB_QUERY_BUILDER_ENABLE_BSATN 0 +#endif + +#ifndef SPACETIMEDB_QUERY_BUILDER_ENABLE_INDEXED_WHERE +#define SPACETIMEDB_QUERY_BUILDER_ENABLE_INDEXED_WHERE 1 +#endif + +#if SPACETIMEDB_QUERY_BUILDER_ENABLE_BSATN +#include "BSATN/Core/traits.h" +#endif +#include "QueryBuilder/expr.h" +#include +#include +#include +#include +#include + +namespace SpacetimeDB::query_builder { + +template +struct query_row_type; + +template +class Table; + +template +class FromWhere; + +template +struct HasCols; + +template +struct HasIxCols; + +template +struct CanBeLookupTable : std::false_type {}; + +template +using query_row_type_t = typename query_row_type>::type; + +template +class RawQuery { +public: + using row_type = TRow; + + explicit RawQuery(std::string sql) + : sql_(std::move(sql)) {} + + template + requires(!std::same_as, RawQuery> && + requires { typename query_row_type_t; } && + std::same_as, TRow> && + requires(TQuery&& query) { { std::forward(query).into_sql() } -> std::convertible_to; }) + RawQuery(TQuery&& query) + : sql_(std::forward(query).into_sql()) {} + + [[nodiscard]] const std::string& sql() const { return sql_; } + [[nodiscard]] std::string into_sql() const { return sql_; } + +private: + std::string sql_; +}; + +template +concept QueryLike = requires(const T& query) { + { query.into_sql() } -> std::convertible_to; +}; + +template +concept QueryBuilderReturn = requires { + typename query_row_type_t; +} && QueryLike>; + +namespace detail { + +template +struct row_tag {}; + +template +constexpr void assert_where_predicate_is_column_only() { + static_assert( + std::is_invocable_v, + "where() predicates must accept only table columns. Indexed columns are only available in semijoin predicates."); +} + +inline std::false_type lookup_table_allowed(...); + +template +auto adl_lookup_table_allowed(int) -> decltype(lookup_table_allowed(row_tag{})); + +template +std::false_type adl_lookup_table_allowed(...); + +} // namespace detail + +template +inline constexpr bool can_be_lookup_row_v = + CanBeLookupTable::value || decltype(detail::adl_lookup_table_allowed(0))::value; + +template +inline constexpr bool can_be_lookup_table_v = CanBeLookupTable>::value; + +template +struct CanBeLookupTable> : std::bool_constant> {}; + +template +class Table { +public: + using row_type = TRow; + using cols_type = TCols; + using ix_cols_type = TIxCols; + + constexpr Table(const char* table_name, TCols cols, TIxCols ix_cols) + : table_name_(table_name), cols_(std::move(cols)), ix_cols_(std::move(ix_cols)) {} + + [[nodiscard]] constexpr const char* name() const { return table_name_; } + [[nodiscard]] constexpr const TCols& cols() const { return cols_; } + [[nodiscard]] constexpr const TIxCols& ix_cols() const { return ix_cols_; } + + [[nodiscard]] RawQuery build() const { + std::string sql; + sql.reserve(16 + std::char_traits::length(table_name_)); + sql += "SELECT * FROM \""; + sql += table_name_; + sql += "\""; + return RawQuery(std::move(sql)); + } + + [[nodiscard]] std::string into_sql() const { return build().into_sql(); } + + // `where` is the ergonomic entry point. Normal C++ predicates receive only + // columns; indexed columns are reserved for joins unless explicitly enabled. + template + [[nodiscard]] auto where(TFn&& predicate) const { + if constexpr (SPACETIMEDB_QUERY_BUILDER_ENABLE_INDEXED_WHERE && std::is_invocable_v) { + return where_ix(std::forward(predicate)); + } else { + detail::assert_where_predicate_is_column_only(); + return where_col(std::forward(predicate)); + } + } + + template + [[nodiscard]] auto Where(TFn&& predicate) const { + return where(std::forward(predicate)); + } + + template + [[nodiscard]] auto filter(TFn&& predicate) const { + return where(std::forward(predicate)); + } + + template + [[nodiscard]] auto Filter(TFn&& predicate) const { + return where(std::forward(predicate)); + } + + template + [[nodiscard]] auto left_semijoin(const Table& right, TFn&& predicate) const; + + template + [[nodiscard]] auto LeftSemijoin(const Table& right, TFn&& predicate) const { + return left_semijoin(right, std::forward(predicate)); + } + + template + [[nodiscard]] auto right_semijoin(const Table& right, TFn&& predicate) const; + + template + [[nodiscard]] auto RightSemijoin(const Table& right, TFn&& predicate) const { + return right_semijoin(right, std::forward(predicate)); + } + +private: + template + [[nodiscard]] auto where_col(TFn&& predicate) const { + auto expr = detail::make_bool_expr(std::forward(predicate)(cols_)); + return FromWhere(*this, std::move(expr)); + } + + template + [[nodiscard]] auto where_ix(TFn&& predicate) const { + auto expr = detail::make_bool_expr(std::forward(predicate)(cols_, ix_cols_)); + return FromWhere(*this, std::move(expr)); + } + + const char* table_name_; + TCols cols_; + TIxCols ix_cols_; +}; + +template +class FromWhere { +public: + using row_type = TRow; + using cols_type = TCols; + using ix_cols_type = TIxCols; + + constexpr FromWhere(Table table, BoolExpr expr) + : table_(std::move(table)), expr_(std::move(expr)) {} + + [[nodiscard]] constexpr const char* table_name() const { return table_.name(); } + [[nodiscard]] constexpr const Table& table() const { return table_; } + [[nodiscard]] const BoolExpr& expr() const { return expr_; } + + [[nodiscard]] RawQuery build() const { + std::string predicate = expr_.format(); + std::string sql; + sql.reserve(24 + std::char_traits::length(table_.name()) + predicate.size()); + sql += "SELECT * FROM \""; + sql += table_.name(); + sql += "\" WHERE "; + sql += predicate; + return RawQuery(std::move(sql)); + } + + [[nodiscard]] std::string into_sql() const { return build().into_sql(); } + + // `where` is the ergonomic entry point. Normal C++ predicates receive only + // columns; indexed columns are reserved for joins unless explicitly enabled. + template + [[nodiscard]] FromWhere where(TFn&& predicate) const { + if constexpr (SPACETIMEDB_QUERY_BUILDER_ENABLE_INDEXED_WHERE && std::is_invocable_v) { + return where_ix(std::forward(predicate)); + } else { + detail::assert_where_predicate_is_column_only(); + return where_col(std::forward(predicate)); + } + } + + template + [[nodiscard]] FromWhere Where(TFn&& predicate) const { + return where(std::forward(predicate)); + } + + template + [[nodiscard]] FromWhere filter(TFn&& predicate) const { + return where(std::forward(predicate)); + } + + template + [[nodiscard]] FromWhere Filter(TFn&& predicate) const { + return where(std::forward(predicate)); + } + + template + [[nodiscard]] auto left_semijoin(const Table& right, TFn&& predicate) const; + + template + [[nodiscard]] auto LeftSemijoin(const Table& right, TFn&& predicate) const { + return left_semijoin(right, std::forward(predicate)); + } + + template + [[nodiscard]] auto right_semijoin(const Table& right, TFn&& predicate) const; + + template + [[nodiscard]] auto RightSemijoin(const Table& right, TFn&& predicate) const { + return right_semijoin(right, std::forward(predicate)); + } + +private: + template + [[nodiscard]] FromWhere where_col(TFn&& predicate) const { + auto extra = detail::make_bool_expr(std::forward(predicate)(table_.cols())); + return FromWhere(table_, expr_.and_(extra)); + } + + template + [[nodiscard]] FromWhere where_ix(TFn&& predicate) const { + auto extra = detail::make_bool_expr(std::forward(predicate)(table_.cols(), table_.ix_cols())); + return FromWhere(table_, expr_.and_(extra)); + } + + Table table_; + BoolExpr expr_; +}; + +template +struct query_row_type> { + using type = TRow; +}; + +template +struct query_row_type> { + using type = TRow; +}; + +template +struct query_row_type> { + using type = TRow; +}; + +} // namespace SpacetimeDB::query_builder + +#if SPACETIMEDB_QUERY_BUILDER_ENABLE_BSATN +namespace SpacetimeDb::bsatn { + +template +struct algebraic_type_of<::SpacetimeDB::query_builder::RawQuery> { + static AlgebraicType get() { + std::vector elements; + elements.emplace_back(std::string("__query__"), algebraic_type_of::get()); + return AlgebraicType::make_product(std::make_unique(std::move(elements))); + } +}; + +template +struct bsatn_traits<::SpacetimeDB::query_builder::RawQuery> { + static void serialize(Writer&, const ::SpacetimeDB::query_builder::RawQuery&) { + std::fputs("SpacetimeDB bindings-cpp internal error: attempted to BSATN-serialize query_builder::RawQuery. " + "RawQuery is only valid as a view return type and should not be serialized directly.\n", + stderr); + std::abort(); + } + + static ::SpacetimeDB::query_builder::RawQuery deserialize(Reader&) { + std::fputs("SpacetimeDB bindings-cpp internal error: attempted to BSATN-deserialize query_builder::RawQuery. " + "RawQuery should only appear in query-view metadata handling.\n", + stderr); + std::abort(); + } + + static AlgebraicType algebraic_type() { + return algebraic_type_of<::SpacetimeDB::query_builder::RawQuery>::get(); + } +}; + +} // namespace SpacetimeDb::bsatn +#endif diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Private/ModuleBindings/SpacetimeDBClient.g.cpp b/sdks/unreal/tests/TestClient/Source/TestClient/Private/ModuleBindings/SpacetimeDBClient.g.cpp index 22169073be0..f9344999447 100644 --- a/sdks/unreal/tests/TestClient/Source/TestClient/Private/ModuleBindings/SpacetimeDBClient.g.cpp +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Private/ModuleBindings/SpacetimeDBClient.g.cpp @@ -484,7 +484,7 @@ void URemoteTables::Initialize() /**/ } -void URemoteReducers::DeleteFromBtreeU32(const TArray& Rows) +void URemoteReducers::DeleteAllOneBool(const bool B) { if (!Conn) { @@ -492,45 +492,45 @@ void URemoteReducers::DeleteFromBtreeU32(const TArray& Rows) return; } - FDeleteFromBtreeU32Args ReducerArgs(Rows); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_from_btree_u_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteFromBtreeU32(ReducerArgs)); } + FDeleteAllOneBoolArgs ReducerArgs(B); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_bool"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneBool(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteFromBtreeU32(const FReducerEventContext& Context, const UDeleteFromBtreeU32Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOneBool(const FReducerEventContext& Context, const UDeleteAllOneBoolReducer* Args) { - if (!OnDeleteFromBtreeU32.IsBound()) + if (!OnDeleteAllOneBool.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteFromBtreeU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneBool")); } return false; } - OnDeleteFromBtreeU32.Broadcast(Context, Args->Rows); + OnDeleteAllOneBool.Broadcast(Context, Args->B); return true; } -bool URemoteReducers::InvokeDeleteFromBtreeU32WithArgs(const FReducerEventContext& Context, const FDeleteFromBtreeU32Args& Args) +bool URemoteReducers::InvokeDeleteAllOneBoolWithArgs(const FReducerEventContext& Context, const FDeleteAllOneBoolArgs& Args) { - if (!OnDeleteFromBtreeU32.IsBound()) + if (!OnDeleteAllOneBool.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteFromBtreeU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneBool")); } return false; } - OnDeleteFromBtreeU32.Broadcast(Context, Args.Rows); + OnDeleteAllOneBool.Broadcast(Context, Args.B); return true; } -void URemoteReducers::DeleteLargeTable(const uint8 A, const uint16 B, const uint32 C, const uint64 D, const FSpacetimeDBUInt128& E, const FSpacetimeDBUInt256& F, const int8 G, const int16 H, const int32 I, const int64 J, const FSpacetimeDBInt128& K, const FSpacetimeDBInt256& L, const bool M, const float N, const double O, const FString& P, const ESimpleEnumType& Q, const FEnumWithPayloadType& R, const FUnitStructType& S, const FByteStructType& T, const FEveryPrimitiveStructType& U, const FEveryVecStructType& V) +void URemoteReducers::DeleteAllOneByteStruct(const FByteStructType& S) { if (!Conn) { @@ -538,68 +538,45 @@ void URemoteReducers::DeleteLargeTable(const uint8 A, const uint16 B, const uint return; } - FDeleteLargeTableArgs ReducerArgs(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_large_table"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteLargeTable(ReducerArgs)); } + FDeleteAllOneByteStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_byte_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneByteStruct(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteLargeTable(const FReducerEventContext& Context, const UDeleteLargeTableReducer* Args) +bool URemoteReducers::InvokeDeleteAllOneByteStruct(const FReducerEventContext& Context, const UDeleteAllOneByteStructReducer* Args) { - if (!OnDeleteLargeTable.IsBound()) + if (!OnDeleteAllOneByteStruct.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteLargeTable")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneByteStruct")); } return false; } - FDeleteLargeTableArgs ArgsStruct; - ArgsStruct.A = Args->A; - ArgsStruct.B = Args->B; - ArgsStruct.C = Args->C; - ArgsStruct.D = Args->D; - ArgsStruct.E = Args->E; - ArgsStruct.F = Args->F; - ArgsStruct.G = Args->G; - ArgsStruct.H = Args->H; - ArgsStruct.I = Args->I; - ArgsStruct.J = Args->J; - ArgsStruct.K = Args->K; - ArgsStruct.L = Args->L; - ArgsStruct.M = Args->M; - ArgsStruct.N = Args->N; - ArgsStruct.O = Args->O; - ArgsStruct.P = Args->P; - ArgsStruct.Q = Args->Q; - ArgsStruct.R = Args->R; - ArgsStruct.S = Args->S; - ArgsStruct.T = Args->T; - ArgsStruct.U = Args->U; - ArgsStruct.V = Args->V; - OnDeleteLargeTable.Broadcast(Context, ArgsStruct); + OnDeleteAllOneByteStruct.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeDeleteLargeTableWithArgs(const FReducerEventContext& Context, const FDeleteLargeTableArgs& Args) +bool URemoteReducers::InvokeDeleteAllOneByteStructWithArgs(const FReducerEventContext& Context, const FDeleteAllOneByteStructArgs& Args) { - if (!OnDeleteLargeTable.IsBound()) + if (!OnDeleteAllOneByteStruct.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteLargeTable")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneByteStruct")); } return false; } - OnDeleteLargeTable.Broadcast(Context, Args); + OnDeleteAllOneByteStruct.Broadcast(Context, Args.S); return true; } -void URemoteReducers::DeletePkBool(const bool B) +void URemoteReducers::DeleteAllOneEnumWithPayload(const FEnumWithPayloadType& E) { if (!Conn) { @@ -607,45 +584,45 @@ void URemoteReducers::DeletePkBool(const bool B) return; } - FDeletePkBoolArgs ReducerArgs(B); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_bool"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkBool(ReducerArgs)); } + FDeleteAllOneEnumWithPayloadArgs ReducerArgs(E); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_enum_with_payload"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneEnumWithPayload(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkBool(const FReducerEventContext& Context, const UDeletePkBoolReducer* Args) +bool URemoteReducers::InvokeDeleteAllOneEnumWithPayload(const FReducerEventContext& Context, const UDeleteAllOneEnumWithPayloadReducer* Args) { - if (!OnDeletePkBool.IsBound()) + if (!OnDeleteAllOneEnumWithPayload.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneEnumWithPayload")); } return false; } - OnDeletePkBool.Broadcast(Context, Args->B); + OnDeleteAllOneEnumWithPayload.Broadcast(Context, Args->E); return true; } -bool URemoteReducers::InvokeDeletePkBoolWithArgs(const FReducerEventContext& Context, const FDeletePkBoolArgs& Args) +bool URemoteReducers::InvokeDeleteAllOneEnumWithPayloadWithArgs(const FReducerEventContext& Context, const FDeleteAllOneEnumWithPayloadArgs& Args) { - if (!OnDeletePkBool.IsBound()) + if (!OnDeleteAllOneEnumWithPayload.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneEnumWithPayload")); } return false; } - OnDeletePkBool.Broadcast(Context, Args.B); + OnDeleteAllOneEnumWithPayload.Broadcast(Context, Args.E); return true; } -void URemoteReducers::DeletePkConnectionId(const FSpacetimeDBConnectionId& A) +void URemoteReducers::DeleteAllOneEveryPrimitiveStruct(const FEveryPrimitiveStructType& S) { if (!Conn) { @@ -653,45 +630,45 @@ void URemoteReducers::DeletePkConnectionId(const FSpacetimeDBConnectionId& A) return; } - FDeletePkConnectionIdArgs ReducerArgs(A); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_connection_id"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkConnectionId(ReducerArgs)); } + FDeleteAllOneEveryPrimitiveStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_every_primitive_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneEveryPrimitiveStruct(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkConnectionId(const FReducerEventContext& Context, const UDeletePkConnectionIdReducer* Args) +bool URemoteReducers::InvokeDeleteAllOneEveryPrimitiveStruct(const FReducerEventContext& Context, const UDeleteAllOneEveryPrimitiveStructReducer* Args) { - if (!OnDeletePkConnectionId.IsBound()) + if (!OnDeleteAllOneEveryPrimitiveStruct.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneEveryPrimitiveStruct")); } return false; } - OnDeletePkConnectionId.Broadcast(Context, Args->A); + OnDeleteAllOneEveryPrimitiveStruct.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeDeletePkConnectionIdWithArgs(const FReducerEventContext& Context, const FDeletePkConnectionIdArgs& Args) +bool URemoteReducers::InvokeDeleteAllOneEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FDeleteAllOneEveryPrimitiveStructArgs& Args) { - if (!OnDeletePkConnectionId.IsBound()) + if (!OnDeleteAllOneEveryPrimitiveStruct.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneEveryPrimitiveStruct")); } return false; } - OnDeletePkConnectionId.Broadcast(Context, Args.A); + OnDeleteAllOneEveryPrimitiveStruct.Broadcast(Context, Args.S); return true; } -void URemoteReducers::DeletePkI128(const FSpacetimeDBInt128& N) +void URemoteReducers::DeleteAllOneEveryVecStruct(const FEveryVecStructType& S) { if (!Conn) { @@ -699,45 +676,45 @@ void URemoteReducers::DeletePkI128(const FSpacetimeDBInt128& N) return; } - FDeletePkI128Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_i_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkI128(ReducerArgs)); } + FDeleteAllOneEveryVecStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_every_vec_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneEveryVecStruct(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkI128(const FReducerEventContext& Context, const UDeletePkI128Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOneEveryVecStruct(const FReducerEventContext& Context, const UDeleteAllOneEveryVecStructReducer* Args) { - if (!OnDeletePkI128.IsBound()) + if (!OnDeleteAllOneEveryVecStruct.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneEveryVecStruct")); } return false; } - OnDeletePkI128.Broadcast(Context, Args->N); + OnDeleteAllOneEveryVecStruct.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeDeletePkI128WithArgs(const FReducerEventContext& Context, const FDeletePkI128Args& Args) +bool URemoteReducers::InvokeDeleteAllOneEveryVecStructWithArgs(const FReducerEventContext& Context, const FDeleteAllOneEveryVecStructArgs& Args) { - if (!OnDeletePkI128.IsBound()) + if (!OnDeleteAllOneEveryVecStruct.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneEveryVecStruct")); } return false; } - OnDeletePkI128.Broadcast(Context, Args.N); + OnDeleteAllOneEveryVecStruct.Broadcast(Context, Args.S); return true; } -void URemoteReducers::DeletePkI16(const int16 N) +void URemoteReducers::DeleteAllOneF32(const float F) { if (!Conn) { @@ -745,45 +722,45 @@ void URemoteReducers::DeletePkI16(const int16 N) return; } - FDeletePkI16Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_i_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkI16(ReducerArgs)); } + FDeleteAllOneF32Args ReducerArgs(F); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_f_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneF32(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkI16(const FReducerEventContext& Context, const UDeletePkI16Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOneF32(const FReducerEventContext& Context, const UDeleteAllOneF32Reducer* Args) { - if (!OnDeletePkI16.IsBound()) + if (!OnDeleteAllOneF32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneF32")); } return false; } - OnDeletePkI16.Broadcast(Context, Args->N); + OnDeleteAllOneF32.Broadcast(Context, Args->F); return true; } -bool URemoteReducers::InvokeDeletePkI16WithArgs(const FReducerEventContext& Context, const FDeletePkI16Args& Args) +bool URemoteReducers::InvokeDeleteAllOneF32WithArgs(const FReducerEventContext& Context, const FDeleteAllOneF32Args& Args) { - if (!OnDeletePkI16.IsBound()) + if (!OnDeleteAllOneF32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneF32")); } return false; } - OnDeletePkI16.Broadcast(Context, Args.N); + OnDeleteAllOneF32.Broadcast(Context, Args.F); return true; } -void URemoteReducers::DeletePkI256(const FSpacetimeDBInt256& N) +void URemoteReducers::DeleteAllOneF64(const double F) { if (!Conn) { @@ -791,45 +768,45 @@ void URemoteReducers::DeletePkI256(const FSpacetimeDBInt256& N) return; } - FDeletePkI256Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_i_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkI256(ReducerArgs)); } + FDeleteAllOneF64Args ReducerArgs(F); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_f_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneF64(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkI256(const FReducerEventContext& Context, const UDeletePkI256Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOneF64(const FReducerEventContext& Context, const UDeleteAllOneF64Reducer* Args) { - if (!OnDeletePkI256.IsBound()) + if (!OnDeleteAllOneF64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneF64")); } return false; } - OnDeletePkI256.Broadcast(Context, Args->N); + OnDeleteAllOneF64.Broadcast(Context, Args->F); return true; } -bool URemoteReducers::InvokeDeletePkI256WithArgs(const FReducerEventContext& Context, const FDeletePkI256Args& Args) +bool URemoteReducers::InvokeDeleteAllOneF64WithArgs(const FReducerEventContext& Context, const FDeleteAllOneF64Args& Args) { - if (!OnDeletePkI256.IsBound()) + if (!OnDeleteAllOneF64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneF64")); } return false; } - OnDeletePkI256.Broadcast(Context, Args.N); + OnDeleteAllOneF64.Broadcast(Context, Args.F); return true; } -void URemoteReducers::DeletePkI32(const int32 N) +void URemoteReducers::DeleteAllOneI128(const FSpacetimeDBInt128& N) { if (!Conn) { @@ -837,45 +814,45 @@ void URemoteReducers::DeletePkI32(const int32 N) return; } - FDeletePkI32Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_i_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkI32(ReducerArgs)); } + FDeleteAllOneI128Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_i_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneI128(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkI32(const FReducerEventContext& Context, const UDeletePkI32Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOneI128(const FReducerEventContext& Context, const UDeleteAllOneI128Reducer* Args) { - if (!OnDeletePkI32.IsBound()) + if (!OnDeleteAllOneI128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneI128")); } return false; } - OnDeletePkI32.Broadcast(Context, Args->N); + OnDeleteAllOneI128.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeDeletePkI32WithArgs(const FReducerEventContext& Context, const FDeletePkI32Args& Args) +bool URemoteReducers::InvokeDeleteAllOneI128WithArgs(const FReducerEventContext& Context, const FDeleteAllOneI128Args& Args) { - if (!OnDeletePkI32.IsBound()) + if (!OnDeleteAllOneI128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneI128")); } return false; } - OnDeletePkI32.Broadcast(Context, Args.N); + OnDeleteAllOneI128.Broadcast(Context, Args.N); return true; } -void URemoteReducers::DeletePkI64(const int64 N) +void URemoteReducers::DeleteAllOneI16(const int16 N) { if (!Conn) { @@ -883,45 +860,45 @@ void URemoteReducers::DeletePkI64(const int64 N) return; } - FDeletePkI64Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_i_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkI64(ReducerArgs)); } + FDeleteAllOneI16Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_i_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneI16(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkI64(const FReducerEventContext& Context, const UDeletePkI64Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOneI16(const FReducerEventContext& Context, const UDeleteAllOneI16Reducer* Args) { - if (!OnDeletePkI64.IsBound()) + if (!OnDeleteAllOneI16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneI16")); } return false; } - OnDeletePkI64.Broadcast(Context, Args->N); + OnDeleteAllOneI16.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeDeletePkI64WithArgs(const FReducerEventContext& Context, const FDeletePkI64Args& Args) +bool URemoteReducers::InvokeDeleteAllOneI16WithArgs(const FReducerEventContext& Context, const FDeleteAllOneI16Args& Args) { - if (!OnDeletePkI64.IsBound()) + if (!OnDeleteAllOneI16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneI16")); } return false; } - OnDeletePkI64.Broadcast(Context, Args.N); + OnDeleteAllOneI16.Broadcast(Context, Args.N); return true; } -void URemoteReducers::DeletePkI8(const int8 N) +void URemoteReducers::DeleteAllOneI256(const FSpacetimeDBInt256& N) { if (!Conn) { @@ -929,45 +906,45 @@ void URemoteReducers::DeletePkI8(const int8 N) return; } - FDeletePkI8Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_i_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkI8(ReducerArgs)); } + FDeleteAllOneI256Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_i_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneI256(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkI8(const FReducerEventContext& Context, const UDeletePkI8Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOneI256(const FReducerEventContext& Context, const UDeleteAllOneI256Reducer* Args) { - if (!OnDeletePkI8.IsBound()) + if (!OnDeleteAllOneI256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneI256")); } return false; } - OnDeletePkI8.Broadcast(Context, Args->N); + OnDeleteAllOneI256.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeDeletePkI8WithArgs(const FReducerEventContext& Context, const FDeletePkI8Args& Args) +bool URemoteReducers::InvokeDeleteAllOneI256WithArgs(const FReducerEventContext& Context, const FDeleteAllOneI256Args& Args) { - if (!OnDeletePkI8.IsBound()) + if (!OnDeleteAllOneI256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneI256")); } return false; } - OnDeletePkI8.Broadcast(Context, Args.N); + OnDeleteAllOneI256.Broadcast(Context, Args.N); return true; } -void URemoteReducers::DeletePkIdentity(const FSpacetimeDBIdentity& I) +void URemoteReducers::DeleteAllOneI32(const int32 N) { if (!Conn) { @@ -975,45 +952,45 @@ void URemoteReducers::DeletePkIdentity(const FSpacetimeDBIdentity& I) return; } - FDeletePkIdentityArgs ReducerArgs(I); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_identity"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkIdentity(ReducerArgs)); } + FDeleteAllOneI32Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneI32(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkIdentity(const FReducerEventContext& Context, const UDeletePkIdentityReducer* Args) +bool URemoteReducers::InvokeDeleteAllOneI32(const FReducerEventContext& Context, const UDeleteAllOneI32Reducer* Args) { - if (!OnDeletePkIdentity.IsBound()) + if (!OnDeleteAllOneI32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneI32")); } return false; } - OnDeletePkIdentity.Broadcast(Context, Args->I); + OnDeleteAllOneI32.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeDeletePkIdentityWithArgs(const FReducerEventContext& Context, const FDeletePkIdentityArgs& Args) +bool URemoteReducers::InvokeDeleteAllOneI32WithArgs(const FReducerEventContext& Context, const FDeleteAllOneI32Args& Args) { - if (!OnDeletePkIdentity.IsBound()) + if (!OnDeleteAllOneI32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneI32")); } return false; } - OnDeletePkIdentity.Broadcast(Context, Args.I); + OnDeleteAllOneI32.Broadcast(Context, Args.N); return true; } -void URemoteReducers::DeletePkString(const FString& S) +void URemoteReducers::DeleteAllOneI64(const int64 N) { if (!Conn) { @@ -1021,45 +998,45 @@ void URemoteReducers::DeletePkString(const FString& S) return; } - FDeletePkStringArgs ReducerArgs(S); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_string"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkString(ReducerArgs)); } + FDeleteAllOneI64Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_i_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneI64(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkString(const FReducerEventContext& Context, const UDeletePkStringReducer* Args) +bool URemoteReducers::InvokeDeleteAllOneI64(const FReducerEventContext& Context, const UDeleteAllOneI64Reducer* Args) { - if (!OnDeletePkString.IsBound()) + if (!OnDeleteAllOneI64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneI64")); } return false; } - OnDeletePkString.Broadcast(Context, Args->S); + OnDeleteAllOneI64.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeDeletePkStringWithArgs(const FReducerEventContext& Context, const FDeletePkStringArgs& Args) +bool URemoteReducers::InvokeDeleteAllOneI64WithArgs(const FReducerEventContext& Context, const FDeleteAllOneI64Args& Args) { - if (!OnDeletePkString.IsBound()) + if (!OnDeleteAllOneI64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneI64")); } return false; } - OnDeletePkString.Broadcast(Context, Args.S); + OnDeleteAllOneI64.Broadcast(Context, Args.N); return true; } -void URemoteReducers::DeletePkU128(const FSpacetimeDBUInt128& N) +void URemoteReducers::DeleteAllOneI8(const int8 N) { if (!Conn) { @@ -1067,45 +1044,45 @@ void URemoteReducers::DeletePkU128(const FSpacetimeDBUInt128& N) return; } - FDeletePkU128Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU128(ReducerArgs)); } + FDeleteAllOneI8Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_i_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneI8(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkU128(const FReducerEventContext& Context, const UDeletePkU128Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOneI8(const FReducerEventContext& Context, const UDeleteAllOneI8Reducer* Args) { - if (!OnDeletePkU128.IsBound()) + if (!OnDeleteAllOneI8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneI8")); } return false; } - OnDeletePkU128.Broadcast(Context, Args->N); + OnDeleteAllOneI8.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeDeletePkU128WithArgs(const FReducerEventContext& Context, const FDeletePkU128Args& Args) +bool URemoteReducers::InvokeDeleteAllOneI8WithArgs(const FReducerEventContext& Context, const FDeleteAllOneI8Args& Args) { - if (!OnDeletePkU128.IsBound()) + if (!OnDeleteAllOneI8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneI8")); } return false; } - OnDeletePkU128.Broadcast(Context, Args.N); + OnDeleteAllOneI8.Broadcast(Context, Args.N); return true; } -void URemoteReducers::DeletePkU16(const uint16 N) +void URemoteReducers::DeleteAllOneIdentity(const FSpacetimeDBIdentity& I) { if (!Conn) { @@ -1113,45 +1090,45 @@ void URemoteReducers::DeletePkU16(const uint16 N) return; } - FDeletePkU16Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU16(ReducerArgs)); } + FDeleteAllOneIdentityArgs ReducerArgs(I); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneIdentity(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkU16(const FReducerEventContext& Context, const UDeletePkU16Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOneIdentity(const FReducerEventContext& Context, const UDeleteAllOneIdentityReducer* Args) { - if (!OnDeletePkU16.IsBound()) + if (!OnDeleteAllOneIdentity.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneIdentity")); } return false; } - OnDeletePkU16.Broadcast(Context, Args->N); + OnDeleteAllOneIdentity.Broadcast(Context, Args->I); return true; } -bool URemoteReducers::InvokeDeletePkU16WithArgs(const FReducerEventContext& Context, const FDeletePkU16Args& Args) +bool URemoteReducers::InvokeDeleteAllOneIdentityWithArgs(const FReducerEventContext& Context, const FDeleteAllOneIdentityArgs& Args) { - if (!OnDeletePkU16.IsBound()) + if (!OnDeleteAllOneIdentity.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneIdentity")); } return false; } - OnDeletePkU16.Broadcast(Context, Args.N); + OnDeleteAllOneIdentity.Broadcast(Context, Args.I); return true; } -void URemoteReducers::DeletePkU256(const FSpacetimeDBUInt256& N) +void URemoteReducers::DeleteAllOneSimpleEnum(const ESimpleEnumType& E) { if (!Conn) { @@ -1159,45 +1136,45 @@ void URemoteReducers::DeletePkU256(const FSpacetimeDBUInt256& N) return; } - FDeletePkU256Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU256(ReducerArgs)); } + FDeleteAllOneSimpleEnumArgs ReducerArgs(E); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_simple_enum"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneSimpleEnum(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkU256(const FReducerEventContext& Context, const UDeletePkU256Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOneSimpleEnum(const FReducerEventContext& Context, const UDeleteAllOneSimpleEnumReducer* Args) { - if (!OnDeletePkU256.IsBound()) + if (!OnDeleteAllOneSimpleEnum.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneSimpleEnum")); } return false; } - OnDeletePkU256.Broadcast(Context, Args->N); + OnDeleteAllOneSimpleEnum.Broadcast(Context, Args->E); return true; } -bool URemoteReducers::InvokeDeletePkU256WithArgs(const FReducerEventContext& Context, const FDeletePkU256Args& Args) +bool URemoteReducers::InvokeDeleteAllOneSimpleEnumWithArgs(const FReducerEventContext& Context, const FDeleteAllOneSimpleEnumArgs& Args) { - if (!OnDeletePkU256.IsBound()) + if (!OnDeleteAllOneSimpleEnum.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneSimpleEnum")); } return false; } - OnDeletePkU256.Broadcast(Context, Args.N); + OnDeleteAllOneSimpleEnum.Broadcast(Context, Args.E); return true; } -void URemoteReducers::DeletePkU32(const uint32 N) +void URemoteReducers::DeleteAllOneString(const FString& S) { if (!Conn) { @@ -1205,45 +1182,45 @@ void URemoteReducers::DeletePkU32(const uint32 N) return; } - FDeletePkU32Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU32(ReducerArgs)); } + FDeleteAllOneStringArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneString(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkU32(const FReducerEventContext& Context, const UDeletePkU32Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOneString(const FReducerEventContext& Context, const UDeleteAllOneStringReducer* Args) { - if (!OnDeletePkU32.IsBound()) + if (!OnDeleteAllOneString.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneString")); } return false; } - OnDeletePkU32.Broadcast(Context, Args->N); + OnDeleteAllOneString.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeDeletePkU32WithArgs(const FReducerEventContext& Context, const FDeletePkU32Args& Args) +bool URemoteReducers::InvokeDeleteAllOneStringWithArgs(const FReducerEventContext& Context, const FDeleteAllOneStringArgs& Args) { - if (!OnDeletePkU32.IsBound()) + if (!OnDeleteAllOneString.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneString")); } return false; } - OnDeletePkU32.Broadcast(Context, Args.N); + OnDeleteAllOneString.Broadcast(Context, Args.S); return true; } -void URemoteReducers::DeletePkU32InsertPkU32Two(const uint32 N, const int32 Data) +void URemoteReducers::DeleteAllOneTimestamp(const FSpacetimeDBTimestamp& T) { if (!Conn) { @@ -1251,45 +1228,45 @@ void URemoteReducers::DeletePkU32InsertPkU32Two(const uint32 N, const int32 Data return; } - FDeletePkU32InsertPkU32TwoArgs ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_32_insert_pk_u_32_two"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU32InsertPkU32Two(ReducerArgs)); } + FDeleteAllOneTimestampArgs ReducerArgs(T); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_timestamp"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneTimestamp(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkU32InsertPkU32Two(const FReducerEventContext& Context, const UDeletePkU32InsertPkU32TwoReducer* Args) +bool URemoteReducers::InvokeDeleteAllOneTimestamp(const FReducerEventContext& Context, const UDeleteAllOneTimestampReducer* Args) { - if (!OnDeletePkU32InsertPkU32Two.IsBound()) + if (!OnDeleteAllOneTimestamp.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU32InsertPkU32Two")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneTimestamp")); } return false; } - OnDeletePkU32InsertPkU32Two.Broadcast(Context, Args->N, Args->Data); + OnDeleteAllOneTimestamp.Broadcast(Context, Args->T); return true; } -bool URemoteReducers::InvokeDeletePkU32InsertPkU32TwoWithArgs(const FReducerEventContext& Context, const FDeletePkU32InsertPkU32TwoArgs& Args) +bool URemoteReducers::InvokeDeleteAllOneTimestampWithArgs(const FReducerEventContext& Context, const FDeleteAllOneTimestampArgs& Args) { - if (!OnDeletePkU32InsertPkU32Two.IsBound()) + if (!OnDeleteAllOneTimestamp.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU32InsertPkU32Two")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneTimestamp")); } return false; } - OnDeletePkU32InsertPkU32Two.Broadcast(Context, Args.N, Args.Data); + OnDeleteAllOneTimestamp.Broadcast(Context, Args.T); return true; } -void URemoteReducers::DeletePkU32Two(const uint32 N) +void URemoteReducers::DeleteAllOneU128(const FSpacetimeDBUInt128& N) { if (!Conn) { @@ -1297,45 +1274,45 @@ void URemoteReducers::DeletePkU32Two(const uint32 N) return; } - FDeletePkU32TwoArgs ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_32_two"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU32Two(ReducerArgs)); } + FDeleteAllOneU128Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_u_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneU128(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkU32Two(const FReducerEventContext& Context, const UDeletePkU32TwoReducer* Args) +bool URemoteReducers::InvokeDeleteAllOneU128(const FReducerEventContext& Context, const UDeleteAllOneU128Reducer* Args) { - if (!OnDeletePkU32Two.IsBound()) + if (!OnDeleteAllOneU128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU32Two")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneU128")); } return false; } - OnDeletePkU32Two.Broadcast(Context, Args->N); + OnDeleteAllOneU128.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeDeletePkU32TwoWithArgs(const FReducerEventContext& Context, const FDeletePkU32TwoArgs& Args) +bool URemoteReducers::InvokeDeleteAllOneU128WithArgs(const FReducerEventContext& Context, const FDeleteAllOneU128Args& Args) { - if (!OnDeletePkU32Two.IsBound()) + if (!OnDeleteAllOneU128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU32Two")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneU128")); } return false; } - OnDeletePkU32Two.Broadcast(Context, Args.N); + OnDeleteAllOneU128.Broadcast(Context, Args.N); return true; } -void URemoteReducers::DeletePkU64(const uint64 N) +void URemoteReducers::DeleteAllOneU16(const uint16 N) { if (!Conn) { @@ -1343,45 +1320,45 @@ void URemoteReducers::DeletePkU64(const uint64 N) return; } - FDeletePkU64Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU64(ReducerArgs)); } + FDeleteAllOneU16Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_u_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneU16(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkU64(const FReducerEventContext& Context, const UDeletePkU64Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOneU16(const FReducerEventContext& Context, const UDeleteAllOneU16Reducer* Args) { - if (!OnDeletePkU64.IsBound()) + if (!OnDeleteAllOneU16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneU16")); } return false; } - OnDeletePkU64.Broadcast(Context, Args->N); + OnDeleteAllOneU16.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeDeletePkU64WithArgs(const FReducerEventContext& Context, const FDeletePkU64Args& Args) +bool URemoteReducers::InvokeDeleteAllOneU16WithArgs(const FReducerEventContext& Context, const FDeleteAllOneU16Args& Args) { - if (!OnDeletePkU64.IsBound()) + if (!OnDeleteAllOneU16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneU16")); } return false; } - OnDeletePkU64.Broadcast(Context, Args.N); + OnDeleteAllOneU16.Broadcast(Context, Args.N); return true; } -void URemoteReducers::DeletePkU8(const uint8 N) +void URemoteReducers::DeleteAllOneU256(const FSpacetimeDBUInt256& N) { if (!Conn) { @@ -1389,45 +1366,45 @@ void URemoteReducers::DeletePkU8(const uint8 N) return; } - FDeletePkU8Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU8(ReducerArgs)); } + FDeleteAllOneU256Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_u_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneU256(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkU8(const FReducerEventContext& Context, const UDeletePkU8Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOneU256(const FReducerEventContext& Context, const UDeleteAllOneU256Reducer* Args) { - if (!OnDeletePkU8.IsBound()) + if (!OnDeleteAllOneU256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneU256")); } return false; } - OnDeletePkU8.Broadcast(Context, Args->N); + OnDeleteAllOneU256.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeDeletePkU8WithArgs(const FReducerEventContext& Context, const FDeletePkU8Args& Args) +bool URemoteReducers::InvokeDeleteAllOneU256WithArgs(const FReducerEventContext& Context, const FDeleteAllOneU256Args& Args) { - if (!OnDeletePkU8.IsBound()) + if (!OnDeleteAllOneU256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneU256")); } return false; } - OnDeletePkU8.Broadcast(Context, Args.N); + OnDeleteAllOneU256.Broadcast(Context, Args.N); return true; } -void URemoteReducers::DeletePkUuid(const FSpacetimeDBUuid& U) +void URemoteReducers::DeleteAllOneU32(const uint32 N) { if (!Conn) { @@ -1435,45 +1412,45 @@ void URemoteReducers::DeletePkUuid(const FSpacetimeDBUuid& U) return; } - FDeletePkUuidArgs ReducerArgs(U); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_uuid"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkUuid(ReducerArgs)); } + FDeleteAllOneU32Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneU32(ReducerArgs)); } } -bool URemoteReducers::InvokeDeletePkUuid(const FReducerEventContext& Context, const UDeletePkUuidReducer* Args) +bool URemoteReducers::InvokeDeleteAllOneU32(const FReducerEventContext& Context, const UDeleteAllOneU32Reducer* Args) { - if (!OnDeletePkUuid.IsBound()) + if (!OnDeleteAllOneU32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneU32")); } return false; } - OnDeletePkUuid.Broadcast(Context, Args->U); + OnDeleteAllOneU32.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeDeletePkUuidWithArgs(const FReducerEventContext& Context, const FDeletePkUuidArgs& Args) +bool URemoteReducers::InvokeDeleteAllOneU32WithArgs(const FReducerEventContext& Context, const FDeleteAllOneU32Args& Args) { - if (!OnDeletePkUuid.IsBound()) + if (!OnDeleteAllOneU32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneU32")); } return false; } - OnDeletePkUuid.Broadcast(Context, Args.U); + OnDeleteAllOneU32.Broadcast(Context, Args.N); return true; } -void URemoteReducers::DeleteUniqueBool(const bool B) +void URemoteReducers::DeleteAllOneU64(const uint64 N) { if (!Conn) { @@ -1481,45 +1458,45 @@ void URemoteReducers::DeleteUniqueBool(const bool B) return; } - FDeleteUniqueBoolArgs ReducerArgs(B); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_bool"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueBool(ReducerArgs)); } + FDeleteAllOneU64Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_u_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneU64(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueBool(const FReducerEventContext& Context, const UDeleteUniqueBoolReducer* Args) +bool URemoteReducers::InvokeDeleteAllOneU64(const FReducerEventContext& Context, const UDeleteAllOneU64Reducer* Args) { - if (!OnDeleteUniqueBool.IsBound()) + if (!OnDeleteAllOneU64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneU64")); } return false; } - OnDeleteUniqueBool.Broadcast(Context, Args->B); + OnDeleteAllOneU64.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeDeleteUniqueBoolWithArgs(const FReducerEventContext& Context, const FDeleteUniqueBoolArgs& Args) +bool URemoteReducers::InvokeDeleteAllOneU64WithArgs(const FReducerEventContext& Context, const FDeleteAllOneU64Args& Args) { - if (!OnDeleteUniqueBool.IsBound()) + if (!OnDeleteAllOneU64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneU64")); } return false; } - OnDeleteUniqueBool.Broadcast(Context, Args.B); + OnDeleteAllOneU64.Broadcast(Context, Args.N); return true; } -void URemoteReducers::DeleteUniqueConnectionId(const FSpacetimeDBConnectionId& A) +void URemoteReducers::DeleteAllOneU8(const uint8 N) { if (!Conn) { @@ -1527,45 +1504,45 @@ void URemoteReducers::DeleteUniqueConnectionId(const FSpacetimeDBConnectionId& A return; } - FDeleteUniqueConnectionIdArgs ReducerArgs(A); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_connection_id"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueConnectionId(ReducerArgs)); } + FDeleteAllOneU8Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_u_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneU8(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueConnectionId(const FReducerEventContext& Context, const UDeleteUniqueConnectionIdReducer* Args) +bool URemoteReducers::InvokeDeleteAllOneU8(const FReducerEventContext& Context, const UDeleteAllOneU8Reducer* Args) { - if (!OnDeleteUniqueConnectionId.IsBound()) + if (!OnDeleteAllOneU8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneU8")); } return false; } - OnDeleteUniqueConnectionId.Broadcast(Context, Args->A); + OnDeleteAllOneU8.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeDeleteUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FDeleteUniqueConnectionIdArgs& Args) +bool URemoteReducers::InvokeDeleteAllOneU8WithArgs(const FReducerEventContext& Context, const FDeleteAllOneU8Args& Args) { - if (!OnDeleteUniqueConnectionId.IsBound()) + if (!OnDeleteAllOneU8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneU8")); } return false; } - OnDeleteUniqueConnectionId.Broadcast(Context, Args.A); + OnDeleteAllOneU8.Broadcast(Context, Args.N); return true; } -void URemoteReducers::DeleteUniqueI128(const FSpacetimeDBInt128& N) +void URemoteReducers::DeleteAllOneUnitStruct(const FUnitStructType& S) { if (!Conn) { @@ -1573,45 +1550,45 @@ void URemoteReducers::DeleteUniqueI128(const FSpacetimeDBInt128& N) return; } - FDeleteUniqueI128Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_i_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueI128(ReducerArgs)); } + FDeleteAllOneUnitStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_unit_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneUnitStruct(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueI128(const FReducerEventContext& Context, const UDeleteUniqueI128Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOneUnitStruct(const FReducerEventContext& Context, const UDeleteAllOneUnitStructReducer* Args) { - if (!OnDeleteUniqueI128.IsBound()) + if (!OnDeleteAllOneUnitStruct.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneUnitStruct")); } return false; } - OnDeleteUniqueI128.Broadcast(Context, Args->N); + OnDeleteAllOneUnitStruct.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeDeleteUniqueI128WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI128Args& Args) +bool URemoteReducers::InvokeDeleteAllOneUnitStructWithArgs(const FReducerEventContext& Context, const FDeleteAllOneUnitStructArgs& Args) { - if (!OnDeleteUniqueI128.IsBound()) + if (!OnDeleteAllOneUnitStruct.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneUnitStruct")); } return false; } - OnDeleteUniqueI128.Broadcast(Context, Args.N); + OnDeleteAllOneUnitStruct.Broadcast(Context, Args.S); return true; } -void URemoteReducers::DeleteUniqueI16(const int16 N) +void URemoteReducers::DeleteAllOneUuid(const FSpacetimeDBUuid& U) { if (!Conn) { @@ -1619,45 +1596,45 @@ void URemoteReducers::DeleteUniqueI16(const int16 N) return; } - FDeleteUniqueI16Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_i_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueI16(ReducerArgs)); } + FDeleteAllOneUuidArgs ReducerArgs(U); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_one_uuid"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOneUuid(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueI16(const FReducerEventContext& Context, const UDeleteUniqueI16Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOneUuid(const FReducerEventContext& Context, const UDeleteAllOneUuidReducer* Args) { - if (!OnDeleteUniqueI16.IsBound()) + if (!OnDeleteAllOneUuid.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneUuid")); } return false; } - OnDeleteUniqueI16.Broadcast(Context, Args->N); + OnDeleteAllOneUuid.Broadcast(Context, Args->U); return true; } -bool URemoteReducers::InvokeDeleteUniqueI16WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI16Args& Args) +bool URemoteReducers::InvokeDeleteAllOneUuidWithArgs(const FReducerEventContext& Context, const FDeleteAllOneUuidArgs& Args) { - if (!OnDeleteUniqueI16.IsBound()) + if (!OnDeleteAllOneUuid.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOneUuid")); } return false; } - OnDeleteUniqueI16.Broadcast(Context, Args.N); + OnDeleteAllOneUuid.Broadcast(Context, Args.U); return true; } -void URemoteReducers::DeleteUniqueI256(const FSpacetimeDBInt256& N) +void URemoteReducers::DeleteAllOptionEveryPrimitiveStruct(const FTestClientOptionalEveryPrimitiveStruct& S) { if (!Conn) { @@ -1665,45 +1642,45 @@ void URemoteReducers::DeleteUniqueI256(const FSpacetimeDBInt256& N) return; } - FDeleteUniqueI256Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_i_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueI256(ReducerArgs)); } + FDeleteAllOptionEveryPrimitiveStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_option_every_primitive_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOptionEveryPrimitiveStruct(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueI256(const FReducerEventContext& Context, const UDeleteUniqueI256Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOptionEveryPrimitiveStruct(const FReducerEventContext& Context, const UDeleteAllOptionEveryPrimitiveStructReducer* Args) { - if (!OnDeleteUniqueI256.IsBound()) + if (!OnDeleteAllOptionEveryPrimitiveStruct.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOptionEveryPrimitiveStruct")); } return false; } - OnDeleteUniqueI256.Broadcast(Context, Args->N); + OnDeleteAllOptionEveryPrimitiveStruct.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeDeleteUniqueI256WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI256Args& Args) +bool URemoteReducers::InvokeDeleteAllOptionEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FDeleteAllOptionEveryPrimitiveStructArgs& Args) { - if (!OnDeleteUniqueI256.IsBound()) + if (!OnDeleteAllOptionEveryPrimitiveStruct.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOptionEveryPrimitiveStruct")); } return false; } - OnDeleteUniqueI256.Broadcast(Context, Args.N); + OnDeleteAllOptionEveryPrimitiveStruct.Broadcast(Context, Args.S); return true; } -void URemoteReducers::DeleteUniqueI32(const int32 N) +void URemoteReducers::DeleteAllOptionI32(const FTestClientOptionalInt32 N) { if (!Conn) { @@ -1711,45 +1688,45 @@ void URemoteReducers::DeleteUniqueI32(const int32 N) return; } - FDeleteUniqueI32Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_i_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueI32(ReducerArgs)); } + FDeleteAllOptionI32Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_option_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOptionI32(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueI32(const FReducerEventContext& Context, const UDeleteUniqueI32Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOptionI32(const FReducerEventContext& Context, const UDeleteAllOptionI32Reducer* Args) { - if (!OnDeleteUniqueI32.IsBound()) + if (!OnDeleteAllOptionI32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOptionI32")); } return false; } - OnDeleteUniqueI32.Broadcast(Context, Args->N); + OnDeleteAllOptionI32.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeDeleteUniqueI32WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI32Args& Args) +bool URemoteReducers::InvokeDeleteAllOptionI32WithArgs(const FReducerEventContext& Context, const FDeleteAllOptionI32Args& Args) { - if (!OnDeleteUniqueI32.IsBound()) + if (!OnDeleteAllOptionI32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOptionI32")); } return false; } - OnDeleteUniqueI32.Broadcast(Context, Args.N); + OnDeleteAllOptionI32.Broadcast(Context, Args.N); return true; } -void URemoteReducers::DeleteUniqueI64(const int64 N) +void URemoteReducers::DeleteAllOptionIdentity(const FTestClientOptionalIdentity& I) { if (!Conn) { @@ -1757,45 +1734,45 @@ void URemoteReducers::DeleteUniqueI64(const int64 N) return; } - FDeleteUniqueI64Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_i_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueI64(ReducerArgs)); } + FDeleteAllOptionIdentityArgs ReducerArgs(I); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_option_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOptionIdentity(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueI64(const FReducerEventContext& Context, const UDeleteUniqueI64Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOptionIdentity(const FReducerEventContext& Context, const UDeleteAllOptionIdentityReducer* Args) { - if (!OnDeleteUniqueI64.IsBound()) + if (!OnDeleteAllOptionIdentity.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOptionIdentity")); } return false; } - OnDeleteUniqueI64.Broadcast(Context, Args->N); + OnDeleteAllOptionIdentity.Broadcast(Context, Args->I); return true; } -bool URemoteReducers::InvokeDeleteUniqueI64WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI64Args& Args) +bool URemoteReducers::InvokeDeleteAllOptionIdentityWithArgs(const FReducerEventContext& Context, const FDeleteAllOptionIdentityArgs& Args) { - if (!OnDeleteUniqueI64.IsBound()) + if (!OnDeleteAllOptionIdentity.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOptionIdentity")); } return false; } - OnDeleteUniqueI64.Broadcast(Context, Args.N); + OnDeleteAllOptionIdentity.Broadcast(Context, Args.I); return true; } -void URemoteReducers::DeleteUniqueI8(const int8 N) +void URemoteReducers::DeleteAllOptionSimpleEnum(const FTestClientOptionalSimpleEnum& E) { if (!Conn) { @@ -1803,45 +1780,45 @@ void URemoteReducers::DeleteUniqueI8(const int8 N) return; } - FDeleteUniqueI8Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_i_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueI8(ReducerArgs)); } + FDeleteAllOptionSimpleEnumArgs ReducerArgs(E); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_option_simple_enum"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOptionSimpleEnum(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueI8(const FReducerEventContext& Context, const UDeleteUniqueI8Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOptionSimpleEnum(const FReducerEventContext& Context, const UDeleteAllOptionSimpleEnumReducer* Args) { - if (!OnDeleteUniqueI8.IsBound()) + if (!OnDeleteAllOptionSimpleEnum.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOptionSimpleEnum")); } return false; } - OnDeleteUniqueI8.Broadcast(Context, Args->N); + OnDeleteAllOptionSimpleEnum.Broadcast(Context, Args->E); return true; } -bool URemoteReducers::InvokeDeleteUniqueI8WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI8Args& Args) +bool URemoteReducers::InvokeDeleteAllOptionSimpleEnumWithArgs(const FReducerEventContext& Context, const FDeleteAllOptionSimpleEnumArgs& Args) { - if (!OnDeleteUniqueI8.IsBound()) + if (!OnDeleteAllOptionSimpleEnum.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOptionSimpleEnum")); } return false; } - OnDeleteUniqueI8.Broadcast(Context, Args.N); + OnDeleteAllOptionSimpleEnum.Broadcast(Context, Args.E); return true; } -void URemoteReducers::DeleteUniqueIdentity(const FSpacetimeDBIdentity& I) +void URemoteReducers::DeleteAllOptionString(const FTestClientOptionalString& S) { if (!Conn) { @@ -1849,45 +1826,45 @@ void URemoteReducers::DeleteUniqueIdentity(const FSpacetimeDBIdentity& I) return; } - FDeleteUniqueIdentityArgs ReducerArgs(I); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_identity"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueIdentity(ReducerArgs)); } + FDeleteAllOptionStringArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_option_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOptionString(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueIdentity(const FReducerEventContext& Context, const UDeleteUniqueIdentityReducer* Args) +bool URemoteReducers::InvokeDeleteAllOptionString(const FReducerEventContext& Context, const UDeleteAllOptionStringReducer* Args) { - if (!OnDeleteUniqueIdentity.IsBound()) + if (!OnDeleteAllOptionString.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOptionString")); } return false; } - OnDeleteUniqueIdentity.Broadcast(Context, Args->I); + OnDeleteAllOptionString.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeDeleteUniqueIdentityWithArgs(const FReducerEventContext& Context, const FDeleteUniqueIdentityArgs& Args) +bool URemoteReducers::InvokeDeleteAllOptionStringWithArgs(const FReducerEventContext& Context, const FDeleteAllOptionStringArgs& Args) { - if (!OnDeleteUniqueIdentity.IsBound()) + if (!OnDeleteAllOptionString.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOptionString")); } return false; } - OnDeleteUniqueIdentity.Broadcast(Context, Args.I); + OnDeleteAllOptionString.Broadcast(Context, Args.S); return true; } -void URemoteReducers::DeleteUniqueString(const FString& S) +void URemoteReducers::DeleteAllOptionUuid(const FTestClientOptionalUuid& U) { if (!Conn) { @@ -1895,45 +1872,45 @@ void URemoteReducers::DeleteUniqueString(const FString& S) return; } - FDeleteUniqueStringArgs ReducerArgs(S); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_string"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueString(ReducerArgs)); } + FDeleteAllOptionUuidArgs ReducerArgs(U); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_option_uuid"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOptionUuid(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueString(const FReducerEventContext& Context, const UDeleteUniqueStringReducer* Args) +bool URemoteReducers::InvokeDeleteAllOptionUuid(const FReducerEventContext& Context, const UDeleteAllOptionUuidReducer* Args) { - if (!OnDeleteUniqueString.IsBound()) + if (!OnDeleteAllOptionUuid.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOptionUuid")); } return false; } - OnDeleteUniqueString.Broadcast(Context, Args->S); + OnDeleteAllOptionUuid.Broadcast(Context, Args->U); return true; } -bool URemoteReducers::InvokeDeleteUniqueStringWithArgs(const FReducerEventContext& Context, const FDeleteUniqueStringArgs& Args) +bool URemoteReducers::InvokeDeleteAllOptionUuidWithArgs(const FReducerEventContext& Context, const FDeleteAllOptionUuidArgs& Args) { - if (!OnDeleteUniqueString.IsBound()) + if (!OnDeleteAllOptionUuid.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOptionUuid")); } return false; } - OnDeleteUniqueString.Broadcast(Context, Args.S); + OnDeleteAllOptionUuid.Broadcast(Context, Args.U); return true; } -void URemoteReducers::DeleteUniqueU128(const FSpacetimeDBUInt128& N) +void URemoteReducers::DeleteAllOptionVecOptionI32(const FTestClientOptionalVecOptionalInt32& V) { if (!Conn) { @@ -1941,45 +1918,45 @@ void URemoteReducers::DeleteUniqueU128(const FSpacetimeDBUInt128& N) return; } - FDeleteUniqueU128Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_u_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueU128(ReducerArgs)); } + FDeleteAllOptionVecOptionI32Args ReducerArgs(V); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_option_vec_option_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllOptionVecOptionI32(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueU128(const FReducerEventContext& Context, const UDeleteUniqueU128Reducer* Args) +bool URemoteReducers::InvokeDeleteAllOptionVecOptionI32(const FReducerEventContext& Context, const UDeleteAllOptionVecOptionI32Reducer* Args) { - if (!OnDeleteUniqueU128.IsBound()) + if (!OnDeleteAllOptionVecOptionI32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOptionVecOptionI32")); } return false; } - OnDeleteUniqueU128.Broadcast(Context, Args->N); + OnDeleteAllOptionVecOptionI32.Broadcast(Context, Args->V); return true; } -bool URemoteReducers::InvokeDeleteUniqueU128WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU128Args& Args) +bool URemoteReducers::InvokeDeleteAllOptionVecOptionI32WithArgs(const FReducerEventContext& Context, const FDeleteAllOptionVecOptionI32Args& Args) { - if (!OnDeleteUniqueU128.IsBound()) + if (!OnDeleteAllOptionVecOptionI32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllOptionVecOptionI32")); } return false; } - OnDeleteUniqueU128.Broadcast(Context, Args.N); + OnDeleteAllOptionVecOptionI32.Broadcast(Context, Args.V); return true; } -void URemoteReducers::DeleteUniqueU16(const uint16 N) +void URemoteReducers::DeleteAllPkBool(const bool B, const int32 Data) { if (!Conn) { @@ -1987,45 +1964,45 @@ void URemoteReducers::DeleteUniqueU16(const uint16 N) return; } - FDeleteUniqueU16Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_u_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueU16(ReducerArgs)); } + FDeleteAllPkBoolArgs ReducerArgs(B, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_bool"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkBool(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueU16(const FReducerEventContext& Context, const UDeleteUniqueU16Reducer* Args) +bool URemoteReducers::InvokeDeleteAllPkBool(const FReducerEventContext& Context, const UDeleteAllPkBoolReducer* Args) { - if (!OnDeleteUniqueU16.IsBound()) + if (!OnDeleteAllPkBool.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkBool")); } return false; } - OnDeleteUniqueU16.Broadcast(Context, Args->N); + OnDeleteAllPkBool.Broadcast(Context, Args->B, Args->Data); return true; } -bool URemoteReducers::InvokeDeleteUniqueU16WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU16Args& Args) +bool URemoteReducers::InvokeDeleteAllPkBoolWithArgs(const FReducerEventContext& Context, const FDeleteAllPkBoolArgs& Args) { - if (!OnDeleteUniqueU16.IsBound()) + if (!OnDeleteAllPkBool.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkBool")); } return false; } - OnDeleteUniqueU16.Broadcast(Context, Args.N); + OnDeleteAllPkBool.Broadcast(Context, Args.B, Args.Data); return true; } -void URemoteReducers::DeleteUniqueU256(const FSpacetimeDBUInt256& N) +void URemoteReducers::DeleteAllPkConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data) { if (!Conn) { @@ -2033,45 +2010,45 @@ void URemoteReducers::DeleteUniqueU256(const FSpacetimeDBUInt256& N) return; } - FDeleteUniqueU256Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_u_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueU256(ReducerArgs)); } + FDeleteAllPkConnectionIdArgs ReducerArgs(A, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_connection_id"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkConnectionId(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueU256(const FReducerEventContext& Context, const UDeleteUniqueU256Reducer* Args) +bool URemoteReducers::InvokeDeleteAllPkConnectionId(const FReducerEventContext& Context, const UDeleteAllPkConnectionIdReducer* Args) { - if (!OnDeleteUniqueU256.IsBound()) + if (!OnDeleteAllPkConnectionId.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkConnectionId")); } return false; } - OnDeleteUniqueU256.Broadcast(Context, Args->N); + OnDeleteAllPkConnectionId.Broadcast(Context, Args->A, Args->Data); return true; } -bool URemoteReducers::InvokeDeleteUniqueU256WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU256Args& Args) +bool URemoteReducers::InvokeDeleteAllPkConnectionIdWithArgs(const FReducerEventContext& Context, const FDeleteAllPkConnectionIdArgs& Args) { - if (!OnDeleteUniqueU256.IsBound()) + if (!OnDeleteAllPkConnectionId.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkConnectionId")); } return false; } - OnDeleteUniqueU256.Broadcast(Context, Args.N); + OnDeleteAllPkConnectionId.Broadcast(Context, Args.A, Args.Data); return true; } -void URemoteReducers::DeleteUniqueU32(const uint32 N) +void URemoteReducers::DeleteAllPkI128(const FSpacetimeDBInt128& N, const int32 Data) { if (!Conn) { @@ -2079,45 +2056,45 @@ void URemoteReducers::DeleteUniqueU32(const uint32 N) return; } - FDeleteUniqueU32Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_u_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueU32(ReducerArgs)); } + FDeleteAllPkI128Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_i_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkI128(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueU32(const FReducerEventContext& Context, const UDeleteUniqueU32Reducer* Args) +bool URemoteReducers::InvokeDeleteAllPkI128(const FReducerEventContext& Context, const UDeleteAllPkI128Reducer* Args) { - if (!OnDeleteUniqueU32.IsBound()) + if (!OnDeleteAllPkI128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkI128")); } return false; } - OnDeleteUniqueU32.Broadcast(Context, Args->N); + OnDeleteAllPkI128.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeDeleteUniqueU32WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU32Args& Args) +bool URemoteReducers::InvokeDeleteAllPkI128WithArgs(const FReducerEventContext& Context, const FDeleteAllPkI128Args& Args) { - if (!OnDeleteUniqueU32.IsBound()) + if (!OnDeleteAllPkI128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkI128")); } return false; } - OnDeleteUniqueU32.Broadcast(Context, Args.N); + OnDeleteAllPkI128.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::DeleteUniqueU64(const uint64 N) +void URemoteReducers::DeleteAllPkI16(const int16 N, const int32 Data) { if (!Conn) { @@ -2125,45 +2102,45 @@ void URemoteReducers::DeleteUniqueU64(const uint64 N) return; } - FDeleteUniqueU64Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_u_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueU64(ReducerArgs)); } + FDeleteAllPkI16Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_i_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkI16(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueU64(const FReducerEventContext& Context, const UDeleteUniqueU64Reducer* Args) +bool URemoteReducers::InvokeDeleteAllPkI16(const FReducerEventContext& Context, const UDeleteAllPkI16Reducer* Args) { - if (!OnDeleteUniqueU64.IsBound()) + if (!OnDeleteAllPkI16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkI16")); } return false; } - OnDeleteUniqueU64.Broadcast(Context, Args->N); + OnDeleteAllPkI16.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeDeleteUniqueU64WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU64Args& Args) +bool URemoteReducers::InvokeDeleteAllPkI16WithArgs(const FReducerEventContext& Context, const FDeleteAllPkI16Args& Args) { - if (!OnDeleteUniqueU64.IsBound()) + if (!OnDeleteAllPkI16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkI16")); } return false; } - OnDeleteUniqueU64.Broadcast(Context, Args.N); + OnDeleteAllPkI16.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::DeleteUniqueU8(const uint8 N) +void URemoteReducers::DeleteAllPkI256(const FSpacetimeDBInt256& N, const int32 Data) { if (!Conn) { @@ -2171,45 +2148,45 @@ void URemoteReducers::DeleteUniqueU8(const uint8 N) return; } - FDeleteUniqueU8Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_u_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueU8(ReducerArgs)); } + FDeleteAllPkI256Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_i_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkI256(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueU8(const FReducerEventContext& Context, const UDeleteUniqueU8Reducer* Args) +bool URemoteReducers::InvokeDeleteAllPkI256(const FReducerEventContext& Context, const UDeleteAllPkI256Reducer* Args) { - if (!OnDeleteUniqueU8.IsBound()) + if (!OnDeleteAllPkI256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkI256")); } return false; } - OnDeleteUniqueU8.Broadcast(Context, Args->N); + OnDeleteAllPkI256.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeDeleteUniqueU8WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU8Args& Args) +bool URemoteReducers::InvokeDeleteAllPkI256WithArgs(const FReducerEventContext& Context, const FDeleteAllPkI256Args& Args) { - if (!OnDeleteUniqueU8.IsBound()) + if (!OnDeleteAllPkI256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkI256")); } return false; } - OnDeleteUniqueU8.Broadcast(Context, Args.N); + OnDeleteAllPkI256.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::DeleteUniqueUuid(const FSpacetimeDBUuid& U) +void URemoteReducers::DeleteAllPkI32(const int32 N, const int32 Data) { if (!Conn) { @@ -2217,45 +2194,45 @@ void URemoteReducers::DeleteUniqueUuid(const FSpacetimeDBUuid& U) return; } - FDeleteUniqueUuidArgs ReducerArgs(U); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_uuid"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueUuid(ReducerArgs)); } + FDeleteAllPkI32Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkI32(ReducerArgs)); } } -bool URemoteReducers::InvokeDeleteUniqueUuid(const FReducerEventContext& Context, const UDeleteUniqueUuidReducer* Args) +bool URemoteReducers::InvokeDeleteAllPkI32(const FReducerEventContext& Context, const UDeleteAllPkI32Reducer* Args) { - if (!OnDeleteUniqueUuid.IsBound()) + if (!OnDeleteAllPkI32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkI32")); } return false; } - OnDeleteUniqueUuid.Broadcast(Context, Args->U); + OnDeleteAllPkI32.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeDeleteUniqueUuidWithArgs(const FReducerEventContext& Context, const FDeleteUniqueUuidArgs& Args) +bool URemoteReducers::InvokeDeleteAllPkI32WithArgs(const FReducerEventContext& Context, const FDeleteAllPkI32Args& Args) { - if (!OnDeleteUniqueUuid.IsBound()) + if (!OnDeleteAllPkI32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkI32")); } return false; } - OnDeleteUniqueUuid.Broadcast(Context, Args.U); + OnDeleteAllPkI32.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertCallTimestamp() +void URemoteReducers::DeleteAllPkI64(const int64 N, const int32 Data) { if (!Conn) { @@ -2263,45 +2240,45 @@ void URemoteReducers::InsertCallTimestamp() return; } - FInsertCallTimestampArgs ReducerArgs; - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_call_timestamp"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallTimestamp(ReducerArgs)); } + FDeleteAllPkI64Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_i_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkI64(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertCallTimestamp(const FReducerEventContext& Context, const UInsertCallTimestampReducer* Args) +bool URemoteReducers::InvokeDeleteAllPkI64(const FReducerEventContext& Context, const UDeleteAllPkI64Reducer* Args) { - if (!OnInsertCallTimestamp.IsBound()) + if (!OnDeleteAllPkI64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallTimestamp")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkI64")); } return false; } - OnInsertCallTimestamp.Broadcast(Context); + OnDeleteAllPkI64.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertCallTimestampWithArgs(const FReducerEventContext& Context, const FInsertCallTimestampArgs& Args) +bool URemoteReducers::InvokeDeleteAllPkI64WithArgs(const FReducerEventContext& Context, const FDeleteAllPkI64Args& Args) { - if (!OnInsertCallTimestamp.IsBound()) + if (!OnDeleteAllPkI64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallTimestamp")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkI64")); } return false; } - OnInsertCallTimestamp.Broadcast(Context); + OnDeleteAllPkI64.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertCallUuidV4() +void URemoteReducers::DeleteAllPkI8(const int8 N, const int32 Data) { if (!Conn) { @@ -2309,45 +2286,45 @@ void URemoteReducers::InsertCallUuidV4() return; } - FInsertCallUuidV4Args ReducerArgs; - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_call_uuid_v_4"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallUuidV4(ReducerArgs)); } + FDeleteAllPkI8Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_i_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkI8(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertCallUuidV4(const FReducerEventContext& Context, const UInsertCallUuidV4Reducer* Args) +bool URemoteReducers::InvokeDeleteAllPkI8(const FReducerEventContext& Context, const UDeleteAllPkI8Reducer* Args) { - if (!OnInsertCallUuidV4.IsBound()) + if (!OnDeleteAllPkI8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallUuidV4")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkI8")); } return false; } - OnInsertCallUuidV4.Broadcast(Context); + OnDeleteAllPkI8.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertCallUuidV4WithArgs(const FReducerEventContext& Context, const FInsertCallUuidV4Args& Args) +bool URemoteReducers::InvokeDeleteAllPkI8WithArgs(const FReducerEventContext& Context, const FDeleteAllPkI8Args& Args) { - if (!OnInsertCallUuidV4.IsBound()) + if (!OnDeleteAllPkI8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallUuidV4")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkI8")); } return false; } - OnInsertCallUuidV4.Broadcast(Context); + OnDeleteAllPkI8.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertCallUuidV7() +void URemoteReducers::DeleteAllPkIdentity(const FSpacetimeDBIdentity& I, const int32 Data) { if (!Conn) { @@ -2355,45 +2332,45 @@ void URemoteReducers::InsertCallUuidV7() return; } - FInsertCallUuidV7Args ReducerArgs; - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_call_uuid_v_7"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallUuidV7(ReducerArgs)); } + FDeleteAllPkIdentityArgs ReducerArgs(I, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkIdentity(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertCallUuidV7(const FReducerEventContext& Context, const UInsertCallUuidV7Reducer* Args) +bool URemoteReducers::InvokeDeleteAllPkIdentity(const FReducerEventContext& Context, const UDeleteAllPkIdentityReducer* Args) { - if (!OnInsertCallUuidV7.IsBound()) + if (!OnDeleteAllPkIdentity.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallUuidV7")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkIdentity")); } return false; } - OnInsertCallUuidV7.Broadcast(Context); + OnDeleteAllPkIdentity.Broadcast(Context, Args->I, Args->Data); return true; } -bool URemoteReducers::InvokeInsertCallUuidV7WithArgs(const FReducerEventContext& Context, const FInsertCallUuidV7Args& Args) +bool URemoteReducers::InvokeDeleteAllPkIdentityWithArgs(const FReducerEventContext& Context, const FDeleteAllPkIdentityArgs& Args) { - if (!OnInsertCallUuidV7.IsBound()) + if (!OnDeleteAllPkIdentity.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallUuidV7")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkIdentity")); } return false; } - OnInsertCallUuidV7.Broadcast(Context); + OnDeleteAllPkIdentity.Broadcast(Context, Args.I, Args.Data); return true; } -void URemoteReducers::InsertCallerOneConnectionId() +void URemoteReducers::DeleteAllPkString(const FString& S, const int32 Data) { if (!Conn) { @@ -2401,45 +2378,45 @@ void URemoteReducers::InsertCallerOneConnectionId() return; } - FInsertCallerOneConnectionIdArgs ReducerArgs; - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_one_connection_id"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerOneConnectionId(ReducerArgs)); } + FDeleteAllPkStringArgs ReducerArgs(S, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkString(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertCallerOneConnectionId(const FReducerEventContext& Context, const UInsertCallerOneConnectionIdReducer* Args) +bool URemoteReducers::InvokeDeleteAllPkString(const FReducerEventContext& Context, const UDeleteAllPkStringReducer* Args) { - if (!OnInsertCallerOneConnectionId.IsBound()) + if (!OnDeleteAllPkString.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerOneConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkString")); } return false; } - OnInsertCallerOneConnectionId.Broadcast(Context); + OnDeleteAllPkString.Broadcast(Context, Args->S, Args->Data); return true; } -bool URemoteReducers::InvokeInsertCallerOneConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerOneConnectionIdArgs& Args) +bool URemoteReducers::InvokeDeleteAllPkStringWithArgs(const FReducerEventContext& Context, const FDeleteAllPkStringArgs& Args) { - if (!OnInsertCallerOneConnectionId.IsBound()) + if (!OnDeleteAllPkString.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerOneConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkString")); } return false; } - OnInsertCallerOneConnectionId.Broadcast(Context); + OnDeleteAllPkString.Broadcast(Context, Args.S, Args.Data); return true; } -void URemoteReducers::InsertCallerOneIdentity() +void URemoteReducers::DeleteAllPkU128(const FSpacetimeDBUInt128& N, const int32 Data) { if (!Conn) { @@ -2447,45 +2424,45 @@ void URemoteReducers::InsertCallerOneIdentity() return; } - FInsertCallerOneIdentityArgs ReducerArgs; - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_one_identity"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerOneIdentity(ReducerArgs)); } + FDeleteAllPkU128Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_u_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkU128(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertCallerOneIdentity(const FReducerEventContext& Context, const UInsertCallerOneIdentityReducer* Args) +bool URemoteReducers::InvokeDeleteAllPkU128(const FReducerEventContext& Context, const UDeleteAllPkU128Reducer* Args) { - if (!OnInsertCallerOneIdentity.IsBound()) + if (!OnDeleteAllPkU128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerOneIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkU128")); } return false; } - OnInsertCallerOneIdentity.Broadcast(Context); + OnDeleteAllPkU128.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertCallerOneIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerOneIdentityArgs& Args) +bool URemoteReducers::InvokeDeleteAllPkU128WithArgs(const FReducerEventContext& Context, const FDeleteAllPkU128Args& Args) { - if (!OnInsertCallerOneIdentity.IsBound()) + if (!OnDeleteAllPkU128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerOneIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkU128")); } return false; } - OnInsertCallerOneIdentity.Broadcast(Context); + OnDeleteAllPkU128.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertCallerPkConnectionId(const int32 Data) +void URemoteReducers::DeleteAllPkU16(const uint16 N, const int32 Data) { if (!Conn) { @@ -2493,45 +2470,45 @@ void URemoteReducers::InsertCallerPkConnectionId(const int32 Data) return; } - FInsertCallerPkConnectionIdArgs ReducerArgs(Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_pk_connection_id"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerPkConnectionId(ReducerArgs)); } + FDeleteAllPkU16Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_u_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkU16(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertCallerPkConnectionId(const FReducerEventContext& Context, const UInsertCallerPkConnectionIdReducer* Args) +bool URemoteReducers::InvokeDeleteAllPkU16(const FReducerEventContext& Context, const UDeleteAllPkU16Reducer* Args) { - if (!OnInsertCallerPkConnectionId.IsBound()) + if (!OnDeleteAllPkU16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerPkConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkU16")); } return false; } - OnInsertCallerPkConnectionId.Broadcast(Context, Args->Data); + OnDeleteAllPkU16.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertCallerPkConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerPkConnectionIdArgs& Args) +bool URemoteReducers::InvokeDeleteAllPkU16WithArgs(const FReducerEventContext& Context, const FDeleteAllPkU16Args& Args) { - if (!OnInsertCallerPkConnectionId.IsBound()) + if (!OnDeleteAllPkU16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerPkConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkU16")); } return false; } - OnInsertCallerPkConnectionId.Broadcast(Context, Args.Data); + OnDeleteAllPkU16.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertCallerPkIdentity(const int32 Data) +void URemoteReducers::DeleteAllPkU256(const FSpacetimeDBUInt256& N, const int32 Data) { if (!Conn) { @@ -2539,45 +2516,45 @@ void URemoteReducers::InsertCallerPkIdentity(const int32 Data) return; } - FInsertCallerPkIdentityArgs ReducerArgs(Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_pk_identity"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerPkIdentity(ReducerArgs)); } + FDeleteAllPkU256Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_u_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkU256(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertCallerPkIdentity(const FReducerEventContext& Context, const UInsertCallerPkIdentityReducer* Args) +bool URemoteReducers::InvokeDeleteAllPkU256(const FReducerEventContext& Context, const UDeleteAllPkU256Reducer* Args) { - if (!OnInsertCallerPkIdentity.IsBound()) + if (!OnDeleteAllPkU256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerPkIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkU256")); } return false; } - OnInsertCallerPkIdentity.Broadcast(Context, Args->Data); + OnDeleteAllPkU256.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertCallerPkIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerPkIdentityArgs& Args) +bool URemoteReducers::InvokeDeleteAllPkU256WithArgs(const FReducerEventContext& Context, const FDeleteAllPkU256Args& Args) { - if (!OnInsertCallerPkIdentity.IsBound()) + if (!OnDeleteAllPkU256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerPkIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkU256")); } return false; } - OnInsertCallerPkIdentity.Broadcast(Context, Args.Data); + OnDeleteAllPkU256.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertCallerUniqueConnectionId(const int32 Data) +void URemoteReducers::DeleteAllPkU32(const uint32 N, const int32 Data) { if (!Conn) { @@ -2585,45 +2562,45 @@ void URemoteReducers::InsertCallerUniqueConnectionId(const int32 Data) return; } - FInsertCallerUniqueConnectionIdArgs ReducerArgs(Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_unique_connection_id"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerUniqueConnectionId(ReducerArgs)); } + FDeleteAllPkU32Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkU32(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertCallerUniqueConnectionId(const FReducerEventContext& Context, const UInsertCallerUniqueConnectionIdReducer* Args) +bool URemoteReducers::InvokeDeleteAllPkU32(const FReducerEventContext& Context, const UDeleteAllPkU32Reducer* Args) { - if (!OnInsertCallerUniqueConnectionId.IsBound()) + if (!OnDeleteAllPkU32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerUniqueConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkU32")); } return false; } - OnInsertCallerUniqueConnectionId.Broadcast(Context, Args->Data); + OnDeleteAllPkU32.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertCallerUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerUniqueConnectionIdArgs& Args) +bool URemoteReducers::InvokeDeleteAllPkU32WithArgs(const FReducerEventContext& Context, const FDeleteAllPkU32Args& Args) { - if (!OnInsertCallerUniqueConnectionId.IsBound()) + if (!OnDeleteAllPkU32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerUniqueConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkU32")); } return false; } - OnInsertCallerUniqueConnectionId.Broadcast(Context, Args.Data); + OnDeleteAllPkU32.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertCallerUniqueIdentity(const int32 Data) +void URemoteReducers::DeleteAllPkU32Two(const uint32 N, const int32 Data) { if (!Conn) { @@ -2631,45 +2608,45 @@ void URemoteReducers::InsertCallerUniqueIdentity(const int32 Data) return; } - FInsertCallerUniqueIdentityArgs ReducerArgs(Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_unique_identity"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerUniqueIdentity(ReducerArgs)); } + FDeleteAllPkU32TwoArgs ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_u_32_two"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkU32Two(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertCallerUniqueIdentity(const FReducerEventContext& Context, const UInsertCallerUniqueIdentityReducer* Args) +bool URemoteReducers::InvokeDeleteAllPkU32Two(const FReducerEventContext& Context, const UDeleteAllPkU32TwoReducer* Args) { - if (!OnInsertCallerUniqueIdentity.IsBound()) + if (!OnDeleteAllPkU32Two.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerUniqueIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkU32Two")); } return false; } - OnInsertCallerUniqueIdentity.Broadcast(Context, Args->Data); + OnDeleteAllPkU32Two.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertCallerUniqueIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerUniqueIdentityArgs& Args) +bool URemoteReducers::InvokeDeleteAllPkU32TwoWithArgs(const FReducerEventContext& Context, const FDeleteAllPkU32TwoArgs& Args) { - if (!OnInsertCallerUniqueIdentity.IsBound()) + if (!OnDeleteAllPkU32Two.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerUniqueIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkU32Two")); } return false; } - OnInsertCallerUniqueIdentity.Broadcast(Context, Args.Data); + OnDeleteAllPkU32Two.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertCallerVecConnectionId() +void URemoteReducers::DeleteAllPkU64(const uint64 N, const int32 Data) { if (!Conn) { @@ -2677,45 +2654,45 @@ void URemoteReducers::InsertCallerVecConnectionId() return; } - FInsertCallerVecConnectionIdArgs ReducerArgs; - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_vec_connection_id"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerVecConnectionId(ReducerArgs)); } + FDeleteAllPkU64Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_u_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkU64(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertCallerVecConnectionId(const FReducerEventContext& Context, const UInsertCallerVecConnectionIdReducer* Args) +bool URemoteReducers::InvokeDeleteAllPkU64(const FReducerEventContext& Context, const UDeleteAllPkU64Reducer* Args) { - if (!OnInsertCallerVecConnectionId.IsBound()) + if (!OnDeleteAllPkU64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerVecConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkU64")); } return false; } - OnInsertCallerVecConnectionId.Broadcast(Context); + OnDeleteAllPkU64.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertCallerVecConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerVecConnectionIdArgs& Args) +bool URemoteReducers::InvokeDeleteAllPkU64WithArgs(const FReducerEventContext& Context, const FDeleteAllPkU64Args& Args) { - if (!OnInsertCallerVecConnectionId.IsBound()) + if (!OnDeleteAllPkU64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerVecConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkU64")); } return false; } - OnInsertCallerVecConnectionId.Broadcast(Context); + OnDeleteAllPkU64.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertCallerVecIdentity() +void URemoteReducers::DeleteAllPkU8(const uint8 N, const int32 Data) { if (!Conn) { @@ -2723,45 +2700,45 @@ void URemoteReducers::InsertCallerVecIdentity() return; } - FInsertCallerVecIdentityArgs ReducerArgs; - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_vec_identity"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerVecIdentity(ReducerArgs)); } + FDeleteAllPkU8Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_u_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkU8(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertCallerVecIdentity(const FReducerEventContext& Context, const UInsertCallerVecIdentityReducer* Args) +bool URemoteReducers::InvokeDeleteAllPkU8(const FReducerEventContext& Context, const UDeleteAllPkU8Reducer* Args) { - if (!OnInsertCallerVecIdentity.IsBound()) + if (!OnDeleteAllPkU8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerVecIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkU8")); } return false; } - OnInsertCallerVecIdentity.Broadcast(Context); + OnDeleteAllPkU8.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertCallerVecIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerVecIdentityArgs& Args) +bool URemoteReducers::InvokeDeleteAllPkU8WithArgs(const FReducerEventContext& Context, const FDeleteAllPkU8Args& Args) { - if (!OnInsertCallerVecIdentity.IsBound()) + if (!OnDeleteAllPkU8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerVecIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkU8")); } return false; } - OnInsertCallerVecIdentity.Broadcast(Context); + OnDeleteAllPkU8.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertIntoBtreeU32(const TArray& Rows) +void URemoteReducers::DeleteAllPkUuid(const FSpacetimeDBUuid& U, const int32 Data) { if (!Conn) { @@ -2769,45 +2746,45 @@ void URemoteReducers::InsertIntoBtreeU32(const TArray& Rows) return; } - FInsertIntoBtreeU32Args ReducerArgs(Rows); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_into_btree_u_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertIntoBtreeU32(ReducerArgs)); } + FDeleteAllPkUuidArgs ReducerArgs(U, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_pk_uuid"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllPkUuid(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertIntoBtreeU32(const FReducerEventContext& Context, const UInsertIntoBtreeU32Reducer* Args) +bool URemoteReducers::InvokeDeleteAllPkUuid(const FReducerEventContext& Context, const UDeleteAllPkUuidReducer* Args) { - if (!OnInsertIntoBtreeU32.IsBound()) + if (!OnDeleteAllPkUuid.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertIntoBtreeU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkUuid")); } return false; } - OnInsertIntoBtreeU32.Broadcast(Context, Args->Rows); + OnDeleteAllPkUuid.Broadcast(Context, Args->U, Args->Data); return true; } -bool URemoteReducers::InvokeInsertIntoBtreeU32WithArgs(const FReducerEventContext& Context, const FInsertIntoBtreeU32Args& Args) +bool URemoteReducers::InvokeDeleteAllPkUuidWithArgs(const FReducerEventContext& Context, const FDeleteAllPkUuidArgs& Args) { - if (!OnInsertIntoBtreeU32.IsBound()) + if (!OnDeleteAllPkUuid.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertIntoBtreeU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllPkUuid")); } return false; } - OnInsertIntoBtreeU32.Broadcast(Context, Args.Rows); + OnDeleteAllPkUuid.Broadcast(Context, Args.U, Args.Data); return true; } -void URemoteReducers::InsertIntoIndexedSimpleEnum(const ESimpleEnumType& N) +void URemoteReducers::DeleteAllUniqueBool(const bool B, const int32 Data) { if (!Conn) { @@ -2815,45 +2792,45 @@ void URemoteReducers::InsertIntoIndexedSimpleEnum(const ESimpleEnumType& N) return; } - FInsertIntoIndexedSimpleEnumArgs ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_into_indexed_simple_enum"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertIntoIndexedSimpleEnum(ReducerArgs)); } + FDeleteAllUniqueBoolArgs ReducerArgs(B, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_bool"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueBool(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertIntoIndexedSimpleEnum(const FReducerEventContext& Context, const UInsertIntoIndexedSimpleEnumReducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueBool(const FReducerEventContext& Context, const UDeleteAllUniqueBoolReducer* Args) { - if (!OnInsertIntoIndexedSimpleEnum.IsBound()) + if (!OnDeleteAllUniqueBool.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertIntoIndexedSimpleEnum")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueBool")); } return false; } - OnInsertIntoIndexedSimpleEnum.Broadcast(Context, Args->N); + OnDeleteAllUniqueBool.Broadcast(Context, Args->B, Args->Data); return true; } -bool URemoteReducers::InvokeInsertIntoIndexedSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertIntoIndexedSimpleEnumArgs& Args) +bool URemoteReducers::InvokeDeleteAllUniqueBoolWithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueBoolArgs& Args) { - if (!OnInsertIntoIndexedSimpleEnum.IsBound()) + if (!OnDeleteAllUniqueBool.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertIntoIndexedSimpleEnum")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueBool")); } return false; } - OnInsertIntoIndexedSimpleEnum.Broadcast(Context, Args.N); + OnDeleteAllUniqueBool.Broadcast(Context, Args.B, Args.Data); return true; } -void URemoteReducers::InsertIntoPkBtreeU32(const TArray& PkU32, const TArray& BtU32) +void URemoteReducers::DeleteAllUniqueConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data) { if (!Conn) { @@ -2861,45 +2838,45 @@ void URemoteReducers::InsertIntoPkBtreeU32(const TArray& PkU32, cons return; } - FInsertIntoPkBtreeU32Args ReducerArgs(PkU32, BtU32); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_into_pk_btree_u_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertIntoPkBtreeU32(ReducerArgs)); } + FDeleteAllUniqueConnectionIdArgs ReducerArgs(A, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_connection_id"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueConnectionId(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertIntoPkBtreeU32(const FReducerEventContext& Context, const UInsertIntoPkBtreeU32Reducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueConnectionId(const FReducerEventContext& Context, const UDeleteAllUniqueConnectionIdReducer* Args) { - if (!OnInsertIntoPkBtreeU32.IsBound()) + if (!OnDeleteAllUniqueConnectionId.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertIntoPkBtreeU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueConnectionId")); } return false; } - OnInsertIntoPkBtreeU32.Broadcast(Context, Args->PkU32, Args->BtU32); + OnDeleteAllUniqueConnectionId.Broadcast(Context, Args->A, Args->Data); return true; } -bool URemoteReducers::InvokeInsertIntoPkBtreeU32WithArgs(const FReducerEventContext& Context, const FInsertIntoPkBtreeU32Args& Args) +bool URemoteReducers::InvokeDeleteAllUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueConnectionIdArgs& Args) { - if (!OnInsertIntoPkBtreeU32.IsBound()) + if (!OnDeleteAllUniqueConnectionId.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertIntoPkBtreeU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueConnectionId")); } return false; } - OnInsertIntoPkBtreeU32.Broadcast(Context, Args.PkU32, Args.BtU32); + OnDeleteAllUniqueConnectionId.Broadcast(Context, Args.A, Args.Data); return true; } -void URemoteReducers::InsertLargeTable(const uint8 A, const uint16 B, const uint32 C, const uint64 D, const FSpacetimeDBUInt128& E, const FSpacetimeDBUInt256& F, const int8 G, const int16 H, const int32 I, const int64 J, const FSpacetimeDBInt128& K, const FSpacetimeDBInt256& L, const bool M, const float N, const double O, const FString& P, const ESimpleEnumType& Q, const FEnumWithPayloadType& R, const FUnitStructType& S, const FByteStructType& T, const FEveryPrimitiveStructType& U, const FEveryVecStructType& V) +void URemoteReducers::DeleteAllUniqueI128(const FSpacetimeDBInt128& N, const int32 Data) { if (!Conn) { @@ -2907,68 +2884,45 @@ void URemoteReducers::InsertLargeTable(const uint8 A, const uint16 B, const uint return; } - FInsertLargeTableArgs ReducerArgs(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_large_table"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertLargeTable(ReducerArgs)); } + FDeleteAllUniqueI128Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_i_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueI128(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertLargeTable(const FReducerEventContext& Context, const UInsertLargeTableReducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueI128(const FReducerEventContext& Context, const UDeleteAllUniqueI128Reducer* Args) { - if (!OnInsertLargeTable.IsBound()) + if (!OnDeleteAllUniqueI128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertLargeTable")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueI128")); } return false; } - FInsertLargeTableArgs ArgsStruct; - ArgsStruct.A = Args->A; - ArgsStruct.B = Args->B; - ArgsStruct.C = Args->C; - ArgsStruct.D = Args->D; - ArgsStruct.E = Args->E; - ArgsStruct.F = Args->F; - ArgsStruct.G = Args->G; - ArgsStruct.H = Args->H; - ArgsStruct.I = Args->I; - ArgsStruct.J = Args->J; - ArgsStruct.K = Args->K; - ArgsStruct.L = Args->L; - ArgsStruct.M = Args->M; - ArgsStruct.N = Args->N; - ArgsStruct.O = Args->O; - ArgsStruct.P = Args->P; - ArgsStruct.Q = Args->Q; - ArgsStruct.R = Args->R; - ArgsStruct.S = Args->S; - ArgsStruct.T = Args->T; - ArgsStruct.U = Args->U; - ArgsStruct.V = Args->V; - OnInsertLargeTable.Broadcast(Context, ArgsStruct); + OnDeleteAllUniqueI128.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertLargeTableWithArgs(const FReducerEventContext& Context, const FInsertLargeTableArgs& Args) +bool URemoteReducers::InvokeDeleteAllUniqueI128WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueI128Args& Args) { - if (!OnInsertLargeTable.IsBound()) + if (!OnDeleteAllUniqueI128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertLargeTable")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueI128")); } return false; } - OnInsertLargeTable.Broadcast(Context, Args); + OnDeleteAllUniqueI128.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertOneBool(const bool B) +void URemoteReducers::DeleteAllUniqueI16(const int16 N, const int32 Data) { if (!Conn) { @@ -2976,45 +2930,45 @@ void URemoteReducers::InsertOneBool(const bool B) return; } - FInsertOneBoolArgs ReducerArgs(B); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_bool"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneBool(ReducerArgs)); } + FDeleteAllUniqueI16Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_i_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueI16(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneBool(const FReducerEventContext& Context, const UInsertOneBoolReducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueI16(const FReducerEventContext& Context, const UDeleteAllUniqueI16Reducer* Args) { - if (!OnInsertOneBool.IsBound()) + if (!OnDeleteAllUniqueI16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueI16")); } return false; } - OnInsertOneBool.Broadcast(Context, Args->B); + OnDeleteAllUniqueI16.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertOneBoolWithArgs(const FReducerEventContext& Context, const FInsertOneBoolArgs& Args) +bool URemoteReducers::InvokeDeleteAllUniqueI16WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueI16Args& Args) { - if (!OnInsertOneBool.IsBound()) + if (!OnDeleteAllUniqueI16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueI16")); } return false; } - OnInsertOneBool.Broadcast(Context, Args.B); + OnDeleteAllUniqueI16.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertOneByteStruct(const FByteStructType& S) +void URemoteReducers::DeleteAllUniqueI256(const FSpacetimeDBInt256& N, const int32 Data) { if (!Conn) { @@ -3022,45 +2976,45 @@ void URemoteReducers::InsertOneByteStruct(const FByteStructType& S) return; } - FInsertOneByteStructArgs ReducerArgs(S); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_byte_struct"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneByteStruct(ReducerArgs)); } + FDeleteAllUniqueI256Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_i_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueI256(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneByteStruct(const FReducerEventContext& Context, const UInsertOneByteStructReducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueI256(const FReducerEventContext& Context, const UDeleteAllUniqueI256Reducer* Args) { - if (!OnInsertOneByteStruct.IsBound()) + if (!OnDeleteAllUniqueI256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneByteStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueI256")); } return false; } - OnInsertOneByteStruct.Broadcast(Context, Args->S); + OnDeleteAllUniqueI256.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertOneByteStructWithArgs(const FReducerEventContext& Context, const FInsertOneByteStructArgs& Args) +bool URemoteReducers::InvokeDeleteAllUniqueI256WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueI256Args& Args) { - if (!OnInsertOneByteStruct.IsBound()) + if (!OnDeleteAllUniqueI256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneByteStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueI256")); } return false; } - OnInsertOneByteStruct.Broadcast(Context, Args.S); + OnDeleteAllUniqueI256.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertOneConnectionId(const FSpacetimeDBConnectionId& A) +void URemoteReducers::DeleteAllUniqueI32(const int32 N, const int32 Data) { if (!Conn) { @@ -3068,45 +3022,45 @@ void URemoteReducers::InsertOneConnectionId(const FSpacetimeDBConnectionId& A) return; } - FInsertOneConnectionIdArgs ReducerArgs(A); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_connection_id"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneConnectionId(ReducerArgs)); } + FDeleteAllUniqueI32Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueI32(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneConnectionId(const FReducerEventContext& Context, const UInsertOneConnectionIdReducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueI32(const FReducerEventContext& Context, const UDeleteAllUniqueI32Reducer* Args) { - if (!OnInsertOneConnectionId.IsBound()) + if (!OnDeleteAllUniqueI32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueI32")); } return false; } - OnInsertOneConnectionId.Broadcast(Context, Args->A); + OnDeleteAllUniqueI32.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertOneConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertOneConnectionIdArgs& Args) +bool URemoteReducers::InvokeDeleteAllUniqueI32WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueI32Args& Args) { - if (!OnInsertOneConnectionId.IsBound()) + if (!OnDeleteAllUniqueI32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueI32")); } return false; } - OnInsertOneConnectionId.Broadcast(Context, Args.A); + OnDeleteAllUniqueI32.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertOneEnumWithPayload(const FEnumWithPayloadType& E) +void URemoteReducers::DeleteAllUniqueI64(const int64 N, const int32 Data) { if (!Conn) { @@ -3114,45 +3068,45 @@ void URemoteReducers::InsertOneEnumWithPayload(const FEnumWithPayloadType& E) return; } - FInsertOneEnumWithPayloadArgs ReducerArgs(E); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_enum_with_payload"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneEnumWithPayload(ReducerArgs)); } + FDeleteAllUniqueI64Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_i_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueI64(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneEnumWithPayload(const FReducerEventContext& Context, const UInsertOneEnumWithPayloadReducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueI64(const FReducerEventContext& Context, const UDeleteAllUniqueI64Reducer* Args) { - if (!OnInsertOneEnumWithPayload.IsBound()) + if (!OnDeleteAllUniqueI64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneEnumWithPayload")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueI64")); } return false; } - OnInsertOneEnumWithPayload.Broadcast(Context, Args->E); + OnDeleteAllUniqueI64.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertOneEnumWithPayloadWithArgs(const FReducerEventContext& Context, const FInsertOneEnumWithPayloadArgs& Args) +bool URemoteReducers::InvokeDeleteAllUniqueI64WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueI64Args& Args) { - if (!OnInsertOneEnumWithPayload.IsBound()) + if (!OnDeleteAllUniqueI64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneEnumWithPayload")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueI64")); } return false; } - OnInsertOneEnumWithPayload.Broadcast(Context, Args.E); + OnDeleteAllUniqueI64.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertOneEveryPrimitiveStruct(const FEveryPrimitiveStructType& S) +void URemoteReducers::DeleteAllUniqueI8(const int8 N, const int32 Data) { if (!Conn) { @@ -3160,45 +3114,45 @@ void URemoteReducers::InsertOneEveryPrimitiveStruct(const FEveryPrimitiveStructT return; } - FInsertOneEveryPrimitiveStructArgs ReducerArgs(S); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_every_primitive_struct"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneEveryPrimitiveStruct(ReducerArgs)); } + FDeleteAllUniqueI8Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_i_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueI8(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneEveryPrimitiveStruct(const FReducerEventContext& Context, const UInsertOneEveryPrimitiveStructReducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueI8(const FReducerEventContext& Context, const UDeleteAllUniqueI8Reducer* Args) { - if (!OnInsertOneEveryPrimitiveStruct.IsBound()) + if (!OnDeleteAllUniqueI8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneEveryPrimitiveStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueI8")); } return false; } - OnInsertOneEveryPrimitiveStruct.Broadcast(Context, Args->S); + OnDeleteAllUniqueI8.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertOneEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FInsertOneEveryPrimitiveStructArgs& Args) +bool URemoteReducers::InvokeDeleteAllUniqueI8WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueI8Args& Args) { - if (!OnInsertOneEveryPrimitiveStruct.IsBound()) + if (!OnDeleteAllUniqueI8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneEveryPrimitiveStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueI8")); } return false; } - OnInsertOneEveryPrimitiveStruct.Broadcast(Context, Args.S); + OnDeleteAllUniqueI8.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertOneEveryVecStruct(const FEveryVecStructType& S) +void URemoteReducers::DeleteAllUniqueIdentity(const FSpacetimeDBIdentity& I, const int32 Data) { if (!Conn) { @@ -3206,45 +3160,45 @@ void URemoteReducers::InsertOneEveryVecStruct(const FEveryVecStructType& S) return; } - FInsertOneEveryVecStructArgs ReducerArgs(S); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_every_vec_struct"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneEveryVecStruct(ReducerArgs)); } + FDeleteAllUniqueIdentityArgs ReducerArgs(I, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueIdentity(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneEveryVecStruct(const FReducerEventContext& Context, const UInsertOneEveryVecStructReducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueIdentity(const FReducerEventContext& Context, const UDeleteAllUniqueIdentityReducer* Args) { - if (!OnInsertOneEveryVecStruct.IsBound()) + if (!OnDeleteAllUniqueIdentity.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneEveryVecStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueIdentity")); } return false; } - OnInsertOneEveryVecStruct.Broadcast(Context, Args->S); + OnDeleteAllUniqueIdentity.Broadcast(Context, Args->I, Args->Data); return true; } -bool URemoteReducers::InvokeInsertOneEveryVecStructWithArgs(const FReducerEventContext& Context, const FInsertOneEveryVecStructArgs& Args) +bool URemoteReducers::InvokeDeleteAllUniqueIdentityWithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueIdentityArgs& Args) { - if (!OnInsertOneEveryVecStruct.IsBound()) + if (!OnDeleteAllUniqueIdentity.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneEveryVecStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueIdentity")); } return false; } - OnInsertOneEveryVecStruct.Broadcast(Context, Args.S); + OnDeleteAllUniqueIdentity.Broadcast(Context, Args.I, Args.Data); return true; } -void URemoteReducers::InsertOneF32(const float F) +void URemoteReducers::DeleteAllUniqueString(const FString& S, const int32 Data) { if (!Conn) { @@ -3252,45 +3206,45 @@ void URemoteReducers::InsertOneF32(const float F) return; } - FInsertOneF32Args ReducerArgs(F); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_f_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneF32(ReducerArgs)); } + FDeleteAllUniqueStringArgs ReducerArgs(S, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueString(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneF32(const FReducerEventContext& Context, const UInsertOneF32Reducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueString(const FReducerEventContext& Context, const UDeleteAllUniqueStringReducer* Args) { - if (!OnInsertOneF32.IsBound()) + if (!OnDeleteAllUniqueString.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneF32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueString")); } return false; } - OnInsertOneF32.Broadcast(Context, Args->F); + OnDeleteAllUniqueString.Broadcast(Context, Args->S, Args->Data); return true; } -bool URemoteReducers::InvokeInsertOneF32WithArgs(const FReducerEventContext& Context, const FInsertOneF32Args& Args) +bool URemoteReducers::InvokeDeleteAllUniqueStringWithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueStringArgs& Args) { - if (!OnInsertOneF32.IsBound()) + if (!OnDeleteAllUniqueString.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneF32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueString")); } return false; } - OnInsertOneF32.Broadcast(Context, Args.F); + OnDeleteAllUniqueString.Broadcast(Context, Args.S, Args.Data); return true; } -void URemoteReducers::InsertOneF64(const double F) +void URemoteReducers::DeleteAllUniqueU128(const FSpacetimeDBUInt128& N, const int32 Data) { if (!Conn) { @@ -3298,45 +3252,45 @@ void URemoteReducers::InsertOneF64(const double F) return; } - FInsertOneF64Args ReducerArgs(F); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_f_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneF64(ReducerArgs)); } + FDeleteAllUniqueU128Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_u_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueU128(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneF64(const FReducerEventContext& Context, const UInsertOneF64Reducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueU128(const FReducerEventContext& Context, const UDeleteAllUniqueU128Reducer* Args) { - if (!OnInsertOneF64.IsBound()) + if (!OnDeleteAllUniqueU128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneF64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueU128")); } return false; } - OnInsertOneF64.Broadcast(Context, Args->F); + OnDeleteAllUniqueU128.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertOneF64WithArgs(const FReducerEventContext& Context, const FInsertOneF64Args& Args) +bool URemoteReducers::InvokeDeleteAllUniqueU128WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueU128Args& Args) { - if (!OnInsertOneF64.IsBound()) + if (!OnDeleteAllUniqueU128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneF64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueU128")); } return false; } - OnInsertOneF64.Broadcast(Context, Args.F); + OnDeleteAllUniqueU128.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertOneI128(const FSpacetimeDBInt128& N) +void URemoteReducers::DeleteAllUniqueU16(const uint16 N, const int32 Data) { if (!Conn) { @@ -3344,45 +3298,45 @@ void URemoteReducers::InsertOneI128(const FSpacetimeDBInt128& N) return; } - FInsertOneI128Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_i_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneI128(ReducerArgs)); } + FDeleteAllUniqueU16Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_u_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueU16(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneI128(const FReducerEventContext& Context, const UInsertOneI128Reducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueU16(const FReducerEventContext& Context, const UDeleteAllUniqueU16Reducer* Args) { - if (!OnInsertOneI128.IsBound()) + if (!OnDeleteAllUniqueU16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueU16")); } return false; } - OnInsertOneI128.Broadcast(Context, Args->N); + OnDeleteAllUniqueU16.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertOneI128WithArgs(const FReducerEventContext& Context, const FInsertOneI128Args& Args) +bool URemoteReducers::InvokeDeleteAllUniqueU16WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueU16Args& Args) { - if (!OnInsertOneI128.IsBound()) + if (!OnDeleteAllUniqueU16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueU16")); } return false; } - OnInsertOneI128.Broadcast(Context, Args.N); + OnDeleteAllUniqueU16.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertOneI16(const int16 N) +void URemoteReducers::DeleteAllUniqueU256(const FSpacetimeDBUInt256& N, const int32 Data) { if (!Conn) { @@ -3390,45 +3344,45 @@ void URemoteReducers::InsertOneI16(const int16 N) return; } - FInsertOneI16Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_i_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneI16(ReducerArgs)); } + FDeleteAllUniqueU256Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_u_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueU256(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneI16(const FReducerEventContext& Context, const UInsertOneI16Reducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueU256(const FReducerEventContext& Context, const UDeleteAllUniqueU256Reducer* Args) { - if (!OnInsertOneI16.IsBound()) + if (!OnDeleteAllUniqueU256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueU256")); } return false; } - OnInsertOneI16.Broadcast(Context, Args->N); + OnDeleteAllUniqueU256.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertOneI16WithArgs(const FReducerEventContext& Context, const FInsertOneI16Args& Args) +bool URemoteReducers::InvokeDeleteAllUniqueU256WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueU256Args& Args) { - if (!OnInsertOneI16.IsBound()) + if (!OnDeleteAllUniqueU256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueU256")); } return false; } - OnInsertOneI16.Broadcast(Context, Args.N); + OnDeleteAllUniqueU256.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertOneI256(const FSpacetimeDBInt256& N) +void URemoteReducers::DeleteAllUniqueU32(const uint32 N, const int32 Data) { if (!Conn) { @@ -3436,45 +3390,45 @@ void URemoteReducers::InsertOneI256(const FSpacetimeDBInt256& N) return; } - FInsertOneI256Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_i_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneI256(ReducerArgs)); } + FDeleteAllUniqueU32Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueU32(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneI256(const FReducerEventContext& Context, const UInsertOneI256Reducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueU32(const FReducerEventContext& Context, const UDeleteAllUniqueU32Reducer* Args) { - if (!OnInsertOneI256.IsBound()) + if (!OnDeleteAllUniqueU32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueU32")); } return false; } - OnInsertOneI256.Broadcast(Context, Args->N); + OnDeleteAllUniqueU32.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertOneI256WithArgs(const FReducerEventContext& Context, const FInsertOneI256Args& Args) +bool URemoteReducers::InvokeDeleteAllUniqueU32WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueU32Args& Args) { - if (!OnInsertOneI256.IsBound()) + if (!OnDeleteAllUniqueU32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueU32")); } return false; } - OnInsertOneI256.Broadcast(Context, Args.N); + OnDeleteAllUniqueU32.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertOneI32(const int32 N) +void URemoteReducers::DeleteAllUniqueU64(const uint64 N, const int32 Data) { if (!Conn) { @@ -3482,45 +3436,45 @@ void URemoteReducers::InsertOneI32(const int32 N) return; } - FInsertOneI32Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_i_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneI32(ReducerArgs)); } + FDeleteAllUniqueU64Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_u_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueU64(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneI32(const FReducerEventContext& Context, const UInsertOneI32Reducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueU64(const FReducerEventContext& Context, const UDeleteAllUniqueU64Reducer* Args) { - if (!OnInsertOneI32.IsBound()) + if (!OnDeleteAllUniqueU64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueU64")); } return false; } - OnInsertOneI32.Broadcast(Context, Args->N); + OnDeleteAllUniqueU64.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertOneI32WithArgs(const FReducerEventContext& Context, const FInsertOneI32Args& Args) +bool URemoteReducers::InvokeDeleteAllUniqueU64WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueU64Args& Args) { - if (!OnInsertOneI32.IsBound()) + if (!OnDeleteAllUniqueU64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueU64")); } return false; } - OnInsertOneI32.Broadcast(Context, Args.N); + OnDeleteAllUniqueU64.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertOneI64(const int64 N) +void URemoteReducers::DeleteAllUniqueU8(const uint8 N, const int32 Data) { if (!Conn) { @@ -3528,45 +3482,45 @@ void URemoteReducers::InsertOneI64(const int64 N) return; } - FInsertOneI64Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_i_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneI64(ReducerArgs)); } + FDeleteAllUniqueU8Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_u_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueU8(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneI64(const FReducerEventContext& Context, const UInsertOneI64Reducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueU8(const FReducerEventContext& Context, const UDeleteAllUniqueU8Reducer* Args) { - if (!OnInsertOneI64.IsBound()) + if (!OnDeleteAllUniqueU8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueU8")); } return false; } - OnInsertOneI64.Broadcast(Context, Args->N); + OnDeleteAllUniqueU8.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertOneI64WithArgs(const FReducerEventContext& Context, const FInsertOneI64Args& Args) +bool URemoteReducers::InvokeDeleteAllUniqueU8WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueU8Args& Args) { - if (!OnInsertOneI64.IsBound()) + if (!OnDeleteAllUniqueU8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueU8")); } return false; } - OnInsertOneI64.Broadcast(Context, Args.N); + OnDeleteAllUniqueU8.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertOneI8(const int8 N) +void URemoteReducers::DeleteAllUniqueUuid(const FSpacetimeDBUuid& U, const int32 Data) { if (!Conn) { @@ -3574,45 +3528,45 @@ void URemoteReducers::InsertOneI8(const int8 N) return; } - FInsertOneI8Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_i_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneI8(ReducerArgs)); } + FDeleteAllUniqueUuidArgs ReducerArgs(U, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_unique_uuid"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllUniqueUuid(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneI8(const FReducerEventContext& Context, const UInsertOneI8Reducer* Args) +bool URemoteReducers::InvokeDeleteAllUniqueUuid(const FReducerEventContext& Context, const UDeleteAllUniqueUuidReducer* Args) { - if (!OnInsertOneI8.IsBound()) + if (!OnDeleteAllUniqueUuid.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueUuid")); } return false; } - OnInsertOneI8.Broadcast(Context, Args->N); + OnDeleteAllUniqueUuid.Broadcast(Context, Args->U, Args->Data); return true; } -bool URemoteReducers::InvokeInsertOneI8WithArgs(const FReducerEventContext& Context, const FInsertOneI8Args& Args) +bool URemoteReducers::InvokeDeleteAllUniqueUuidWithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueUuidArgs& Args) { - if (!OnInsertOneI8.IsBound()) + if (!OnDeleteAllUniqueUuid.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllUniqueUuid")); } return false; } - OnInsertOneI8.Broadcast(Context, Args.N); + OnDeleteAllUniqueUuid.Broadcast(Context, Args.U, Args.Data); return true; } -void URemoteReducers::InsertOneIdentity(const FSpacetimeDBIdentity& I) +void URemoteReducers::DeleteAllVecBool(const TArray& B) { if (!Conn) { @@ -3620,45 +3574,45 @@ void URemoteReducers::InsertOneIdentity(const FSpacetimeDBIdentity& I) return; } - FInsertOneIdentityArgs ReducerArgs(I); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_identity"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneIdentity(ReducerArgs)); } + FDeleteAllVecBoolArgs ReducerArgs(B); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_bool"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecBool(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneIdentity(const FReducerEventContext& Context, const UInsertOneIdentityReducer* Args) +bool URemoteReducers::InvokeDeleteAllVecBool(const FReducerEventContext& Context, const UDeleteAllVecBoolReducer* Args) { - if (!OnInsertOneIdentity.IsBound()) + if (!OnDeleteAllVecBool.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecBool")); } return false; } - OnInsertOneIdentity.Broadcast(Context, Args->I); + OnDeleteAllVecBool.Broadcast(Context, Args->B); return true; } -bool URemoteReducers::InvokeInsertOneIdentityWithArgs(const FReducerEventContext& Context, const FInsertOneIdentityArgs& Args) +bool URemoteReducers::InvokeDeleteAllVecBoolWithArgs(const FReducerEventContext& Context, const FDeleteAllVecBoolArgs& Args) { - if (!OnInsertOneIdentity.IsBound()) + if (!OnDeleteAllVecBool.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecBool")); } return false; } - OnInsertOneIdentity.Broadcast(Context, Args.I); + OnDeleteAllVecBool.Broadcast(Context, Args.B); return true; } -void URemoteReducers::InsertOneSimpleEnum(const ESimpleEnumType& E) +void URemoteReducers::DeleteAllVecByteStruct(const TArray& S) { if (!Conn) { @@ -3666,45 +3620,45 @@ void URemoteReducers::InsertOneSimpleEnum(const ESimpleEnumType& E) return; } - FInsertOneSimpleEnumArgs ReducerArgs(E); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_simple_enum"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneSimpleEnum(ReducerArgs)); } + FDeleteAllVecByteStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_byte_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecByteStruct(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneSimpleEnum(const FReducerEventContext& Context, const UInsertOneSimpleEnumReducer* Args) +bool URemoteReducers::InvokeDeleteAllVecByteStruct(const FReducerEventContext& Context, const UDeleteAllVecByteStructReducer* Args) { - if (!OnInsertOneSimpleEnum.IsBound()) + if (!OnDeleteAllVecByteStruct.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneSimpleEnum")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecByteStruct")); } return false; } - OnInsertOneSimpleEnum.Broadcast(Context, Args->E); + OnDeleteAllVecByteStruct.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeInsertOneSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertOneSimpleEnumArgs& Args) +bool URemoteReducers::InvokeDeleteAllVecByteStructWithArgs(const FReducerEventContext& Context, const FDeleteAllVecByteStructArgs& Args) { - if (!OnInsertOneSimpleEnum.IsBound()) + if (!OnDeleteAllVecByteStruct.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneSimpleEnum")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecByteStruct")); } return false; } - OnInsertOneSimpleEnum.Broadcast(Context, Args.E); + OnDeleteAllVecByteStruct.Broadcast(Context, Args.S); return true; } -void URemoteReducers::InsertOneString(const FString& S) +void URemoteReducers::DeleteAllVecEnumWithPayload(const TArray& E) { if (!Conn) { @@ -3712,45 +3666,45 @@ void URemoteReducers::InsertOneString(const FString& S) return; } - FInsertOneStringArgs ReducerArgs(S); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_string"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneString(ReducerArgs)); } + FDeleteAllVecEnumWithPayloadArgs ReducerArgs(E); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_enum_with_payload"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecEnumWithPayload(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneString(const FReducerEventContext& Context, const UInsertOneStringReducer* Args) +bool URemoteReducers::InvokeDeleteAllVecEnumWithPayload(const FReducerEventContext& Context, const UDeleteAllVecEnumWithPayloadReducer* Args) { - if (!OnInsertOneString.IsBound()) + if (!OnDeleteAllVecEnumWithPayload.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecEnumWithPayload")); } return false; } - OnInsertOneString.Broadcast(Context, Args->S); + OnDeleteAllVecEnumWithPayload.Broadcast(Context, Args->E); return true; } -bool URemoteReducers::InvokeInsertOneStringWithArgs(const FReducerEventContext& Context, const FInsertOneStringArgs& Args) +bool URemoteReducers::InvokeDeleteAllVecEnumWithPayloadWithArgs(const FReducerEventContext& Context, const FDeleteAllVecEnumWithPayloadArgs& Args) { - if (!OnInsertOneString.IsBound()) + if (!OnDeleteAllVecEnumWithPayload.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecEnumWithPayload")); } return false; } - OnInsertOneString.Broadcast(Context, Args.S); + OnDeleteAllVecEnumWithPayload.Broadcast(Context, Args.E); return true; } -void URemoteReducers::InsertOneTimestamp(const FSpacetimeDBTimestamp& T) +void URemoteReducers::DeleteAllVecEveryPrimitiveStruct(const TArray& S) { if (!Conn) { @@ -3758,45 +3712,45 @@ void URemoteReducers::InsertOneTimestamp(const FSpacetimeDBTimestamp& T) return; } - FInsertOneTimestampArgs ReducerArgs(T); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_timestamp"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneTimestamp(ReducerArgs)); } + FDeleteAllVecEveryPrimitiveStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_every_primitive_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecEveryPrimitiveStruct(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneTimestamp(const FReducerEventContext& Context, const UInsertOneTimestampReducer* Args) +bool URemoteReducers::InvokeDeleteAllVecEveryPrimitiveStruct(const FReducerEventContext& Context, const UDeleteAllVecEveryPrimitiveStructReducer* Args) { - if (!OnInsertOneTimestamp.IsBound()) + if (!OnDeleteAllVecEveryPrimitiveStruct.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneTimestamp")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecEveryPrimitiveStruct")); } return false; } - OnInsertOneTimestamp.Broadcast(Context, Args->T); + OnDeleteAllVecEveryPrimitiveStruct.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeInsertOneTimestampWithArgs(const FReducerEventContext& Context, const FInsertOneTimestampArgs& Args) +bool URemoteReducers::InvokeDeleteAllVecEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FDeleteAllVecEveryPrimitiveStructArgs& Args) { - if (!OnInsertOneTimestamp.IsBound()) + if (!OnDeleteAllVecEveryPrimitiveStruct.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneTimestamp")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecEveryPrimitiveStruct")); } return false; } - OnInsertOneTimestamp.Broadcast(Context, Args.T); + OnDeleteAllVecEveryPrimitiveStruct.Broadcast(Context, Args.S); return true; } -void URemoteReducers::InsertOneU128(const FSpacetimeDBUInt128& N) +void URemoteReducers::DeleteAllVecEveryVecStruct(const TArray& S) { if (!Conn) { @@ -3804,45 +3758,45 @@ void URemoteReducers::InsertOneU128(const FSpacetimeDBUInt128& N) return; } - FInsertOneU128Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_u_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneU128(ReducerArgs)); } + FDeleteAllVecEveryVecStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_every_vec_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecEveryVecStruct(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneU128(const FReducerEventContext& Context, const UInsertOneU128Reducer* Args) +bool URemoteReducers::InvokeDeleteAllVecEveryVecStruct(const FReducerEventContext& Context, const UDeleteAllVecEveryVecStructReducer* Args) { - if (!OnInsertOneU128.IsBound()) + if (!OnDeleteAllVecEveryVecStruct.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecEveryVecStruct")); } return false; } - OnInsertOneU128.Broadcast(Context, Args->N); + OnDeleteAllVecEveryVecStruct.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeInsertOneU128WithArgs(const FReducerEventContext& Context, const FInsertOneU128Args& Args) +bool URemoteReducers::InvokeDeleteAllVecEveryVecStructWithArgs(const FReducerEventContext& Context, const FDeleteAllVecEveryVecStructArgs& Args) { - if (!OnInsertOneU128.IsBound()) + if (!OnDeleteAllVecEveryVecStruct.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecEveryVecStruct")); } return false; } - OnInsertOneU128.Broadcast(Context, Args.N); + OnDeleteAllVecEveryVecStruct.Broadcast(Context, Args.S); return true; } -void URemoteReducers::InsertOneU16(const uint16 N) +void URemoteReducers::DeleteAllVecF32(const TArray& F) { if (!Conn) { @@ -3850,45 +3804,45 @@ void URemoteReducers::InsertOneU16(const uint16 N) return; } - FInsertOneU16Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_u_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneU16(ReducerArgs)); } + FDeleteAllVecF32Args ReducerArgs(F); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_f_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecF32(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneU16(const FReducerEventContext& Context, const UInsertOneU16Reducer* Args) +bool URemoteReducers::InvokeDeleteAllVecF32(const FReducerEventContext& Context, const UDeleteAllVecF32Reducer* Args) { - if (!OnInsertOneU16.IsBound()) + if (!OnDeleteAllVecF32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecF32")); } return false; } - OnInsertOneU16.Broadcast(Context, Args->N); + OnDeleteAllVecF32.Broadcast(Context, Args->F); return true; } -bool URemoteReducers::InvokeInsertOneU16WithArgs(const FReducerEventContext& Context, const FInsertOneU16Args& Args) +bool URemoteReducers::InvokeDeleteAllVecF32WithArgs(const FReducerEventContext& Context, const FDeleteAllVecF32Args& Args) { - if (!OnInsertOneU16.IsBound()) + if (!OnDeleteAllVecF32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecF32")); } return false; } - OnInsertOneU16.Broadcast(Context, Args.N); + OnDeleteAllVecF32.Broadcast(Context, Args.F); return true; } -void URemoteReducers::InsertOneU256(const FSpacetimeDBUInt256& N) +void URemoteReducers::DeleteAllVecF64(const TArray& F) { if (!Conn) { @@ -3896,45 +3850,45 @@ void URemoteReducers::InsertOneU256(const FSpacetimeDBUInt256& N) return; } - FInsertOneU256Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_u_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneU256(ReducerArgs)); } + FDeleteAllVecF64Args ReducerArgs(F); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_f_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecF64(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneU256(const FReducerEventContext& Context, const UInsertOneU256Reducer* Args) +bool URemoteReducers::InvokeDeleteAllVecF64(const FReducerEventContext& Context, const UDeleteAllVecF64Reducer* Args) { - if (!OnInsertOneU256.IsBound()) + if (!OnDeleteAllVecF64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecF64")); } return false; } - OnInsertOneU256.Broadcast(Context, Args->N); + OnDeleteAllVecF64.Broadcast(Context, Args->F); return true; } -bool URemoteReducers::InvokeInsertOneU256WithArgs(const FReducerEventContext& Context, const FInsertOneU256Args& Args) +bool URemoteReducers::InvokeDeleteAllVecF64WithArgs(const FReducerEventContext& Context, const FDeleteAllVecF64Args& Args) { - if (!OnInsertOneU256.IsBound()) + if (!OnDeleteAllVecF64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecF64")); } return false; } - OnInsertOneU256.Broadcast(Context, Args.N); + OnDeleteAllVecF64.Broadcast(Context, Args.F); return true; } -void URemoteReducers::InsertOneU32(const uint32 N) +void URemoteReducers::DeleteAllVecI128(const TArray& N) { if (!Conn) { @@ -3942,45 +3896,45 @@ void URemoteReducers::InsertOneU32(const uint32 N) return; } - FInsertOneU32Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_u_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneU32(ReducerArgs)); } + FDeleteAllVecI128Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_i_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecI128(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneU32(const FReducerEventContext& Context, const UInsertOneU32Reducer* Args) +bool URemoteReducers::InvokeDeleteAllVecI128(const FReducerEventContext& Context, const UDeleteAllVecI128Reducer* Args) { - if (!OnInsertOneU32.IsBound()) + if (!OnDeleteAllVecI128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecI128")); } return false; } - OnInsertOneU32.Broadcast(Context, Args->N); + OnDeleteAllVecI128.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertOneU32WithArgs(const FReducerEventContext& Context, const FInsertOneU32Args& Args) +bool URemoteReducers::InvokeDeleteAllVecI128WithArgs(const FReducerEventContext& Context, const FDeleteAllVecI128Args& Args) { - if (!OnInsertOneU32.IsBound()) + if (!OnDeleteAllVecI128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecI128")); } return false; } - OnInsertOneU32.Broadcast(Context, Args.N); + OnDeleteAllVecI128.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertOneU64(const uint64 N) +void URemoteReducers::DeleteAllVecI16(const TArray& N) { if (!Conn) { @@ -3988,45 +3942,45 @@ void URemoteReducers::InsertOneU64(const uint64 N) return; } - FInsertOneU64Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_u_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneU64(ReducerArgs)); } + FDeleteAllVecI16Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_i_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecI16(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneU64(const FReducerEventContext& Context, const UInsertOneU64Reducer* Args) +bool URemoteReducers::InvokeDeleteAllVecI16(const FReducerEventContext& Context, const UDeleteAllVecI16Reducer* Args) { - if (!OnInsertOneU64.IsBound()) + if (!OnDeleteAllVecI16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecI16")); } return false; } - OnInsertOneU64.Broadcast(Context, Args->N); + OnDeleteAllVecI16.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertOneU64WithArgs(const FReducerEventContext& Context, const FInsertOneU64Args& Args) +bool URemoteReducers::InvokeDeleteAllVecI16WithArgs(const FReducerEventContext& Context, const FDeleteAllVecI16Args& Args) { - if (!OnInsertOneU64.IsBound()) + if (!OnDeleteAllVecI16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecI16")); } return false; } - OnInsertOneU64.Broadcast(Context, Args.N); + OnDeleteAllVecI16.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertOneU8(const uint8 N) +void URemoteReducers::DeleteAllVecI256(const TArray& N) { if (!Conn) { @@ -4034,45 +3988,45 @@ void URemoteReducers::InsertOneU8(const uint8 N) return; } - FInsertOneU8Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_u_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneU8(ReducerArgs)); } + FDeleteAllVecI256Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_i_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecI256(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneU8(const FReducerEventContext& Context, const UInsertOneU8Reducer* Args) +bool URemoteReducers::InvokeDeleteAllVecI256(const FReducerEventContext& Context, const UDeleteAllVecI256Reducer* Args) { - if (!OnInsertOneU8.IsBound()) + if (!OnDeleteAllVecI256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecI256")); } return false; } - OnInsertOneU8.Broadcast(Context, Args->N); + OnDeleteAllVecI256.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertOneU8WithArgs(const FReducerEventContext& Context, const FInsertOneU8Args& Args) +bool URemoteReducers::InvokeDeleteAllVecI256WithArgs(const FReducerEventContext& Context, const FDeleteAllVecI256Args& Args) { - if (!OnInsertOneU8.IsBound()) + if (!OnDeleteAllVecI256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecI256")); } return false; } - OnInsertOneU8.Broadcast(Context, Args.N); + OnDeleteAllVecI256.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertOneUnitStruct(const FUnitStructType& S) +void URemoteReducers::DeleteAllVecI32(const TArray& N) { if (!Conn) { @@ -4080,45 +4034,45 @@ void URemoteReducers::InsertOneUnitStruct(const FUnitStructType& S) return; } - FInsertOneUnitStructArgs ReducerArgs(S); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_unit_struct"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneUnitStruct(ReducerArgs)); } + FDeleteAllVecI32Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecI32(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneUnitStruct(const FReducerEventContext& Context, const UInsertOneUnitStructReducer* Args) +bool URemoteReducers::InvokeDeleteAllVecI32(const FReducerEventContext& Context, const UDeleteAllVecI32Reducer* Args) { - if (!OnInsertOneUnitStruct.IsBound()) + if (!OnDeleteAllVecI32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneUnitStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecI32")); } return false; } - OnInsertOneUnitStruct.Broadcast(Context, Args->S); + OnDeleteAllVecI32.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertOneUnitStructWithArgs(const FReducerEventContext& Context, const FInsertOneUnitStructArgs& Args) +bool URemoteReducers::InvokeDeleteAllVecI32WithArgs(const FReducerEventContext& Context, const FDeleteAllVecI32Args& Args) { - if (!OnInsertOneUnitStruct.IsBound()) + if (!OnDeleteAllVecI32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneUnitStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecI32")); } return false; } - OnInsertOneUnitStruct.Broadcast(Context, Args.S); + OnDeleteAllVecI32.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertOneUuid(const FSpacetimeDBUuid& U) +void URemoteReducers::DeleteAllVecI64(const TArray& N) { if (!Conn) { @@ -4126,45 +4080,45 @@ void URemoteReducers::InsertOneUuid(const FSpacetimeDBUuid& U) return; } - FInsertOneUuidArgs ReducerArgs(U); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_uuid"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneUuid(ReducerArgs)); } + FDeleteAllVecI64Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_i_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecI64(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOneUuid(const FReducerEventContext& Context, const UInsertOneUuidReducer* Args) +bool URemoteReducers::InvokeDeleteAllVecI64(const FReducerEventContext& Context, const UDeleteAllVecI64Reducer* Args) { - if (!OnInsertOneUuid.IsBound()) + if (!OnDeleteAllVecI64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecI64")); } return false; } - OnInsertOneUuid.Broadcast(Context, Args->U); + OnDeleteAllVecI64.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertOneUuidWithArgs(const FReducerEventContext& Context, const FInsertOneUuidArgs& Args) +bool URemoteReducers::InvokeDeleteAllVecI64WithArgs(const FReducerEventContext& Context, const FDeleteAllVecI64Args& Args) { - if (!OnInsertOneUuid.IsBound()) + if (!OnDeleteAllVecI64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecI64")); } return false; } - OnInsertOneUuid.Broadcast(Context, Args.U); + OnDeleteAllVecI64.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertOptionEveryPrimitiveStruct(const FTestClientOptionalEveryPrimitiveStruct& S) +void URemoteReducers::DeleteAllVecI8(const TArray& N) { if (!Conn) { @@ -4172,45 +4126,45 @@ void URemoteReducers::InsertOptionEveryPrimitiveStruct(const FTestClientOptional return; } - FInsertOptionEveryPrimitiveStructArgs ReducerArgs(S); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_option_every_primitive_struct"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOptionEveryPrimitiveStruct(ReducerArgs)); } + FDeleteAllVecI8Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_i_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecI8(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOptionEveryPrimitiveStruct(const FReducerEventContext& Context, const UInsertOptionEveryPrimitiveStructReducer* Args) +bool URemoteReducers::InvokeDeleteAllVecI8(const FReducerEventContext& Context, const UDeleteAllVecI8Reducer* Args) { - if (!OnInsertOptionEveryPrimitiveStruct.IsBound()) + if (!OnDeleteAllVecI8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionEveryPrimitiveStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecI8")); } return false; } - OnInsertOptionEveryPrimitiveStruct.Broadcast(Context, Args->S); + OnDeleteAllVecI8.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertOptionEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FInsertOptionEveryPrimitiveStructArgs& Args) +bool URemoteReducers::InvokeDeleteAllVecI8WithArgs(const FReducerEventContext& Context, const FDeleteAllVecI8Args& Args) { - if (!OnInsertOptionEveryPrimitiveStruct.IsBound()) + if (!OnDeleteAllVecI8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionEveryPrimitiveStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecI8")); } return false; } - OnInsertOptionEveryPrimitiveStruct.Broadcast(Context, Args.S); + OnDeleteAllVecI8.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertOptionI32(const FTestClientOptionalInt32 N) +void URemoteReducers::DeleteAllVecIdentity(const TArray& I) { if (!Conn) { @@ -4218,45 +4172,45 @@ void URemoteReducers::InsertOptionI32(const FTestClientOptionalInt32 N) return; } - FInsertOptionI32Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_option_i_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOptionI32(ReducerArgs)); } + FDeleteAllVecIdentityArgs ReducerArgs(I); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecIdentity(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOptionI32(const FReducerEventContext& Context, const UInsertOptionI32Reducer* Args) +bool URemoteReducers::InvokeDeleteAllVecIdentity(const FReducerEventContext& Context, const UDeleteAllVecIdentityReducer* Args) { - if (!OnInsertOptionI32.IsBound()) + if (!OnDeleteAllVecIdentity.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecIdentity")); } return false; } - OnInsertOptionI32.Broadcast(Context, Args->N); + OnDeleteAllVecIdentity.Broadcast(Context, Args->I); return true; } -bool URemoteReducers::InvokeInsertOptionI32WithArgs(const FReducerEventContext& Context, const FInsertOptionI32Args& Args) +bool URemoteReducers::InvokeDeleteAllVecIdentityWithArgs(const FReducerEventContext& Context, const FDeleteAllVecIdentityArgs& Args) { - if (!OnInsertOptionI32.IsBound()) + if (!OnDeleteAllVecIdentity.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecIdentity")); } return false; } - OnInsertOptionI32.Broadcast(Context, Args.N); + OnDeleteAllVecIdentity.Broadcast(Context, Args.I); return true; } -void URemoteReducers::InsertOptionIdentity(const FTestClientOptionalIdentity& I) +void URemoteReducers::DeleteAllVecSimpleEnum(const TArray& E) { if (!Conn) { @@ -4264,45 +4218,45 @@ void URemoteReducers::InsertOptionIdentity(const FTestClientOptionalIdentity& I) return; } - FInsertOptionIdentityArgs ReducerArgs(I); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_option_identity"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOptionIdentity(ReducerArgs)); } + FDeleteAllVecSimpleEnumArgs ReducerArgs(E); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_simple_enum"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecSimpleEnum(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOptionIdentity(const FReducerEventContext& Context, const UInsertOptionIdentityReducer* Args) +bool URemoteReducers::InvokeDeleteAllVecSimpleEnum(const FReducerEventContext& Context, const UDeleteAllVecSimpleEnumReducer* Args) { - if (!OnInsertOptionIdentity.IsBound()) + if (!OnDeleteAllVecSimpleEnum.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecSimpleEnum")); } return false; } - OnInsertOptionIdentity.Broadcast(Context, Args->I); + OnDeleteAllVecSimpleEnum.Broadcast(Context, Args->E); return true; } -bool URemoteReducers::InvokeInsertOptionIdentityWithArgs(const FReducerEventContext& Context, const FInsertOptionIdentityArgs& Args) +bool URemoteReducers::InvokeDeleteAllVecSimpleEnumWithArgs(const FReducerEventContext& Context, const FDeleteAllVecSimpleEnumArgs& Args) { - if (!OnInsertOptionIdentity.IsBound()) + if (!OnDeleteAllVecSimpleEnum.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecSimpleEnum")); } return false; } - OnInsertOptionIdentity.Broadcast(Context, Args.I); + OnDeleteAllVecSimpleEnum.Broadcast(Context, Args.E); return true; } -void URemoteReducers::InsertOptionSimpleEnum(const FTestClientOptionalSimpleEnum& E) +void URemoteReducers::DeleteAllVecString(const TArray& S) { if (!Conn) { @@ -4310,45 +4264,45 @@ void URemoteReducers::InsertOptionSimpleEnum(const FTestClientOptionalSimpleEnum return; } - FInsertOptionSimpleEnumArgs ReducerArgs(E); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_option_simple_enum"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOptionSimpleEnum(ReducerArgs)); } + FDeleteAllVecStringArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecString(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOptionSimpleEnum(const FReducerEventContext& Context, const UInsertOptionSimpleEnumReducer* Args) +bool URemoteReducers::InvokeDeleteAllVecString(const FReducerEventContext& Context, const UDeleteAllVecStringReducer* Args) { - if (!OnInsertOptionSimpleEnum.IsBound()) + if (!OnDeleteAllVecString.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionSimpleEnum")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecString")); } return false; } - OnInsertOptionSimpleEnum.Broadcast(Context, Args->E); + OnDeleteAllVecString.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeInsertOptionSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertOptionSimpleEnumArgs& Args) +bool URemoteReducers::InvokeDeleteAllVecStringWithArgs(const FReducerEventContext& Context, const FDeleteAllVecStringArgs& Args) { - if (!OnInsertOptionSimpleEnum.IsBound()) + if (!OnDeleteAllVecString.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionSimpleEnum")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecString")); } return false; } - OnInsertOptionSimpleEnum.Broadcast(Context, Args.E); + OnDeleteAllVecString.Broadcast(Context, Args.S); return true; } -void URemoteReducers::InsertOptionString(const FTestClientOptionalString& S) +void URemoteReducers::DeleteAllVecTimestamp(const TArray& T) { if (!Conn) { @@ -4356,45 +4310,45 @@ void URemoteReducers::InsertOptionString(const FTestClientOptionalString& S) return; } - FInsertOptionStringArgs ReducerArgs(S); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_option_string"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOptionString(ReducerArgs)); } + FDeleteAllVecTimestampArgs ReducerArgs(T); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_timestamp"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecTimestamp(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOptionString(const FReducerEventContext& Context, const UInsertOptionStringReducer* Args) +bool URemoteReducers::InvokeDeleteAllVecTimestamp(const FReducerEventContext& Context, const UDeleteAllVecTimestampReducer* Args) { - if (!OnInsertOptionString.IsBound()) + if (!OnDeleteAllVecTimestamp.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecTimestamp")); } return false; } - OnInsertOptionString.Broadcast(Context, Args->S); + OnDeleteAllVecTimestamp.Broadcast(Context, Args->T); return true; } -bool URemoteReducers::InvokeInsertOptionStringWithArgs(const FReducerEventContext& Context, const FInsertOptionStringArgs& Args) +bool URemoteReducers::InvokeDeleteAllVecTimestampWithArgs(const FReducerEventContext& Context, const FDeleteAllVecTimestampArgs& Args) { - if (!OnInsertOptionString.IsBound()) + if (!OnDeleteAllVecTimestamp.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecTimestamp")); } return false; } - OnInsertOptionString.Broadcast(Context, Args.S); + OnDeleteAllVecTimestamp.Broadcast(Context, Args.T); return true; } -void URemoteReducers::InsertOptionUuid(const FTestClientOptionalUuid& U) +void URemoteReducers::DeleteAllVecU128(const TArray& N) { if (!Conn) { @@ -4402,45 +4356,45 @@ void URemoteReducers::InsertOptionUuid(const FTestClientOptionalUuid& U) return; } - FInsertOptionUuidArgs ReducerArgs(U); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_option_uuid"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOptionUuid(ReducerArgs)); } + FDeleteAllVecU128Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_u_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecU128(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOptionUuid(const FReducerEventContext& Context, const UInsertOptionUuidReducer* Args) +bool URemoteReducers::InvokeDeleteAllVecU128(const FReducerEventContext& Context, const UDeleteAllVecU128Reducer* Args) { - if (!OnInsertOptionUuid.IsBound()) + if (!OnDeleteAllVecU128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecU128")); } return false; } - OnInsertOptionUuid.Broadcast(Context, Args->U); + OnDeleteAllVecU128.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertOptionUuidWithArgs(const FReducerEventContext& Context, const FInsertOptionUuidArgs& Args) +bool URemoteReducers::InvokeDeleteAllVecU128WithArgs(const FReducerEventContext& Context, const FDeleteAllVecU128Args& Args) { - if (!OnInsertOptionUuid.IsBound()) + if (!OnDeleteAllVecU128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecU128")); } return false; } - OnInsertOptionUuid.Broadcast(Context, Args.U); + OnDeleteAllVecU128.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertOptionVecOptionI32(const FTestClientOptionalVecOptionalInt32& V) +void URemoteReducers::DeleteAllVecU16(const TArray& N) { if (!Conn) { @@ -4448,45 +4402,45 @@ void URemoteReducers::InsertOptionVecOptionI32(const FTestClientOptionalVecOptio return; } - FInsertOptionVecOptionI32Args ReducerArgs(V); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_option_vec_option_i_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOptionVecOptionI32(ReducerArgs)); } + FDeleteAllVecU16Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_u_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecU16(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertOptionVecOptionI32(const FReducerEventContext& Context, const UInsertOptionVecOptionI32Reducer* Args) +bool URemoteReducers::InvokeDeleteAllVecU16(const FReducerEventContext& Context, const UDeleteAllVecU16Reducer* Args) { - if (!OnInsertOptionVecOptionI32.IsBound()) + if (!OnDeleteAllVecU16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionVecOptionI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecU16")); } return false; } - OnInsertOptionVecOptionI32.Broadcast(Context, Args->V); + OnDeleteAllVecU16.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertOptionVecOptionI32WithArgs(const FReducerEventContext& Context, const FInsertOptionVecOptionI32Args& Args) +bool URemoteReducers::InvokeDeleteAllVecU16WithArgs(const FReducerEventContext& Context, const FDeleteAllVecU16Args& Args) { - if (!OnInsertOptionVecOptionI32.IsBound()) + if (!OnDeleteAllVecU16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionVecOptionI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecU16")); } return false; } - OnInsertOptionVecOptionI32.Broadcast(Context, Args.V); + OnDeleteAllVecU16.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertPkBool(const bool B, const int32 Data) +void URemoteReducers::DeleteAllVecU256(const TArray& N) { if (!Conn) { @@ -4494,45 +4448,45 @@ void URemoteReducers::InsertPkBool(const bool B, const int32 Data) return; } - FInsertPkBoolArgs ReducerArgs(B, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_bool"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkBool(ReducerArgs)); } + FDeleteAllVecU256Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_u_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecU256(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkBool(const FReducerEventContext& Context, const UInsertPkBoolReducer* Args) +bool URemoteReducers::InvokeDeleteAllVecU256(const FReducerEventContext& Context, const UDeleteAllVecU256Reducer* Args) { - if (!OnInsertPkBool.IsBound()) + if (!OnDeleteAllVecU256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecU256")); } return false; } - OnInsertPkBool.Broadcast(Context, Args->B, Args->Data); + OnDeleteAllVecU256.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertPkBoolWithArgs(const FReducerEventContext& Context, const FInsertPkBoolArgs& Args) +bool URemoteReducers::InvokeDeleteAllVecU256WithArgs(const FReducerEventContext& Context, const FDeleteAllVecU256Args& Args) { - if (!OnInsertPkBool.IsBound()) + if (!OnDeleteAllVecU256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecU256")); } return false; } - OnInsertPkBool.Broadcast(Context, Args.B, Args.Data); + OnDeleteAllVecU256.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertPkConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data) +void URemoteReducers::DeleteAllVecU32(const TArray& N) { if (!Conn) { @@ -4540,45 +4494,45 @@ void URemoteReducers::InsertPkConnectionId(const FSpacetimeDBConnectionId& A, co return; } - FInsertPkConnectionIdArgs ReducerArgs(A, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_connection_id"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkConnectionId(ReducerArgs)); } + FDeleteAllVecU32Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecU32(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkConnectionId(const FReducerEventContext& Context, const UInsertPkConnectionIdReducer* Args) +bool URemoteReducers::InvokeDeleteAllVecU32(const FReducerEventContext& Context, const UDeleteAllVecU32Reducer* Args) { - if (!OnInsertPkConnectionId.IsBound()) + if (!OnDeleteAllVecU32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecU32")); } return false; } - OnInsertPkConnectionId.Broadcast(Context, Args->A, Args->Data); + OnDeleteAllVecU32.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertPkConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertPkConnectionIdArgs& Args) +bool URemoteReducers::InvokeDeleteAllVecU32WithArgs(const FReducerEventContext& Context, const FDeleteAllVecU32Args& Args) { - if (!OnInsertPkConnectionId.IsBound()) + if (!OnDeleteAllVecU32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecU32")); } return false; } - OnInsertPkConnectionId.Broadcast(Context, Args.A, Args.Data); + OnDeleteAllVecU32.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertPkI128(const FSpacetimeDBInt128& N, const int32 Data) +void URemoteReducers::DeleteAllVecU64(const TArray& N) { if (!Conn) { @@ -4586,45 +4540,45 @@ void URemoteReducers::InsertPkI128(const FSpacetimeDBInt128& N, const int32 Data return; } - FInsertPkI128Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_i_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkI128(ReducerArgs)); } + FDeleteAllVecU64Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_u_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecU64(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkI128(const FReducerEventContext& Context, const UInsertPkI128Reducer* Args) +bool URemoteReducers::InvokeDeleteAllVecU64(const FReducerEventContext& Context, const UDeleteAllVecU64Reducer* Args) { - if (!OnInsertPkI128.IsBound()) + if (!OnDeleteAllVecU64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecU64")); } return false; } - OnInsertPkI128.Broadcast(Context, Args->N, Args->Data); + OnDeleteAllVecU64.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertPkI128WithArgs(const FReducerEventContext& Context, const FInsertPkI128Args& Args) +bool URemoteReducers::InvokeDeleteAllVecU64WithArgs(const FReducerEventContext& Context, const FDeleteAllVecU64Args& Args) { - if (!OnInsertPkI128.IsBound()) + if (!OnDeleteAllVecU64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecU64")); } return false; } - OnInsertPkI128.Broadcast(Context, Args.N, Args.Data); + OnDeleteAllVecU64.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertPkI16(const int16 N, const int32 Data) +void URemoteReducers::DeleteAllVecU8(const TArray& N) { if (!Conn) { @@ -4632,45 +4586,45 @@ void URemoteReducers::InsertPkI16(const int16 N, const int32 Data) return; } - FInsertPkI16Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_i_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkI16(ReducerArgs)); } + FDeleteAllVecU8Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_u_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecU8(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkI16(const FReducerEventContext& Context, const UInsertPkI16Reducer* Args) +bool URemoteReducers::InvokeDeleteAllVecU8(const FReducerEventContext& Context, const UDeleteAllVecU8Reducer* Args) { - if (!OnInsertPkI16.IsBound()) + if (!OnDeleteAllVecU8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecU8")); } return false; } - OnInsertPkI16.Broadcast(Context, Args->N, Args->Data); + OnDeleteAllVecU8.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertPkI16WithArgs(const FReducerEventContext& Context, const FInsertPkI16Args& Args) +bool URemoteReducers::InvokeDeleteAllVecU8WithArgs(const FReducerEventContext& Context, const FDeleteAllVecU8Args& Args) { - if (!OnInsertPkI16.IsBound()) + if (!OnDeleteAllVecU8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecU8")); } return false; } - OnInsertPkI16.Broadcast(Context, Args.N, Args.Data); + OnDeleteAllVecU8.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertPkI256(const FSpacetimeDBInt256& N, const int32 Data) +void URemoteReducers::DeleteAllVecUnitStruct(const TArray& S) { if (!Conn) { @@ -4678,45 +4632,45 @@ void URemoteReducers::InsertPkI256(const FSpacetimeDBInt256& N, const int32 Data return; } - FInsertPkI256Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_i_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkI256(ReducerArgs)); } + FDeleteAllVecUnitStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_unit_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecUnitStruct(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkI256(const FReducerEventContext& Context, const UInsertPkI256Reducer* Args) +bool URemoteReducers::InvokeDeleteAllVecUnitStruct(const FReducerEventContext& Context, const UDeleteAllVecUnitStructReducer* Args) { - if (!OnInsertPkI256.IsBound()) + if (!OnDeleteAllVecUnitStruct.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecUnitStruct")); } return false; } - OnInsertPkI256.Broadcast(Context, Args->N, Args->Data); + OnDeleteAllVecUnitStruct.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeInsertPkI256WithArgs(const FReducerEventContext& Context, const FInsertPkI256Args& Args) +bool URemoteReducers::InvokeDeleteAllVecUnitStructWithArgs(const FReducerEventContext& Context, const FDeleteAllVecUnitStructArgs& Args) { - if (!OnInsertPkI256.IsBound()) + if (!OnDeleteAllVecUnitStruct.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecUnitStruct")); } return false; } - OnInsertPkI256.Broadcast(Context, Args.N, Args.Data); + OnDeleteAllVecUnitStruct.Broadcast(Context, Args.S); return true; } -void URemoteReducers::InsertPkI32(const int32 N, const int32 Data) +void URemoteReducers::DeleteAllVecUuid(const TArray& U) { if (!Conn) { @@ -4724,45 +4678,45 @@ void URemoteReducers::InsertPkI32(const int32 N, const int32 Data) return; } - FInsertPkI32Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_i_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkI32(ReducerArgs)); } + FDeleteAllVecUuidArgs ReducerArgs(U); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_all_vec_uuid"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteAllVecUuid(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkI32(const FReducerEventContext& Context, const UInsertPkI32Reducer* Args) +bool URemoteReducers::InvokeDeleteAllVecUuid(const FReducerEventContext& Context, const UDeleteAllVecUuidReducer* Args) { - if (!OnInsertPkI32.IsBound()) + if (!OnDeleteAllVecUuid.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecUuid")); } return false; } - OnInsertPkI32.Broadcast(Context, Args->N, Args->Data); + OnDeleteAllVecUuid.Broadcast(Context, Args->U); return true; } -bool URemoteReducers::InvokeInsertPkI32WithArgs(const FReducerEventContext& Context, const FInsertPkI32Args& Args) +bool URemoteReducers::InvokeDeleteAllVecUuidWithArgs(const FReducerEventContext& Context, const FDeleteAllVecUuidArgs& Args) { - if (!OnInsertPkI32.IsBound()) + if (!OnDeleteAllVecUuid.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteAllVecUuid")); } return false; } - OnInsertPkI32.Broadcast(Context, Args.N, Args.Data); + OnDeleteAllVecUuid.Broadcast(Context, Args.U); return true; } -void URemoteReducers::InsertPkI64(const int64 N, const int32 Data) +void URemoteReducers::DeleteFromBtreeU32(const TArray& Rows) { if (!Conn) { @@ -4770,45 +4724,45 @@ void URemoteReducers::InsertPkI64(const int64 N, const int32 Data) return; } - FInsertPkI64Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_i_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkI64(ReducerArgs)); } + FDeleteFromBtreeU32Args ReducerArgs(Rows); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_from_btree_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteFromBtreeU32(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkI64(const FReducerEventContext& Context, const UInsertPkI64Reducer* Args) +bool URemoteReducers::InvokeDeleteFromBtreeU32(const FReducerEventContext& Context, const UDeleteFromBtreeU32Reducer* Args) { - if (!OnInsertPkI64.IsBound()) + if (!OnDeleteFromBtreeU32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteFromBtreeU32")); } return false; } - OnInsertPkI64.Broadcast(Context, Args->N, Args->Data); + OnDeleteFromBtreeU32.Broadcast(Context, Args->Rows); return true; } -bool URemoteReducers::InvokeInsertPkI64WithArgs(const FReducerEventContext& Context, const FInsertPkI64Args& Args) +bool URemoteReducers::InvokeDeleteFromBtreeU32WithArgs(const FReducerEventContext& Context, const FDeleteFromBtreeU32Args& Args) { - if (!OnInsertPkI64.IsBound()) + if (!OnDeleteFromBtreeU32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteFromBtreeU32")); } return false; } - OnInsertPkI64.Broadcast(Context, Args.N, Args.Data); + OnDeleteFromBtreeU32.Broadcast(Context, Args.Rows); return true; } -void URemoteReducers::InsertPkI8(const int8 N, const int32 Data) +void URemoteReducers::DeleteLargeTable(const uint8 A, const uint16 B, const uint32 C, const uint64 D, const FSpacetimeDBUInt128& E, const FSpacetimeDBUInt256& F, const int8 G, const int16 H, const int32 I, const int64 J, const FSpacetimeDBInt128& K, const FSpacetimeDBInt256& L, const bool M, const float N, const double O, const FString& P, const ESimpleEnumType& Q, const FEnumWithPayloadType& R, const FUnitStructType& S, const FByteStructType& T, const FEveryPrimitiveStructType& U, const FEveryVecStructType& V) { if (!Conn) { @@ -4816,45 +4770,68 @@ void URemoteReducers::InsertPkI8(const int8 N, const int32 Data) return; } - FInsertPkI8Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_i_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkI8(ReducerArgs)); } + FDeleteLargeTableArgs ReducerArgs(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_large_table"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteLargeTable(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkI8(const FReducerEventContext& Context, const UInsertPkI8Reducer* Args) +bool URemoteReducers::InvokeDeleteLargeTable(const FReducerEventContext& Context, const UDeleteLargeTableReducer* Args) { - if (!OnInsertPkI8.IsBound()) + if (!OnDeleteLargeTable.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteLargeTable")); } return false; } - OnInsertPkI8.Broadcast(Context, Args->N, Args->Data); + FDeleteLargeTableArgs ArgsStruct; + ArgsStruct.A = Args->A; + ArgsStruct.B = Args->B; + ArgsStruct.C = Args->C; + ArgsStruct.D = Args->D; + ArgsStruct.E = Args->E; + ArgsStruct.F = Args->F; + ArgsStruct.G = Args->G; + ArgsStruct.H = Args->H; + ArgsStruct.I = Args->I; + ArgsStruct.J = Args->J; + ArgsStruct.K = Args->K; + ArgsStruct.L = Args->L; + ArgsStruct.M = Args->M; + ArgsStruct.N = Args->N; + ArgsStruct.O = Args->O; + ArgsStruct.P = Args->P; + ArgsStruct.Q = Args->Q; + ArgsStruct.R = Args->R; + ArgsStruct.S = Args->S; + ArgsStruct.T = Args->T; + ArgsStruct.U = Args->U; + ArgsStruct.V = Args->V; + OnDeleteLargeTable.Broadcast(Context, ArgsStruct); return true; } -bool URemoteReducers::InvokeInsertPkI8WithArgs(const FReducerEventContext& Context, const FInsertPkI8Args& Args) +bool URemoteReducers::InvokeDeleteLargeTableWithArgs(const FReducerEventContext& Context, const FDeleteLargeTableArgs& Args) { - if (!OnInsertPkI8.IsBound()) + if (!OnDeleteLargeTable.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteLargeTable")); } return false; } - OnInsertPkI8.Broadcast(Context, Args.N, Args.Data); + OnDeleteLargeTable.Broadcast(Context, Args); return true; } -void URemoteReducers::InsertPkIdentity(const FSpacetimeDBIdentity& I, const int32 Data) +void URemoteReducers::DeletePkBool(const bool B) { if (!Conn) { @@ -4862,45 +4839,45 @@ void URemoteReducers::InsertPkIdentity(const FSpacetimeDBIdentity& I, const int3 return; } - FInsertPkIdentityArgs ReducerArgs(I, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_identity"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkIdentity(ReducerArgs)); } + FDeletePkBoolArgs ReducerArgs(B); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_bool"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkBool(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkIdentity(const FReducerEventContext& Context, const UInsertPkIdentityReducer* Args) +bool URemoteReducers::InvokeDeletePkBool(const FReducerEventContext& Context, const UDeletePkBoolReducer* Args) { - if (!OnInsertPkIdentity.IsBound()) + if (!OnDeletePkBool.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkBool")); } return false; } - OnInsertPkIdentity.Broadcast(Context, Args->I, Args->Data); + OnDeletePkBool.Broadcast(Context, Args->B); return true; } -bool URemoteReducers::InvokeInsertPkIdentityWithArgs(const FReducerEventContext& Context, const FInsertPkIdentityArgs& Args) +bool URemoteReducers::InvokeDeletePkBoolWithArgs(const FReducerEventContext& Context, const FDeletePkBoolArgs& Args) { - if (!OnInsertPkIdentity.IsBound()) + if (!OnDeletePkBool.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkBool")); } return false; } - OnInsertPkIdentity.Broadcast(Context, Args.I, Args.Data); + OnDeletePkBool.Broadcast(Context, Args.B); return true; } -void URemoteReducers::InsertPkSimpleEnum(const ESimpleEnumType& A, const int32 Data) +void URemoteReducers::DeletePkConnectionId(const FSpacetimeDBConnectionId& A) { if (!Conn) { @@ -4908,45 +4885,45 @@ void URemoteReducers::InsertPkSimpleEnum(const ESimpleEnumType& A, const int32 D return; } - FInsertPkSimpleEnumArgs ReducerArgs(A, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_simple_enum"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkSimpleEnum(ReducerArgs)); } + FDeletePkConnectionIdArgs ReducerArgs(A); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_connection_id"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkConnectionId(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkSimpleEnum(const FReducerEventContext& Context, const UInsertPkSimpleEnumReducer* Args) +bool URemoteReducers::InvokeDeletePkConnectionId(const FReducerEventContext& Context, const UDeletePkConnectionIdReducer* Args) { - if (!OnInsertPkSimpleEnum.IsBound()) + if (!OnDeletePkConnectionId.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkSimpleEnum")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkConnectionId")); } return false; } - OnInsertPkSimpleEnum.Broadcast(Context, Args->A, Args->Data); + OnDeletePkConnectionId.Broadcast(Context, Args->A); return true; } -bool URemoteReducers::InvokeInsertPkSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertPkSimpleEnumArgs& Args) +bool URemoteReducers::InvokeDeletePkConnectionIdWithArgs(const FReducerEventContext& Context, const FDeletePkConnectionIdArgs& Args) { - if (!OnInsertPkSimpleEnum.IsBound()) + if (!OnDeletePkConnectionId.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkSimpleEnum")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkConnectionId")); } return false; } - OnInsertPkSimpleEnum.Broadcast(Context, Args.A, Args.Data); + OnDeletePkConnectionId.Broadcast(Context, Args.A); return true; } -void URemoteReducers::InsertPkString(const FString& S, const int32 Data) +void URemoteReducers::DeletePkI128(const FSpacetimeDBInt128& N) { if (!Conn) { @@ -4954,45 +4931,45 @@ void URemoteReducers::InsertPkString(const FString& S, const int32 Data) return; } - FInsertPkStringArgs ReducerArgs(S, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_string"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkString(ReducerArgs)); } + FDeletePkI128Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_i_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkI128(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkString(const FReducerEventContext& Context, const UInsertPkStringReducer* Args) +bool URemoteReducers::InvokeDeletePkI128(const FReducerEventContext& Context, const UDeletePkI128Reducer* Args) { - if (!OnInsertPkString.IsBound()) + if (!OnDeletePkI128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI128")); } return false; } - OnInsertPkString.Broadcast(Context, Args->S, Args->Data); + OnDeletePkI128.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertPkStringWithArgs(const FReducerEventContext& Context, const FInsertPkStringArgs& Args) +bool URemoteReducers::InvokeDeletePkI128WithArgs(const FReducerEventContext& Context, const FDeletePkI128Args& Args) { - if (!OnInsertPkString.IsBound()) + if (!OnDeletePkI128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI128")); } return false; } - OnInsertPkString.Broadcast(Context, Args.S, Args.Data); + OnDeletePkI128.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertPkU128(const FSpacetimeDBUInt128& N, const int32 Data) +void URemoteReducers::DeletePkI16(const int16 N) { if (!Conn) { @@ -5000,45 +4977,45 @@ void URemoteReducers::InsertPkU128(const FSpacetimeDBUInt128& N, const int32 Dat return; } - FInsertPkU128Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_u_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkU128(ReducerArgs)); } + FDeletePkI16Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_i_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkI16(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkU128(const FReducerEventContext& Context, const UInsertPkU128Reducer* Args) +bool URemoteReducers::InvokeDeletePkI16(const FReducerEventContext& Context, const UDeletePkI16Reducer* Args) { - if (!OnInsertPkU128.IsBound()) + if (!OnDeletePkI16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI16")); } return false; } - OnInsertPkU128.Broadcast(Context, Args->N, Args->Data); + OnDeletePkI16.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertPkU128WithArgs(const FReducerEventContext& Context, const FInsertPkU128Args& Args) +bool URemoteReducers::InvokeDeletePkI16WithArgs(const FReducerEventContext& Context, const FDeletePkI16Args& Args) { - if (!OnInsertPkU128.IsBound()) + if (!OnDeletePkI16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI16")); } return false; } - OnInsertPkU128.Broadcast(Context, Args.N, Args.Data); + OnDeletePkI16.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertPkU16(const uint16 N, const int32 Data) +void URemoteReducers::DeletePkI256(const FSpacetimeDBInt256& N) { if (!Conn) { @@ -5046,45 +5023,45 @@ void URemoteReducers::InsertPkU16(const uint16 N, const int32 Data) return; } - FInsertPkU16Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_u_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkU16(ReducerArgs)); } + FDeletePkI256Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_i_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkI256(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkU16(const FReducerEventContext& Context, const UInsertPkU16Reducer* Args) +bool URemoteReducers::InvokeDeletePkI256(const FReducerEventContext& Context, const UDeletePkI256Reducer* Args) { - if (!OnInsertPkU16.IsBound()) + if (!OnDeletePkI256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI256")); } return false; } - OnInsertPkU16.Broadcast(Context, Args->N, Args->Data); + OnDeletePkI256.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertPkU16WithArgs(const FReducerEventContext& Context, const FInsertPkU16Args& Args) +bool URemoteReducers::InvokeDeletePkI256WithArgs(const FReducerEventContext& Context, const FDeletePkI256Args& Args) { - if (!OnInsertPkU16.IsBound()) + if (!OnDeletePkI256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI256")); } return false; } - OnInsertPkU16.Broadcast(Context, Args.N, Args.Data); + OnDeletePkI256.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertPkU256(const FSpacetimeDBUInt256& N, const int32 Data) +void URemoteReducers::DeletePkI32(const int32 N) { if (!Conn) { @@ -5092,45 +5069,45 @@ void URemoteReducers::InsertPkU256(const FSpacetimeDBUInt256& N, const int32 Dat return; } - FInsertPkU256Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_u_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkU256(ReducerArgs)); } + FDeletePkI32Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkI32(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkU256(const FReducerEventContext& Context, const UInsertPkU256Reducer* Args) +bool URemoteReducers::InvokeDeletePkI32(const FReducerEventContext& Context, const UDeletePkI32Reducer* Args) { - if (!OnInsertPkU256.IsBound()) + if (!OnDeletePkI32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI32")); } return false; } - OnInsertPkU256.Broadcast(Context, Args->N, Args->Data); + OnDeletePkI32.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertPkU256WithArgs(const FReducerEventContext& Context, const FInsertPkU256Args& Args) +bool URemoteReducers::InvokeDeletePkI32WithArgs(const FReducerEventContext& Context, const FDeletePkI32Args& Args) { - if (!OnInsertPkU256.IsBound()) + if (!OnDeletePkI32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI32")); } return false; } - OnInsertPkU256.Broadcast(Context, Args.N, Args.Data); + OnDeletePkI32.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertPkU32(const uint32 N, const int32 Data) +void URemoteReducers::DeletePkI64(const int64 N) { if (!Conn) { @@ -5138,45 +5115,45 @@ void URemoteReducers::InsertPkU32(const uint32 N, const int32 Data) return; } - FInsertPkU32Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_u_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkU32(ReducerArgs)); } + FDeletePkI64Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_i_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkI64(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkU32(const FReducerEventContext& Context, const UInsertPkU32Reducer* Args) +bool URemoteReducers::InvokeDeletePkI64(const FReducerEventContext& Context, const UDeletePkI64Reducer* Args) { - if (!OnInsertPkU32.IsBound()) + if (!OnDeletePkI64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI64")); } return false; } - OnInsertPkU32.Broadcast(Context, Args->N, Args->Data); + OnDeletePkI64.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertPkU32WithArgs(const FReducerEventContext& Context, const FInsertPkU32Args& Args) +bool URemoteReducers::InvokeDeletePkI64WithArgs(const FReducerEventContext& Context, const FDeletePkI64Args& Args) { - if (!OnInsertPkU32.IsBound()) + if (!OnDeletePkI64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI64")); } return false; } - OnInsertPkU32.Broadcast(Context, Args.N, Args.Data); + OnDeletePkI64.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertPkU32Two(const uint32 N, const int32 Data) +void URemoteReducers::DeletePkI8(const int8 N) { if (!Conn) { @@ -5184,45 +5161,45 @@ void URemoteReducers::InsertPkU32Two(const uint32 N, const int32 Data) return; } - FInsertPkU32TwoArgs ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_u_32_two"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkU32Two(ReducerArgs)); } + FDeletePkI8Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_i_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkI8(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkU32Two(const FReducerEventContext& Context, const UInsertPkU32TwoReducer* Args) +bool URemoteReducers::InvokeDeletePkI8(const FReducerEventContext& Context, const UDeletePkI8Reducer* Args) { - if (!OnInsertPkU32Two.IsBound()) + if (!OnDeletePkI8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU32Two")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI8")); } return false; } - OnInsertPkU32Two.Broadcast(Context, Args->N, Args->Data); + OnDeletePkI8.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertPkU32TwoWithArgs(const FReducerEventContext& Context, const FInsertPkU32TwoArgs& Args) +bool URemoteReducers::InvokeDeletePkI8WithArgs(const FReducerEventContext& Context, const FDeletePkI8Args& Args) { - if (!OnInsertPkU32Two.IsBound()) + if (!OnDeletePkI8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU32Two")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkI8")); } return false; } - OnInsertPkU32Two.Broadcast(Context, Args.N, Args.Data); + OnDeletePkI8.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertPkU64(const uint64 N, const int32 Data) +void URemoteReducers::DeletePkIdentity(const FSpacetimeDBIdentity& I) { if (!Conn) { @@ -5230,45 +5207,45 @@ void URemoteReducers::InsertPkU64(const uint64 N, const int32 Data) return; } - FInsertPkU64Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_u_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkU64(ReducerArgs)); } + FDeletePkIdentityArgs ReducerArgs(I); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkIdentity(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkU64(const FReducerEventContext& Context, const UInsertPkU64Reducer* Args) +bool URemoteReducers::InvokeDeletePkIdentity(const FReducerEventContext& Context, const UDeletePkIdentityReducer* Args) { - if (!OnInsertPkU64.IsBound()) + if (!OnDeletePkIdentity.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkIdentity")); } return false; } - OnInsertPkU64.Broadcast(Context, Args->N, Args->Data); + OnDeletePkIdentity.Broadcast(Context, Args->I); return true; } -bool URemoteReducers::InvokeInsertPkU64WithArgs(const FReducerEventContext& Context, const FInsertPkU64Args& Args) +bool URemoteReducers::InvokeDeletePkIdentityWithArgs(const FReducerEventContext& Context, const FDeletePkIdentityArgs& Args) { - if (!OnInsertPkU64.IsBound()) + if (!OnDeletePkIdentity.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkIdentity")); } return false; } - OnInsertPkU64.Broadcast(Context, Args.N, Args.Data); + OnDeletePkIdentity.Broadcast(Context, Args.I); return true; } -void URemoteReducers::InsertPkU8(const uint8 N, const int32 Data) +void URemoteReducers::DeletePkString(const FString& S) { if (!Conn) { @@ -5276,45 +5253,45 @@ void URemoteReducers::InsertPkU8(const uint8 N, const int32 Data) return; } - FInsertPkU8Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_u_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkU8(ReducerArgs)); } + FDeletePkStringArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkString(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkU8(const FReducerEventContext& Context, const UInsertPkU8Reducer* Args) +bool URemoteReducers::InvokeDeletePkString(const FReducerEventContext& Context, const UDeletePkStringReducer* Args) { - if (!OnInsertPkU8.IsBound()) + if (!OnDeletePkString.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkString")); } return false; } - OnInsertPkU8.Broadcast(Context, Args->N, Args->Data); + OnDeletePkString.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeInsertPkU8WithArgs(const FReducerEventContext& Context, const FInsertPkU8Args& Args) +bool URemoteReducers::InvokeDeletePkStringWithArgs(const FReducerEventContext& Context, const FDeletePkStringArgs& Args) { - if (!OnInsertPkU8.IsBound()) + if (!OnDeletePkString.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkString")); } return false; } - OnInsertPkU8.Broadcast(Context, Args.N, Args.Data); + OnDeletePkString.Broadcast(Context, Args.S); return true; } -void URemoteReducers::InsertPkUuid(const FSpacetimeDBUuid& U, const int32 Data) +void URemoteReducers::DeletePkU128(const FSpacetimeDBUInt128& N) { if (!Conn) { @@ -5322,45 +5299,45 @@ void URemoteReducers::InsertPkUuid(const FSpacetimeDBUuid& U, const int32 Data) return; } - FInsertPkUuidArgs ReducerArgs(U, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_uuid"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkUuid(ReducerArgs)); } + FDeletePkU128Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU128(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPkUuid(const FReducerEventContext& Context, const UInsertPkUuidReducer* Args) +bool URemoteReducers::InvokeDeletePkU128(const FReducerEventContext& Context, const UDeletePkU128Reducer* Args) { - if (!OnInsertPkUuid.IsBound()) + if (!OnDeletePkU128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU128")); } return false; } - OnInsertPkUuid.Broadcast(Context, Args->U, Args->Data); + OnDeletePkU128.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertPkUuidWithArgs(const FReducerEventContext& Context, const FInsertPkUuidArgs& Args) +bool URemoteReducers::InvokeDeletePkU128WithArgs(const FReducerEventContext& Context, const FDeletePkU128Args& Args) { - if (!OnInsertPkUuid.IsBound()) + if (!OnDeletePkU128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU128")); } return false; } - OnInsertPkUuid.Broadcast(Context, Args.U, Args.Data); + OnDeletePkU128.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertPrimitivesAsStrings(const FEveryPrimitiveStructType& S) +void URemoteReducers::DeletePkU16(const uint16 N) { if (!Conn) { @@ -5368,45 +5345,45 @@ void URemoteReducers::InsertPrimitivesAsStrings(const FEveryPrimitiveStructType& return; } - FInsertPrimitivesAsStringsArgs ReducerArgs(S); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_primitives_as_strings"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPrimitivesAsStrings(ReducerArgs)); } + FDeletePkU16Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU16(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertPrimitivesAsStrings(const FReducerEventContext& Context, const UInsertPrimitivesAsStringsReducer* Args) +bool URemoteReducers::InvokeDeletePkU16(const FReducerEventContext& Context, const UDeletePkU16Reducer* Args) { - if (!OnInsertPrimitivesAsStrings.IsBound()) + if (!OnDeletePkU16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPrimitivesAsStrings")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU16")); } return false; } - OnInsertPrimitivesAsStrings.Broadcast(Context, Args->S); + OnDeletePkU16.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertPrimitivesAsStringsWithArgs(const FReducerEventContext& Context, const FInsertPrimitivesAsStringsArgs& Args) +bool URemoteReducers::InvokeDeletePkU16WithArgs(const FReducerEventContext& Context, const FDeletePkU16Args& Args) { - if (!OnInsertPrimitivesAsStrings.IsBound()) + if (!OnDeletePkU16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPrimitivesAsStrings")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU16")); } return false; } - OnInsertPrimitivesAsStrings.Broadcast(Context, Args.S); + OnDeletePkU16.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertResultEveryPrimitiveStructString(const FTestClientResultEveryPrimitiveStructString& R) +void URemoteReducers::DeletePkU256(const FSpacetimeDBUInt256& N) { if (!Conn) { @@ -5414,45 +5391,45 @@ void URemoteReducers::InsertResultEveryPrimitiveStructString(const FTestClientRe return; } - FInsertResultEveryPrimitiveStructStringArgs ReducerArgs(R); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_result_every_primitive_struct_string"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertResultEveryPrimitiveStructString(ReducerArgs)); } + FDeletePkU256Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU256(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertResultEveryPrimitiveStructString(const FReducerEventContext& Context, const UInsertResultEveryPrimitiveStructStringReducer* Args) +bool URemoteReducers::InvokeDeletePkU256(const FReducerEventContext& Context, const UDeletePkU256Reducer* Args) { - if (!OnInsertResultEveryPrimitiveStructString.IsBound()) + if (!OnDeletePkU256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultEveryPrimitiveStructString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU256")); } return false; } - OnInsertResultEveryPrimitiveStructString.Broadcast(Context, Args->R); + OnDeletePkU256.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertResultEveryPrimitiveStructStringWithArgs(const FReducerEventContext& Context, const FInsertResultEveryPrimitiveStructStringArgs& Args) +bool URemoteReducers::InvokeDeletePkU256WithArgs(const FReducerEventContext& Context, const FDeletePkU256Args& Args) { - if (!OnInsertResultEveryPrimitiveStructString.IsBound()) + if (!OnDeletePkU256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultEveryPrimitiveStructString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU256")); } return false; } - OnInsertResultEveryPrimitiveStructString.Broadcast(Context, Args.R); + OnDeletePkU256.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertResultI32String(const FTestClientResultInt32String& R) +void URemoteReducers::DeletePkU32(const uint32 N) { if (!Conn) { @@ -5460,45 +5437,45 @@ void URemoteReducers::InsertResultI32String(const FTestClientResultInt32String& return; } - FInsertResultI32StringArgs ReducerArgs(R); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_result_i_32_string"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertResultI32String(ReducerArgs)); } + FDeletePkU32Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU32(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertResultI32String(const FReducerEventContext& Context, const UInsertResultI32StringReducer* Args) +bool URemoteReducers::InvokeDeletePkU32(const FReducerEventContext& Context, const UDeletePkU32Reducer* Args) { - if (!OnInsertResultI32String.IsBound()) + if (!OnDeletePkU32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultI32String")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU32")); } return false; } - OnInsertResultI32String.Broadcast(Context, Args->R); + OnDeletePkU32.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertResultI32StringWithArgs(const FReducerEventContext& Context, const FInsertResultI32StringArgs& Args) +bool URemoteReducers::InvokeDeletePkU32WithArgs(const FReducerEventContext& Context, const FDeletePkU32Args& Args) { - if (!OnInsertResultI32String.IsBound()) + if (!OnDeletePkU32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultI32String")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU32")); } return false; } - OnInsertResultI32String.Broadcast(Context, Args.R); + OnDeletePkU32.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertResultIdentityString(const FTestClientResultIdentityString& R) +void URemoteReducers::DeletePkU32InsertPkU32Two(const uint32 N, const int32 Data) { if (!Conn) { @@ -5506,45 +5483,45 @@ void URemoteReducers::InsertResultIdentityString(const FTestClientResultIdentity return; } - FInsertResultIdentityStringArgs ReducerArgs(R); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_result_identity_string"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertResultIdentityString(ReducerArgs)); } + FDeletePkU32InsertPkU32TwoArgs ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_32_insert_pk_u_32_two"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU32InsertPkU32Two(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertResultIdentityString(const FReducerEventContext& Context, const UInsertResultIdentityStringReducer* Args) +bool URemoteReducers::InvokeDeletePkU32InsertPkU32Two(const FReducerEventContext& Context, const UDeletePkU32InsertPkU32TwoReducer* Args) { - if (!OnInsertResultIdentityString.IsBound()) + if (!OnDeletePkU32InsertPkU32Two.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultIdentityString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU32InsertPkU32Two")); } return false; } - OnInsertResultIdentityString.Broadcast(Context, Args->R); + OnDeletePkU32InsertPkU32Two.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeInsertResultIdentityStringWithArgs(const FReducerEventContext& Context, const FInsertResultIdentityStringArgs& Args) +bool URemoteReducers::InvokeDeletePkU32InsertPkU32TwoWithArgs(const FReducerEventContext& Context, const FDeletePkU32InsertPkU32TwoArgs& Args) { - if (!OnInsertResultIdentityString.IsBound()) + if (!OnDeletePkU32InsertPkU32Two.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultIdentityString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU32InsertPkU32Two")); } return false; } - OnInsertResultIdentityString.Broadcast(Context, Args.R); + OnDeletePkU32InsertPkU32Two.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::InsertResultSimpleEnumI32(const FTestClientResultSimpleEnumInt32& R) +void URemoteReducers::DeletePkU32Two(const uint32 N) { if (!Conn) { @@ -5552,45 +5529,45 @@ void URemoteReducers::InsertResultSimpleEnumI32(const FTestClientResultSimpleEnu return; } - FInsertResultSimpleEnumI32Args ReducerArgs(R); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_result_simple_enum_i_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertResultSimpleEnumI32(ReducerArgs)); } + FDeletePkU32TwoArgs ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_32_two"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU32Two(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertResultSimpleEnumI32(const FReducerEventContext& Context, const UInsertResultSimpleEnumI32Reducer* Args) +bool URemoteReducers::InvokeDeletePkU32Two(const FReducerEventContext& Context, const UDeletePkU32TwoReducer* Args) { - if (!OnInsertResultSimpleEnumI32.IsBound()) + if (!OnDeletePkU32Two.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultSimpleEnumI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU32Two")); } return false; } - OnInsertResultSimpleEnumI32.Broadcast(Context, Args->R); + OnDeletePkU32Two.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertResultSimpleEnumI32WithArgs(const FReducerEventContext& Context, const FInsertResultSimpleEnumI32Args& Args) +bool URemoteReducers::InvokeDeletePkU32TwoWithArgs(const FReducerEventContext& Context, const FDeletePkU32TwoArgs& Args) { - if (!OnInsertResultSimpleEnumI32.IsBound()) + if (!OnDeletePkU32Two.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultSimpleEnumI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU32Two")); } return false; } - OnInsertResultSimpleEnumI32.Broadcast(Context, Args.R); + OnDeletePkU32Two.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertResultStringI32(const FTestClientResultStringInt32& R) +void URemoteReducers::DeletePkU64(const uint64 N) { if (!Conn) { @@ -5598,45 +5575,45 @@ void URemoteReducers::InsertResultStringI32(const FTestClientResultStringInt32& return; } - FInsertResultStringI32Args ReducerArgs(R); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_result_string_i_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertResultStringI32(ReducerArgs)); } + FDeletePkU64Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU64(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertResultStringI32(const FReducerEventContext& Context, const UInsertResultStringI32Reducer* Args) +bool URemoteReducers::InvokeDeletePkU64(const FReducerEventContext& Context, const UDeletePkU64Reducer* Args) { - if (!OnInsertResultStringI32.IsBound()) + if (!OnDeletePkU64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultStringI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU64")); } return false; } - OnInsertResultStringI32.Broadcast(Context, Args->R); + OnDeletePkU64.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertResultStringI32WithArgs(const FReducerEventContext& Context, const FInsertResultStringI32Args& Args) +bool URemoteReducers::InvokeDeletePkU64WithArgs(const FReducerEventContext& Context, const FDeletePkU64Args& Args) { - if (!OnInsertResultStringI32.IsBound()) + if (!OnDeletePkU64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultStringI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU64")); } return false; } - OnInsertResultStringI32.Broadcast(Context, Args.R); + OnDeletePkU64.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertResultVecI32String(const FTestClientResultVecInt32String& R) +void URemoteReducers::DeletePkU8(const uint8 N) { if (!Conn) { @@ -5644,45 +5621,45 @@ void URemoteReducers::InsertResultVecI32String(const FTestClientResultVecInt32St return; } - FInsertResultVecI32StringArgs ReducerArgs(R); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_result_vec_i_32_string"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertResultVecI32String(ReducerArgs)); } + FDeletePkU8Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_u_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkU8(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertResultVecI32String(const FReducerEventContext& Context, const UInsertResultVecI32StringReducer* Args) +bool URemoteReducers::InvokeDeletePkU8(const FReducerEventContext& Context, const UDeletePkU8Reducer* Args) { - if (!OnInsertResultVecI32String.IsBound()) + if (!OnDeletePkU8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultVecI32String")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU8")); } return false; } - OnInsertResultVecI32String.Broadcast(Context, Args->R); + OnDeletePkU8.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertResultVecI32StringWithArgs(const FReducerEventContext& Context, const FInsertResultVecI32StringArgs& Args) +bool URemoteReducers::InvokeDeletePkU8WithArgs(const FReducerEventContext& Context, const FDeletePkU8Args& Args) { - if (!OnInsertResultVecI32String.IsBound()) + if (!OnDeletePkU8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultVecI32String")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkU8")); } return false; } - OnInsertResultVecI32String.Broadcast(Context, Args.R); + OnDeletePkU8.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertTableHoldsTable(const FOneU8Type& A, const FVecU8Type& B) +void URemoteReducers::DeletePkUuid(const FSpacetimeDBUuid& U) { if (!Conn) { @@ -5690,45 +5667,45 @@ void URemoteReducers::InsertTableHoldsTable(const FOneU8Type& A, const FVecU8Typ return; } - FInsertTableHoldsTableArgs ReducerArgs(A, B); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_table_holds_table"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertTableHoldsTable(ReducerArgs)); } + FDeletePkUuidArgs ReducerArgs(U); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_pk_uuid"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePkUuid(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertTableHoldsTable(const FReducerEventContext& Context, const UInsertTableHoldsTableReducer* Args) +bool URemoteReducers::InvokeDeletePkUuid(const FReducerEventContext& Context, const UDeletePkUuidReducer* Args) { - if (!OnInsertTableHoldsTable.IsBound()) + if (!OnDeletePkUuid.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertTableHoldsTable")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkUuid")); } return false; } - OnInsertTableHoldsTable.Broadcast(Context, Args->A, Args->B); + OnDeletePkUuid.Broadcast(Context, Args->U); return true; } -bool URemoteReducers::InvokeInsertTableHoldsTableWithArgs(const FReducerEventContext& Context, const FInsertTableHoldsTableArgs& Args) +bool URemoteReducers::InvokeDeletePkUuidWithArgs(const FReducerEventContext& Context, const FDeletePkUuidArgs& Args) { - if (!OnInsertTableHoldsTable.IsBound()) + if (!OnDeletePkUuid.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertTableHoldsTable")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePkUuid")); } return false; } - OnInsertTableHoldsTable.Broadcast(Context, Args.A, Args.B); + OnDeletePkUuid.Broadcast(Context, Args.U); return true; } -void URemoteReducers::InsertUniqueBool(const bool B, const int32 Data) +void URemoteReducers::DeleteUniqueBool(const bool B) { if (!Conn) { @@ -5736,45 +5713,45 @@ void URemoteReducers::InsertUniqueBool(const bool B, const int32 Data) return; } - FInsertUniqueBoolArgs ReducerArgs(B, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_bool"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueBool(ReducerArgs)); } + FDeleteUniqueBoolArgs ReducerArgs(B); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_bool"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueBool(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueBool(const FReducerEventContext& Context, const UInsertUniqueBoolReducer* Args) +bool URemoteReducers::InvokeDeleteUniqueBool(const FReducerEventContext& Context, const UDeleteUniqueBoolReducer* Args) { - if (!OnInsertUniqueBool.IsBound()) + if (!OnDeleteUniqueBool.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueBool")); } return false; } - OnInsertUniqueBool.Broadcast(Context, Args->B, Args->Data); + OnDeleteUniqueBool.Broadcast(Context, Args->B); return true; } -bool URemoteReducers::InvokeInsertUniqueBoolWithArgs(const FReducerEventContext& Context, const FInsertUniqueBoolArgs& Args) +bool URemoteReducers::InvokeDeleteUniqueBoolWithArgs(const FReducerEventContext& Context, const FDeleteUniqueBoolArgs& Args) { - if (!OnInsertUniqueBool.IsBound()) + if (!OnDeleteUniqueBool.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueBool")); } return false; } - OnInsertUniqueBool.Broadcast(Context, Args.B, Args.Data); + OnDeleteUniqueBool.Broadcast(Context, Args.B); return true; } -void URemoteReducers::InsertUniqueConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data) +void URemoteReducers::DeleteUniqueConnectionId(const FSpacetimeDBConnectionId& A) { if (!Conn) { @@ -5782,45 +5759,45 @@ void URemoteReducers::InsertUniqueConnectionId(const FSpacetimeDBConnectionId& A return; } - FInsertUniqueConnectionIdArgs ReducerArgs(A, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_connection_id"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueConnectionId(ReducerArgs)); } + FDeleteUniqueConnectionIdArgs ReducerArgs(A); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_connection_id"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueConnectionId(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueConnectionId(const FReducerEventContext& Context, const UInsertUniqueConnectionIdReducer* Args) +bool URemoteReducers::InvokeDeleteUniqueConnectionId(const FReducerEventContext& Context, const UDeleteUniqueConnectionIdReducer* Args) { - if (!OnInsertUniqueConnectionId.IsBound()) + if (!OnDeleteUniqueConnectionId.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueConnectionId")); } return false; } - OnInsertUniqueConnectionId.Broadcast(Context, Args->A, Args->Data); + OnDeleteUniqueConnectionId.Broadcast(Context, Args->A); return true; } -bool URemoteReducers::InvokeInsertUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertUniqueConnectionIdArgs& Args) +bool URemoteReducers::InvokeDeleteUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FDeleteUniqueConnectionIdArgs& Args) { - if (!OnInsertUniqueConnectionId.IsBound()) + if (!OnDeleteUniqueConnectionId.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueConnectionId")); } return false; } - OnInsertUniqueConnectionId.Broadcast(Context, Args.A, Args.Data); + OnDeleteUniqueConnectionId.Broadcast(Context, Args.A); return true; } -void URemoteReducers::InsertUniqueI128(const FSpacetimeDBInt128& N, const int32 Data) +void URemoteReducers::DeleteUniqueI128(const FSpacetimeDBInt128& N) { if (!Conn) { @@ -5828,45 +5805,45 @@ void URemoteReducers::InsertUniqueI128(const FSpacetimeDBInt128& N, const int32 return; } - FInsertUniqueI128Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_i_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueI128(ReducerArgs)); } + FDeleteUniqueI128Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_i_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueI128(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueI128(const FReducerEventContext& Context, const UInsertUniqueI128Reducer* Args) +bool URemoteReducers::InvokeDeleteUniqueI128(const FReducerEventContext& Context, const UDeleteUniqueI128Reducer* Args) { - if (!OnInsertUniqueI128.IsBound()) + if (!OnDeleteUniqueI128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI128")); } return false; } - OnInsertUniqueI128.Broadcast(Context, Args->N, Args->Data); + OnDeleteUniqueI128.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertUniqueI128WithArgs(const FReducerEventContext& Context, const FInsertUniqueI128Args& Args) +bool URemoteReducers::InvokeDeleteUniqueI128WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI128Args& Args) { - if (!OnInsertUniqueI128.IsBound()) + if (!OnDeleteUniqueI128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI128")); } return false; } - OnInsertUniqueI128.Broadcast(Context, Args.N, Args.Data); + OnDeleteUniqueI128.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertUniqueI16(const int16 N, const int32 Data) +void URemoteReducers::DeleteUniqueI16(const int16 N) { if (!Conn) { @@ -5874,45 +5851,45 @@ void URemoteReducers::InsertUniqueI16(const int16 N, const int32 Data) return; } - FInsertUniqueI16Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_i_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueI16(ReducerArgs)); } + FDeleteUniqueI16Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_i_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueI16(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueI16(const FReducerEventContext& Context, const UInsertUniqueI16Reducer* Args) +bool URemoteReducers::InvokeDeleteUniqueI16(const FReducerEventContext& Context, const UDeleteUniqueI16Reducer* Args) { - if (!OnInsertUniqueI16.IsBound()) + if (!OnDeleteUniqueI16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI16")); } return false; } - OnInsertUniqueI16.Broadcast(Context, Args->N, Args->Data); + OnDeleteUniqueI16.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertUniqueI16WithArgs(const FReducerEventContext& Context, const FInsertUniqueI16Args& Args) +bool URemoteReducers::InvokeDeleteUniqueI16WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI16Args& Args) { - if (!OnInsertUniqueI16.IsBound()) + if (!OnDeleteUniqueI16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI16")); } return false; } - OnInsertUniqueI16.Broadcast(Context, Args.N, Args.Data); + OnDeleteUniqueI16.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertUniqueI256(const FSpacetimeDBInt256& N, const int32 Data) +void URemoteReducers::DeleteUniqueI256(const FSpacetimeDBInt256& N) { if (!Conn) { @@ -5920,45 +5897,45 @@ void URemoteReducers::InsertUniqueI256(const FSpacetimeDBInt256& N, const int32 return; } - FInsertUniqueI256Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_i_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueI256(ReducerArgs)); } + FDeleteUniqueI256Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_i_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueI256(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueI256(const FReducerEventContext& Context, const UInsertUniqueI256Reducer* Args) +bool URemoteReducers::InvokeDeleteUniqueI256(const FReducerEventContext& Context, const UDeleteUniqueI256Reducer* Args) { - if (!OnInsertUniqueI256.IsBound()) + if (!OnDeleteUniqueI256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI256")); } return false; } - OnInsertUniqueI256.Broadcast(Context, Args->N, Args->Data); + OnDeleteUniqueI256.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertUniqueI256WithArgs(const FReducerEventContext& Context, const FInsertUniqueI256Args& Args) +bool URemoteReducers::InvokeDeleteUniqueI256WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI256Args& Args) { - if (!OnInsertUniqueI256.IsBound()) + if (!OnDeleteUniqueI256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI256")); } return false; } - OnInsertUniqueI256.Broadcast(Context, Args.N, Args.Data); + OnDeleteUniqueI256.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertUniqueI32(const int32 N, const int32 Data) +void URemoteReducers::DeleteUniqueI32(const int32 N) { if (!Conn) { @@ -5966,45 +5943,45 @@ void URemoteReducers::InsertUniqueI32(const int32 N, const int32 Data) return; } - FInsertUniqueI32Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_i_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueI32(ReducerArgs)); } + FDeleteUniqueI32Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueI32(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueI32(const FReducerEventContext& Context, const UInsertUniqueI32Reducer* Args) +bool URemoteReducers::InvokeDeleteUniqueI32(const FReducerEventContext& Context, const UDeleteUniqueI32Reducer* Args) { - if (!OnInsertUniqueI32.IsBound()) + if (!OnDeleteUniqueI32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI32")); } return false; } - OnInsertUniqueI32.Broadcast(Context, Args->N, Args->Data); + OnDeleteUniqueI32.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertUniqueI32WithArgs(const FReducerEventContext& Context, const FInsertUniqueI32Args& Args) +bool URemoteReducers::InvokeDeleteUniqueI32WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI32Args& Args) { - if (!OnInsertUniqueI32.IsBound()) + if (!OnDeleteUniqueI32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI32")); } return false; } - OnInsertUniqueI32.Broadcast(Context, Args.N, Args.Data); + OnDeleteUniqueI32.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertUniqueI64(const int64 N, const int32 Data) +void URemoteReducers::DeleteUniqueI64(const int64 N) { if (!Conn) { @@ -6012,45 +5989,45 @@ void URemoteReducers::InsertUniqueI64(const int64 N, const int32 Data) return; } - FInsertUniqueI64Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_i_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueI64(ReducerArgs)); } + FDeleteUniqueI64Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_i_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueI64(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueI64(const FReducerEventContext& Context, const UInsertUniqueI64Reducer* Args) +bool URemoteReducers::InvokeDeleteUniqueI64(const FReducerEventContext& Context, const UDeleteUniqueI64Reducer* Args) { - if (!OnInsertUniqueI64.IsBound()) + if (!OnDeleteUniqueI64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI64")); } return false; } - OnInsertUniqueI64.Broadcast(Context, Args->N, Args->Data); + OnDeleteUniqueI64.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertUniqueI64WithArgs(const FReducerEventContext& Context, const FInsertUniqueI64Args& Args) +bool URemoteReducers::InvokeDeleteUniqueI64WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI64Args& Args) { - if (!OnInsertUniqueI64.IsBound()) + if (!OnDeleteUniqueI64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI64")); } return false; } - OnInsertUniqueI64.Broadcast(Context, Args.N, Args.Data); + OnDeleteUniqueI64.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertUniqueI8(const int8 N, const int32 Data) +void URemoteReducers::DeleteUniqueI8(const int8 N) { if (!Conn) { @@ -6058,45 +6035,45 @@ void URemoteReducers::InsertUniqueI8(const int8 N, const int32 Data) return; } - FInsertUniqueI8Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_i_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueI8(ReducerArgs)); } + FDeleteUniqueI8Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_i_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueI8(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueI8(const FReducerEventContext& Context, const UInsertUniqueI8Reducer* Args) +bool URemoteReducers::InvokeDeleteUniqueI8(const FReducerEventContext& Context, const UDeleteUniqueI8Reducer* Args) { - if (!OnInsertUniqueI8.IsBound()) + if (!OnDeleteUniqueI8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI8")); } return false; } - OnInsertUniqueI8.Broadcast(Context, Args->N, Args->Data); + OnDeleteUniqueI8.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertUniqueI8WithArgs(const FReducerEventContext& Context, const FInsertUniqueI8Args& Args) +bool URemoteReducers::InvokeDeleteUniqueI8WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI8Args& Args) { - if (!OnInsertUniqueI8.IsBound()) + if (!OnDeleteUniqueI8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueI8")); } return false; } - OnInsertUniqueI8.Broadcast(Context, Args.N, Args.Data); + OnDeleteUniqueI8.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertUniqueIdentity(const FSpacetimeDBIdentity& I, const int32 Data) +void URemoteReducers::DeleteUniqueIdentity(const FSpacetimeDBIdentity& I) { if (!Conn) { @@ -6104,45 +6081,45 @@ void URemoteReducers::InsertUniqueIdentity(const FSpacetimeDBIdentity& I, const return; } - FInsertUniqueIdentityArgs ReducerArgs(I, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_identity"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueIdentity(ReducerArgs)); } + FDeleteUniqueIdentityArgs ReducerArgs(I); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueIdentity(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueIdentity(const FReducerEventContext& Context, const UInsertUniqueIdentityReducer* Args) +bool URemoteReducers::InvokeDeleteUniqueIdentity(const FReducerEventContext& Context, const UDeleteUniqueIdentityReducer* Args) { - if (!OnInsertUniqueIdentity.IsBound()) + if (!OnDeleteUniqueIdentity.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueIdentity")); } return false; } - OnInsertUniqueIdentity.Broadcast(Context, Args->I, Args->Data); + OnDeleteUniqueIdentity.Broadcast(Context, Args->I); return true; } -bool URemoteReducers::InvokeInsertUniqueIdentityWithArgs(const FReducerEventContext& Context, const FInsertUniqueIdentityArgs& Args) +bool URemoteReducers::InvokeDeleteUniqueIdentityWithArgs(const FReducerEventContext& Context, const FDeleteUniqueIdentityArgs& Args) { - if (!OnInsertUniqueIdentity.IsBound()) + if (!OnDeleteUniqueIdentity.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueIdentity")); } return false; } - OnInsertUniqueIdentity.Broadcast(Context, Args.I, Args.Data); + OnDeleteUniqueIdentity.Broadcast(Context, Args.I); return true; } -void URemoteReducers::InsertUniqueString(const FString& S, const int32 Data) +void URemoteReducers::DeleteUniqueString(const FString& S) { if (!Conn) { @@ -6150,45 +6127,45 @@ void URemoteReducers::InsertUniqueString(const FString& S, const int32 Data) return; } - FInsertUniqueStringArgs ReducerArgs(S, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_string"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueString(ReducerArgs)); } + FDeleteUniqueStringArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueString(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueString(const FReducerEventContext& Context, const UInsertUniqueStringReducer* Args) +bool URemoteReducers::InvokeDeleteUniqueString(const FReducerEventContext& Context, const UDeleteUniqueStringReducer* Args) { - if (!OnInsertUniqueString.IsBound()) + if (!OnDeleteUniqueString.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueString")); } return false; } - OnInsertUniqueString.Broadcast(Context, Args->S, Args->Data); + OnDeleteUniqueString.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeInsertUniqueStringWithArgs(const FReducerEventContext& Context, const FInsertUniqueStringArgs& Args) +bool URemoteReducers::InvokeDeleteUniqueStringWithArgs(const FReducerEventContext& Context, const FDeleteUniqueStringArgs& Args) { - if (!OnInsertUniqueString.IsBound()) + if (!OnDeleteUniqueString.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueString")); } return false; } - OnInsertUniqueString.Broadcast(Context, Args.S, Args.Data); + OnDeleteUniqueString.Broadcast(Context, Args.S); return true; } -void URemoteReducers::InsertUniqueU128(const FSpacetimeDBUInt128& N, const int32 Data) +void URemoteReducers::DeleteUniqueU128(const FSpacetimeDBUInt128& N) { if (!Conn) { @@ -6196,45 +6173,45 @@ void URemoteReducers::InsertUniqueU128(const FSpacetimeDBUInt128& N, const int32 return; } - FInsertUniqueU128Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_u_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueU128(ReducerArgs)); } + FDeleteUniqueU128Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_u_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueU128(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueU128(const FReducerEventContext& Context, const UInsertUniqueU128Reducer* Args) +bool URemoteReducers::InvokeDeleteUniqueU128(const FReducerEventContext& Context, const UDeleteUniqueU128Reducer* Args) { - if (!OnInsertUniqueU128.IsBound()) + if (!OnDeleteUniqueU128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU128")); } return false; } - OnInsertUniqueU128.Broadcast(Context, Args->N, Args->Data); + OnDeleteUniqueU128.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertUniqueU128WithArgs(const FReducerEventContext& Context, const FInsertUniqueU128Args& Args) +bool URemoteReducers::InvokeDeleteUniqueU128WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU128Args& Args) { - if (!OnInsertUniqueU128.IsBound()) + if (!OnDeleteUniqueU128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU128")); } return false; } - OnInsertUniqueU128.Broadcast(Context, Args.N, Args.Data); + OnDeleteUniqueU128.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertUniqueU16(const uint16 N, const int32 Data) +void URemoteReducers::DeleteUniqueU16(const uint16 N) { if (!Conn) { @@ -6242,45 +6219,45 @@ void URemoteReducers::InsertUniqueU16(const uint16 N, const int32 Data) return; } - FInsertUniqueU16Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_u_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueU16(ReducerArgs)); } + FDeleteUniqueU16Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_u_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueU16(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueU16(const FReducerEventContext& Context, const UInsertUniqueU16Reducer* Args) +bool URemoteReducers::InvokeDeleteUniqueU16(const FReducerEventContext& Context, const UDeleteUniqueU16Reducer* Args) { - if (!OnInsertUniqueU16.IsBound()) + if (!OnDeleteUniqueU16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU16")); } return false; } - OnInsertUniqueU16.Broadcast(Context, Args->N, Args->Data); + OnDeleteUniqueU16.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertUniqueU16WithArgs(const FReducerEventContext& Context, const FInsertUniqueU16Args& Args) +bool URemoteReducers::InvokeDeleteUniqueU16WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU16Args& Args) { - if (!OnInsertUniqueU16.IsBound()) + if (!OnDeleteUniqueU16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU16")); } return false; } - OnInsertUniqueU16.Broadcast(Context, Args.N, Args.Data); + OnDeleteUniqueU16.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertUniqueU256(const FSpacetimeDBUInt256& N, const int32 Data) +void URemoteReducers::DeleteUniqueU256(const FSpacetimeDBUInt256& N) { if (!Conn) { @@ -6288,45 +6265,45 @@ void URemoteReducers::InsertUniqueU256(const FSpacetimeDBUInt256& N, const int32 return; } - FInsertUniqueU256Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_u_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueU256(ReducerArgs)); } + FDeleteUniqueU256Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_u_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueU256(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueU256(const FReducerEventContext& Context, const UInsertUniqueU256Reducer* Args) +bool URemoteReducers::InvokeDeleteUniqueU256(const FReducerEventContext& Context, const UDeleteUniqueU256Reducer* Args) { - if (!OnInsertUniqueU256.IsBound()) + if (!OnDeleteUniqueU256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU256")); } return false; } - OnInsertUniqueU256.Broadcast(Context, Args->N, Args->Data); + OnDeleteUniqueU256.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertUniqueU256WithArgs(const FReducerEventContext& Context, const FInsertUniqueU256Args& Args) +bool URemoteReducers::InvokeDeleteUniqueU256WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU256Args& Args) { - if (!OnInsertUniqueU256.IsBound()) + if (!OnDeleteUniqueU256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU256")); } return false; } - OnInsertUniqueU256.Broadcast(Context, Args.N, Args.Data); + OnDeleteUniqueU256.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertUniqueU32(const uint32 N, const int32 Data) +void URemoteReducers::DeleteUniqueU32(const uint32 N) { if (!Conn) { @@ -6334,45 +6311,45 @@ void URemoteReducers::InsertUniqueU32(const uint32 N, const int32 Data) return; } - FInsertUniqueU32Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_u_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueU32(ReducerArgs)); } + FDeleteUniqueU32Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueU32(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueU32(const FReducerEventContext& Context, const UInsertUniqueU32Reducer* Args) +bool URemoteReducers::InvokeDeleteUniqueU32(const FReducerEventContext& Context, const UDeleteUniqueU32Reducer* Args) { - if (!OnInsertUniqueU32.IsBound()) + if (!OnDeleteUniqueU32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU32")); } return false; } - OnInsertUniqueU32.Broadcast(Context, Args->N, Args->Data); + OnDeleteUniqueU32.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertUniqueU32WithArgs(const FReducerEventContext& Context, const FInsertUniqueU32Args& Args) +bool URemoteReducers::InvokeDeleteUniqueU32WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU32Args& Args) { - if (!OnInsertUniqueU32.IsBound()) + if (!OnDeleteUniqueU32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU32")); } return false; } - OnInsertUniqueU32.Broadcast(Context, Args.N, Args.Data); + OnDeleteUniqueU32.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertUniqueU32UpdatePkU32(const uint32 N, const int32 DUnique, const int32 DPk) +void URemoteReducers::DeleteUniqueU64(const uint64 N) { if (!Conn) { @@ -6380,45 +6357,45 @@ void URemoteReducers::InsertUniqueU32UpdatePkU32(const uint32 N, const int32 DUn return; } - FInsertUniqueU32UpdatePkU32Args ReducerArgs(N, DUnique, DPk); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_u_32_update_pk_u_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueU32UpdatePkU32(ReducerArgs)); } + FDeleteUniqueU64Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_u_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueU64(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueU32UpdatePkU32(const FReducerEventContext& Context, const UInsertUniqueU32UpdatePkU32Reducer* Args) +bool URemoteReducers::InvokeDeleteUniqueU64(const FReducerEventContext& Context, const UDeleteUniqueU64Reducer* Args) { - if (!OnInsertUniqueU32UpdatePkU32.IsBound()) + if (!OnDeleteUniqueU64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU32UpdatePkU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU64")); } return false; } - OnInsertUniqueU32UpdatePkU32.Broadcast(Context, Args->N, Args->DUnique, Args->DPk); + OnDeleteUniqueU64.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertUniqueU32UpdatePkU32WithArgs(const FReducerEventContext& Context, const FInsertUniqueU32UpdatePkU32Args& Args) +bool URemoteReducers::InvokeDeleteUniqueU64WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU64Args& Args) { - if (!OnInsertUniqueU32UpdatePkU32.IsBound()) + if (!OnDeleteUniqueU64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU32UpdatePkU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU64")); } return false; } - OnInsertUniqueU32UpdatePkU32.Broadcast(Context, Args.N, Args.DUnique, Args.DPk); + OnDeleteUniqueU64.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertUniqueU64(const uint64 N, const int32 Data) +void URemoteReducers::DeleteUniqueU8(const uint8 N) { if (!Conn) { @@ -6426,45 +6403,45 @@ void URemoteReducers::InsertUniqueU64(const uint64 N, const int32 Data) return; } - FInsertUniqueU64Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_u_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueU64(ReducerArgs)); } + FDeleteUniqueU8Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_u_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueU8(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueU64(const FReducerEventContext& Context, const UInsertUniqueU64Reducer* Args) +bool URemoteReducers::InvokeDeleteUniqueU8(const FReducerEventContext& Context, const UDeleteUniqueU8Reducer* Args) { - if (!OnInsertUniqueU64.IsBound()) + if (!OnDeleteUniqueU8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU8")); } return false; } - OnInsertUniqueU64.Broadcast(Context, Args->N, Args->Data); + OnDeleteUniqueU8.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertUniqueU64WithArgs(const FReducerEventContext& Context, const FInsertUniqueU64Args& Args) +bool URemoteReducers::InvokeDeleteUniqueU8WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU8Args& Args) { - if (!OnInsertUniqueU64.IsBound()) + if (!OnDeleteUniqueU8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueU8")); } return false; } - OnInsertUniqueU64.Broadcast(Context, Args.N, Args.Data); + OnDeleteUniqueU8.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertUniqueU8(const uint8 N, const int32 Data) +void URemoteReducers::DeleteUniqueUuid(const FSpacetimeDBUuid& U) { if (!Conn) { @@ -6472,45 +6449,45 @@ void URemoteReducers::InsertUniqueU8(const uint8 N, const int32 Data) return; } - FInsertUniqueU8Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_u_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueU8(ReducerArgs)); } + FDeleteUniqueUuidArgs ReducerArgs(U); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_unique_uuid"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeleteUniqueUuid(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueU8(const FReducerEventContext& Context, const UInsertUniqueU8Reducer* Args) +bool URemoteReducers::InvokeDeleteUniqueUuid(const FReducerEventContext& Context, const UDeleteUniqueUuidReducer* Args) { - if (!OnInsertUniqueU8.IsBound()) + if (!OnDeleteUniqueUuid.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueUuid")); } return false; } - OnInsertUniqueU8.Broadcast(Context, Args->N, Args->Data); + OnDeleteUniqueUuid.Broadcast(Context, Args->U); return true; } -bool URemoteReducers::InvokeInsertUniqueU8WithArgs(const FReducerEventContext& Context, const FInsertUniqueU8Args& Args) +bool URemoteReducers::InvokeDeleteUniqueUuidWithArgs(const FReducerEventContext& Context, const FDeleteUniqueUuidArgs& Args) { - if (!OnInsertUniqueU8.IsBound()) + if (!OnDeleteUniqueUuid.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeleteUniqueUuid")); } return false; } - OnInsertUniqueU8.Broadcast(Context, Args.N, Args.Data); + OnDeleteUniqueUuid.Broadcast(Context, Args.U); return true; } -void URemoteReducers::InsertUniqueUuid(const FSpacetimeDBUuid& U, const int32 Data) +void URemoteReducers::InsertCallTimestamp() { if (!Conn) { @@ -6518,45 +6495,45 @@ void URemoteReducers::InsertUniqueUuid(const FSpacetimeDBUuid& U, const int32 Da return; } - FInsertUniqueUuidArgs ReducerArgs(U, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_uuid"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueUuid(ReducerArgs)); } + FInsertCallTimestampArgs ReducerArgs; + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_call_timestamp"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallTimestamp(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUniqueUuid(const FReducerEventContext& Context, const UInsertUniqueUuidReducer* Args) +bool URemoteReducers::InvokeInsertCallTimestamp(const FReducerEventContext& Context, const UInsertCallTimestampReducer* Args) { - if (!OnInsertUniqueUuid.IsBound()) + if (!OnInsertCallTimestamp.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallTimestamp")); } return false; } - OnInsertUniqueUuid.Broadcast(Context, Args->U, Args->Data); + OnInsertCallTimestamp.Broadcast(Context); return true; } -bool URemoteReducers::InvokeInsertUniqueUuidWithArgs(const FReducerEventContext& Context, const FInsertUniqueUuidArgs& Args) +bool URemoteReducers::InvokeInsertCallTimestampWithArgs(const FReducerEventContext& Context, const FInsertCallTimestampArgs& Args) { - if (!OnInsertUniqueUuid.IsBound()) + if (!OnInsertCallTimestamp.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallTimestamp")); } return false; } - OnInsertUniqueUuid.Broadcast(Context, Args.U, Args.Data); + OnInsertCallTimestamp.Broadcast(Context); return true; } -void URemoteReducers::InsertUser(const FString& Name, const FSpacetimeDBIdentity& Identity) +void URemoteReducers::InsertCallUuidV4() { if (!Conn) { @@ -6564,45 +6541,45 @@ void URemoteReducers::InsertUser(const FString& Name, const FSpacetimeDBIdentity return; } - FInsertUserArgs ReducerArgs(Name, Identity); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_user"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUser(ReducerArgs)); } + FInsertCallUuidV4Args ReducerArgs; + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_call_uuid_v_4"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallUuidV4(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertUser(const FReducerEventContext& Context, const UInsertUserReducer* Args) +bool URemoteReducers::InvokeInsertCallUuidV4(const FReducerEventContext& Context, const UInsertCallUuidV4Reducer* Args) { - if (!OnInsertUser.IsBound()) + if (!OnInsertCallUuidV4.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUser")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallUuidV4")); } return false; } - OnInsertUser.Broadcast(Context, Args->Name, Args->Identity); + OnInsertCallUuidV4.Broadcast(Context); return true; } -bool URemoteReducers::InvokeInsertUserWithArgs(const FReducerEventContext& Context, const FInsertUserArgs& Args) +bool URemoteReducers::InvokeInsertCallUuidV4WithArgs(const FReducerEventContext& Context, const FInsertCallUuidV4Args& Args) { - if (!OnInsertUser.IsBound()) + if (!OnInsertCallUuidV4.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUser")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallUuidV4")); } return false; } - OnInsertUser.Broadcast(Context, Args.Name, Args.Identity); + OnInsertCallUuidV4.Broadcast(Context); return true; } -void URemoteReducers::InsertVecBool(const TArray& B) +void URemoteReducers::InsertCallUuidV7() { if (!Conn) { @@ -6610,45 +6587,45 @@ void URemoteReducers::InsertVecBool(const TArray& B) return; } - FInsertVecBoolArgs ReducerArgs(B); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_bool"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecBool(ReducerArgs)); } + FInsertCallUuidV7Args ReducerArgs; + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_call_uuid_v_7"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallUuidV7(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecBool(const FReducerEventContext& Context, const UInsertVecBoolReducer* Args) +bool URemoteReducers::InvokeInsertCallUuidV7(const FReducerEventContext& Context, const UInsertCallUuidV7Reducer* Args) { - if (!OnInsertVecBool.IsBound()) + if (!OnInsertCallUuidV7.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallUuidV7")); } return false; } - OnInsertVecBool.Broadcast(Context, Args->B); + OnInsertCallUuidV7.Broadcast(Context); return true; } -bool URemoteReducers::InvokeInsertVecBoolWithArgs(const FReducerEventContext& Context, const FInsertVecBoolArgs& Args) +bool URemoteReducers::InvokeInsertCallUuidV7WithArgs(const FReducerEventContext& Context, const FInsertCallUuidV7Args& Args) { - if (!OnInsertVecBool.IsBound()) + if (!OnInsertCallUuidV7.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallUuidV7")); } return false; } - OnInsertVecBool.Broadcast(Context, Args.B); + OnInsertCallUuidV7.Broadcast(Context); return true; } -void URemoteReducers::InsertVecByteStruct(const TArray& S) +void URemoteReducers::InsertCallerOneConnectionId() { if (!Conn) { @@ -6656,45 +6633,45 @@ void URemoteReducers::InsertVecByteStruct(const TArray& S) return; } - FInsertVecByteStructArgs ReducerArgs(S); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_byte_struct"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecByteStruct(ReducerArgs)); } + FInsertCallerOneConnectionIdArgs ReducerArgs; + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_one_connection_id"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerOneConnectionId(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecByteStruct(const FReducerEventContext& Context, const UInsertVecByteStructReducer* Args) +bool URemoteReducers::InvokeInsertCallerOneConnectionId(const FReducerEventContext& Context, const UInsertCallerOneConnectionIdReducer* Args) { - if (!OnInsertVecByteStruct.IsBound()) + if (!OnInsertCallerOneConnectionId.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecByteStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerOneConnectionId")); } return false; } - OnInsertVecByteStruct.Broadcast(Context, Args->S); + OnInsertCallerOneConnectionId.Broadcast(Context); return true; } -bool URemoteReducers::InvokeInsertVecByteStructWithArgs(const FReducerEventContext& Context, const FInsertVecByteStructArgs& Args) +bool URemoteReducers::InvokeInsertCallerOneConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerOneConnectionIdArgs& Args) { - if (!OnInsertVecByteStruct.IsBound()) + if (!OnInsertCallerOneConnectionId.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecByteStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerOneConnectionId")); } return false; } - OnInsertVecByteStruct.Broadcast(Context, Args.S); + OnInsertCallerOneConnectionId.Broadcast(Context); return true; } -void URemoteReducers::InsertVecConnectionId(const TArray& A) +void URemoteReducers::InsertCallerOneIdentity() { if (!Conn) { @@ -6702,45 +6679,45 @@ void URemoteReducers::InsertVecConnectionId(const TArrayCallReducerTyped(TEXT("insert_vec_connection_id"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecConnectionId(ReducerArgs)); } + FInsertCallerOneIdentityArgs ReducerArgs; + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_one_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerOneIdentity(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecConnectionId(const FReducerEventContext& Context, const UInsertVecConnectionIdReducer* Args) +bool URemoteReducers::InvokeInsertCallerOneIdentity(const FReducerEventContext& Context, const UInsertCallerOneIdentityReducer* Args) { - if (!OnInsertVecConnectionId.IsBound()) + if (!OnInsertCallerOneIdentity.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerOneIdentity")); } return false; } - OnInsertVecConnectionId.Broadcast(Context, Args->A); + OnInsertCallerOneIdentity.Broadcast(Context); return true; } -bool URemoteReducers::InvokeInsertVecConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertVecConnectionIdArgs& Args) +bool URemoteReducers::InvokeInsertCallerOneIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerOneIdentityArgs& Args) { - if (!OnInsertVecConnectionId.IsBound()) + if (!OnInsertCallerOneIdentity.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerOneIdentity")); } return false; } - OnInsertVecConnectionId.Broadcast(Context, Args.A); + OnInsertCallerOneIdentity.Broadcast(Context); return true; } -void URemoteReducers::InsertVecEnumWithPayload(const TArray& E) +void URemoteReducers::InsertCallerPkConnectionId(const int32 Data) { if (!Conn) { @@ -6748,45 +6725,45 @@ void URemoteReducers::InsertVecEnumWithPayload(const TArrayCallReducerTyped(TEXT("insert_vec_enum_with_payload"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecEnumWithPayload(ReducerArgs)); } + FInsertCallerPkConnectionIdArgs ReducerArgs(Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_pk_connection_id"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerPkConnectionId(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecEnumWithPayload(const FReducerEventContext& Context, const UInsertVecEnumWithPayloadReducer* Args) +bool URemoteReducers::InvokeInsertCallerPkConnectionId(const FReducerEventContext& Context, const UInsertCallerPkConnectionIdReducer* Args) { - if (!OnInsertVecEnumWithPayload.IsBound()) + if (!OnInsertCallerPkConnectionId.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecEnumWithPayload")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerPkConnectionId")); } return false; } - OnInsertVecEnumWithPayload.Broadcast(Context, Args->E); + OnInsertCallerPkConnectionId.Broadcast(Context, Args->Data); return true; } -bool URemoteReducers::InvokeInsertVecEnumWithPayloadWithArgs(const FReducerEventContext& Context, const FInsertVecEnumWithPayloadArgs& Args) +bool URemoteReducers::InvokeInsertCallerPkConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerPkConnectionIdArgs& Args) { - if (!OnInsertVecEnumWithPayload.IsBound()) + if (!OnInsertCallerPkConnectionId.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecEnumWithPayload")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerPkConnectionId")); } return false; } - OnInsertVecEnumWithPayload.Broadcast(Context, Args.E); + OnInsertCallerPkConnectionId.Broadcast(Context, Args.Data); return true; } -void URemoteReducers::InsertVecEveryPrimitiveStruct(const TArray& S) +void URemoteReducers::InsertCallerPkIdentity(const int32 Data) { if (!Conn) { @@ -6794,45 +6771,45 @@ void URemoteReducers::InsertVecEveryPrimitiveStruct(const TArrayCallReducerTyped(TEXT("insert_vec_every_primitive_struct"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecEveryPrimitiveStruct(ReducerArgs)); } + FInsertCallerPkIdentityArgs ReducerArgs(Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_pk_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerPkIdentity(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecEveryPrimitiveStruct(const FReducerEventContext& Context, const UInsertVecEveryPrimitiveStructReducer* Args) +bool URemoteReducers::InvokeInsertCallerPkIdentity(const FReducerEventContext& Context, const UInsertCallerPkIdentityReducer* Args) { - if (!OnInsertVecEveryPrimitiveStruct.IsBound()) + if (!OnInsertCallerPkIdentity.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecEveryPrimitiveStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerPkIdentity")); } return false; } - OnInsertVecEveryPrimitiveStruct.Broadcast(Context, Args->S); + OnInsertCallerPkIdentity.Broadcast(Context, Args->Data); return true; } -bool URemoteReducers::InvokeInsertVecEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FInsertVecEveryPrimitiveStructArgs& Args) +bool URemoteReducers::InvokeInsertCallerPkIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerPkIdentityArgs& Args) { - if (!OnInsertVecEveryPrimitiveStruct.IsBound()) + if (!OnInsertCallerPkIdentity.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecEveryPrimitiveStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerPkIdentity")); } return false; } - OnInsertVecEveryPrimitiveStruct.Broadcast(Context, Args.S); + OnInsertCallerPkIdentity.Broadcast(Context, Args.Data); return true; } -void URemoteReducers::InsertVecEveryVecStruct(const TArray& S) +void URemoteReducers::InsertCallerUniqueConnectionId(const int32 Data) { if (!Conn) { @@ -6840,45 +6817,45 @@ void URemoteReducers::InsertVecEveryVecStruct(const TArray& return; } - FInsertVecEveryVecStructArgs ReducerArgs(S); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_every_vec_struct"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecEveryVecStruct(ReducerArgs)); } + FInsertCallerUniqueConnectionIdArgs ReducerArgs(Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_unique_connection_id"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerUniqueConnectionId(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecEveryVecStruct(const FReducerEventContext& Context, const UInsertVecEveryVecStructReducer* Args) +bool URemoteReducers::InvokeInsertCallerUniqueConnectionId(const FReducerEventContext& Context, const UInsertCallerUniqueConnectionIdReducer* Args) { - if (!OnInsertVecEveryVecStruct.IsBound()) + if (!OnInsertCallerUniqueConnectionId.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecEveryVecStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerUniqueConnectionId")); } return false; } - OnInsertVecEveryVecStruct.Broadcast(Context, Args->S); + OnInsertCallerUniqueConnectionId.Broadcast(Context, Args->Data); return true; } -bool URemoteReducers::InvokeInsertVecEveryVecStructWithArgs(const FReducerEventContext& Context, const FInsertVecEveryVecStructArgs& Args) +bool URemoteReducers::InvokeInsertCallerUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerUniqueConnectionIdArgs& Args) { - if (!OnInsertVecEveryVecStruct.IsBound()) + if (!OnInsertCallerUniqueConnectionId.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecEveryVecStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerUniqueConnectionId")); } return false; } - OnInsertVecEveryVecStruct.Broadcast(Context, Args.S); + OnInsertCallerUniqueConnectionId.Broadcast(Context, Args.Data); return true; } -void URemoteReducers::InsertVecF32(const TArray& F) +void URemoteReducers::InsertCallerUniqueIdentity(const int32 Data) { if (!Conn) { @@ -6886,45 +6863,45 @@ void URemoteReducers::InsertVecF32(const TArray& F) return; } - FInsertVecF32Args ReducerArgs(F); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_f_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecF32(ReducerArgs)); } + FInsertCallerUniqueIdentityArgs ReducerArgs(Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_unique_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerUniqueIdentity(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecF32(const FReducerEventContext& Context, const UInsertVecF32Reducer* Args) +bool URemoteReducers::InvokeInsertCallerUniqueIdentity(const FReducerEventContext& Context, const UInsertCallerUniqueIdentityReducer* Args) { - if (!OnInsertVecF32.IsBound()) + if (!OnInsertCallerUniqueIdentity.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecF32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerUniqueIdentity")); } return false; } - OnInsertVecF32.Broadcast(Context, Args->F); + OnInsertCallerUniqueIdentity.Broadcast(Context, Args->Data); return true; } -bool URemoteReducers::InvokeInsertVecF32WithArgs(const FReducerEventContext& Context, const FInsertVecF32Args& Args) +bool URemoteReducers::InvokeInsertCallerUniqueIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerUniqueIdentityArgs& Args) { - if (!OnInsertVecF32.IsBound()) + if (!OnInsertCallerUniqueIdentity.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecF32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerUniqueIdentity")); } return false; } - OnInsertVecF32.Broadcast(Context, Args.F); + OnInsertCallerUniqueIdentity.Broadcast(Context, Args.Data); return true; } -void URemoteReducers::InsertVecF64(const TArray& F) +void URemoteReducers::InsertCallerVecConnectionId() { if (!Conn) { @@ -6932,45 +6909,45 @@ void URemoteReducers::InsertVecF64(const TArray& F) return; } - FInsertVecF64Args ReducerArgs(F); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_f_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecF64(ReducerArgs)); } + FInsertCallerVecConnectionIdArgs ReducerArgs; + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_vec_connection_id"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerVecConnectionId(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecF64(const FReducerEventContext& Context, const UInsertVecF64Reducer* Args) +bool URemoteReducers::InvokeInsertCallerVecConnectionId(const FReducerEventContext& Context, const UInsertCallerVecConnectionIdReducer* Args) { - if (!OnInsertVecF64.IsBound()) + if (!OnInsertCallerVecConnectionId.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecF64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerVecConnectionId")); } return false; } - OnInsertVecF64.Broadcast(Context, Args->F); + OnInsertCallerVecConnectionId.Broadcast(Context); return true; } -bool URemoteReducers::InvokeInsertVecF64WithArgs(const FReducerEventContext& Context, const FInsertVecF64Args& Args) +bool URemoteReducers::InvokeInsertCallerVecConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerVecConnectionIdArgs& Args) { - if (!OnInsertVecF64.IsBound()) + if (!OnInsertCallerVecConnectionId.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecF64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerVecConnectionId")); } return false; } - OnInsertVecF64.Broadcast(Context, Args.F); + OnInsertCallerVecConnectionId.Broadcast(Context); return true; } -void URemoteReducers::InsertVecI128(const TArray& N) +void URemoteReducers::InsertCallerVecIdentity() { if (!Conn) { @@ -6978,45 +6955,45 @@ void URemoteReducers::InsertVecI128(const TArray& N) return; } - FInsertVecI128Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_i_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecI128(ReducerArgs)); } + FInsertCallerVecIdentityArgs ReducerArgs; + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_caller_vec_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertCallerVecIdentity(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecI128(const FReducerEventContext& Context, const UInsertVecI128Reducer* Args) +bool URemoteReducers::InvokeInsertCallerVecIdentity(const FReducerEventContext& Context, const UInsertCallerVecIdentityReducer* Args) { - if (!OnInsertVecI128.IsBound()) + if (!OnInsertCallerVecIdentity.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerVecIdentity")); } return false; } - OnInsertVecI128.Broadcast(Context, Args->N); + OnInsertCallerVecIdentity.Broadcast(Context); return true; } -bool URemoteReducers::InvokeInsertVecI128WithArgs(const FReducerEventContext& Context, const FInsertVecI128Args& Args) +bool URemoteReducers::InvokeInsertCallerVecIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerVecIdentityArgs& Args) { - if (!OnInsertVecI128.IsBound()) + if (!OnInsertCallerVecIdentity.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertCallerVecIdentity")); } return false; } - OnInsertVecI128.Broadcast(Context, Args.N); + OnInsertCallerVecIdentity.Broadcast(Context); return true; } -void URemoteReducers::InsertVecI16(const TArray& N) +void URemoteReducers::InsertIntoBtreeU32(const TArray& Rows) { if (!Conn) { @@ -7024,45 +7001,45 @@ void URemoteReducers::InsertVecI16(const TArray& N) return; } - FInsertVecI16Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_i_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecI16(ReducerArgs)); } + FInsertIntoBtreeU32Args ReducerArgs(Rows); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_into_btree_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertIntoBtreeU32(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecI16(const FReducerEventContext& Context, const UInsertVecI16Reducer* Args) +bool URemoteReducers::InvokeInsertIntoBtreeU32(const FReducerEventContext& Context, const UInsertIntoBtreeU32Reducer* Args) { - if (!OnInsertVecI16.IsBound()) + if (!OnInsertIntoBtreeU32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertIntoBtreeU32")); } return false; } - OnInsertVecI16.Broadcast(Context, Args->N); + OnInsertIntoBtreeU32.Broadcast(Context, Args->Rows); return true; } -bool URemoteReducers::InvokeInsertVecI16WithArgs(const FReducerEventContext& Context, const FInsertVecI16Args& Args) +bool URemoteReducers::InvokeInsertIntoBtreeU32WithArgs(const FReducerEventContext& Context, const FInsertIntoBtreeU32Args& Args) { - if (!OnInsertVecI16.IsBound()) + if (!OnInsertIntoBtreeU32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertIntoBtreeU32")); } return false; } - OnInsertVecI16.Broadcast(Context, Args.N); + OnInsertIntoBtreeU32.Broadcast(Context, Args.Rows); return true; } -void URemoteReducers::InsertVecI256(const TArray& N) +void URemoteReducers::InsertIntoIndexedSimpleEnum(const ESimpleEnumType& N) { if (!Conn) { @@ -7070,45 +7047,45 @@ void URemoteReducers::InsertVecI256(const TArray& N) return; } - FInsertVecI256Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_i_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecI256(ReducerArgs)); } + FInsertIntoIndexedSimpleEnumArgs ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_into_indexed_simple_enum"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertIntoIndexedSimpleEnum(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecI256(const FReducerEventContext& Context, const UInsertVecI256Reducer* Args) +bool URemoteReducers::InvokeInsertIntoIndexedSimpleEnum(const FReducerEventContext& Context, const UInsertIntoIndexedSimpleEnumReducer* Args) { - if (!OnInsertVecI256.IsBound()) + if (!OnInsertIntoIndexedSimpleEnum.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertIntoIndexedSimpleEnum")); } return false; } - OnInsertVecI256.Broadcast(Context, Args->N); + OnInsertIntoIndexedSimpleEnum.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertVecI256WithArgs(const FReducerEventContext& Context, const FInsertVecI256Args& Args) +bool URemoteReducers::InvokeInsertIntoIndexedSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertIntoIndexedSimpleEnumArgs& Args) { - if (!OnInsertVecI256.IsBound()) + if (!OnInsertIntoIndexedSimpleEnum.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertIntoIndexedSimpleEnum")); } return false; } - OnInsertVecI256.Broadcast(Context, Args.N); + OnInsertIntoIndexedSimpleEnum.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertVecI32(const TArray& N) +void URemoteReducers::InsertIntoPkBtreeU32(const TArray& PkU32, const TArray& BtU32) { if (!Conn) { @@ -7116,45 +7093,45 @@ void URemoteReducers::InsertVecI32(const TArray& N) return; } - FInsertVecI32Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_i_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecI32(ReducerArgs)); } + FInsertIntoPkBtreeU32Args ReducerArgs(PkU32, BtU32); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_into_pk_btree_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertIntoPkBtreeU32(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecI32(const FReducerEventContext& Context, const UInsertVecI32Reducer* Args) +bool URemoteReducers::InvokeInsertIntoPkBtreeU32(const FReducerEventContext& Context, const UInsertIntoPkBtreeU32Reducer* Args) { - if (!OnInsertVecI32.IsBound()) + if (!OnInsertIntoPkBtreeU32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertIntoPkBtreeU32")); } return false; } - OnInsertVecI32.Broadcast(Context, Args->N); + OnInsertIntoPkBtreeU32.Broadcast(Context, Args->PkU32, Args->BtU32); return true; } -bool URemoteReducers::InvokeInsertVecI32WithArgs(const FReducerEventContext& Context, const FInsertVecI32Args& Args) +bool URemoteReducers::InvokeInsertIntoPkBtreeU32WithArgs(const FReducerEventContext& Context, const FInsertIntoPkBtreeU32Args& Args) { - if (!OnInsertVecI32.IsBound()) + if (!OnInsertIntoPkBtreeU32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertIntoPkBtreeU32")); } return false; } - OnInsertVecI32.Broadcast(Context, Args.N); + OnInsertIntoPkBtreeU32.Broadcast(Context, Args.PkU32, Args.BtU32); return true; } -void URemoteReducers::InsertVecI64(const TArray& N) +void URemoteReducers::InsertLargeTable(const uint8 A, const uint16 B, const uint32 C, const uint64 D, const FSpacetimeDBUInt128& E, const FSpacetimeDBUInt256& F, const int8 G, const int16 H, const int32 I, const int64 J, const FSpacetimeDBInt128& K, const FSpacetimeDBInt256& L, const bool M, const float N, const double O, const FString& P, const ESimpleEnumType& Q, const FEnumWithPayloadType& R, const FUnitStructType& S, const FByteStructType& T, const FEveryPrimitiveStructType& U, const FEveryVecStructType& V) { if (!Conn) { @@ -7162,45 +7139,68 @@ void URemoteReducers::InsertVecI64(const TArray& N) return; } - FInsertVecI64Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_i_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecI64(ReducerArgs)); } + FInsertLargeTableArgs ReducerArgs(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_large_table"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertLargeTable(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecI64(const FReducerEventContext& Context, const UInsertVecI64Reducer* Args) +bool URemoteReducers::InvokeInsertLargeTable(const FReducerEventContext& Context, const UInsertLargeTableReducer* Args) { - if (!OnInsertVecI64.IsBound()) + if (!OnInsertLargeTable.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertLargeTable")); } return false; } - OnInsertVecI64.Broadcast(Context, Args->N); + FInsertLargeTableArgs ArgsStruct; + ArgsStruct.A = Args->A; + ArgsStruct.B = Args->B; + ArgsStruct.C = Args->C; + ArgsStruct.D = Args->D; + ArgsStruct.E = Args->E; + ArgsStruct.F = Args->F; + ArgsStruct.G = Args->G; + ArgsStruct.H = Args->H; + ArgsStruct.I = Args->I; + ArgsStruct.J = Args->J; + ArgsStruct.K = Args->K; + ArgsStruct.L = Args->L; + ArgsStruct.M = Args->M; + ArgsStruct.N = Args->N; + ArgsStruct.O = Args->O; + ArgsStruct.P = Args->P; + ArgsStruct.Q = Args->Q; + ArgsStruct.R = Args->R; + ArgsStruct.S = Args->S; + ArgsStruct.T = Args->T; + ArgsStruct.U = Args->U; + ArgsStruct.V = Args->V; + OnInsertLargeTable.Broadcast(Context, ArgsStruct); return true; } -bool URemoteReducers::InvokeInsertVecI64WithArgs(const FReducerEventContext& Context, const FInsertVecI64Args& Args) +bool URemoteReducers::InvokeInsertLargeTableWithArgs(const FReducerEventContext& Context, const FInsertLargeTableArgs& Args) { - if (!OnInsertVecI64.IsBound()) + if (!OnInsertLargeTable.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertLargeTable")); } return false; } - OnInsertVecI64.Broadcast(Context, Args.N); + OnInsertLargeTable.Broadcast(Context, Args); return true; } -void URemoteReducers::InsertVecI8(const TArray& N) +void URemoteReducers::InsertOneBool(const bool B) { if (!Conn) { @@ -7208,45 +7208,45 @@ void URemoteReducers::InsertVecI8(const TArray& N) return; } - FInsertVecI8Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_i_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecI8(ReducerArgs)); } + FInsertOneBoolArgs ReducerArgs(B); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_bool"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneBool(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecI8(const FReducerEventContext& Context, const UInsertVecI8Reducer* Args) +bool URemoteReducers::InvokeInsertOneBool(const FReducerEventContext& Context, const UInsertOneBoolReducer* Args) { - if (!OnInsertVecI8.IsBound()) + if (!OnInsertOneBool.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneBool")); } return false; } - OnInsertVecI8.Broadcast(Context, Args->N); + OnInsertOneBool.Broadcast(Context, Args->B); return true; } -bool URemoteReducers::InvokeInsertVecI8WithArgs(const FReducerEventContext& Context, const FInsertVecI8Args& Args) +bool URemoteReducers::InvokeInsertOneBoolWithArgs(const FReducerEventContext& Context, const FInsertOneBoolArgs& Args) { - if (!OnInsertVecI8.IsBound()) + if (!OnInsertOneBool.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneBool")); } return false; } - OnInsertVecI8.Broadcast(Context, Args.N); + OnInsertOneBool.Broadcast(Context, Args.B); return true; } -void URemoteReducers::InsertVecIdentity(const TArray& I) +void URemoteReducers::InsertOneByteStruct(const FByteStructType& S) { if (!Conn) { @@ -7254,45 +7254,45 @@ void URemoteReducers::InsertVecIdentity(const TArray& I) return; } - FInsertVecIdentityArgs ReducerArgs(I); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_identity"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecIdentity(ReducerArgs)); } + FInsertOneByteStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_byte_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneByteStruct(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecIdentity(const FReducerEventContext& Context, const UInsertVecIdentityReducer* Args) +bool URemoteReducers::InvokeInsertOneByteStruct(const FReducerEventContext& Context, const UInsertOneByteStructReducer* Args) { - if (!OnInsertVecIdentity.IsBound()) + if (!OnInsertOneByteStruct.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneByteStruct")); } return false; } - OnInsertVecIdentity.Broadcast(Context, Args->I); + OnInsertOneByteStruct.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeInsertVecIdentityWithArgs(const FReducerEventContext& Context, const FInsertVecIdentityArgs& Args) +bool URemoteReducers::InvokeInsertOneByteStructWithArgs(const FReducerEventContext& Context, const FInsertOneByteStructArgs& Args) { - if (!OnInsertVecIdentity.IsBound()) + if (!OnInsertOneByteStruct.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneByteStruct")); } return false; } - OnInsertVecIdentity.Broadcast(Context, Args.I); + OnInsertOneByteStruct.Broadcast(Context, Args.S); return true; } -void URemoteReducers::InsertVecSimpleEnum(const TArray& E) +void URemoteReducers::InsertOneConnectionId(const FSpacetimeDBConnectionId& A) { if (!Conn) { @@ -7300,45 +7300,45 @@ void URemoteReducers::InsertVecSimpleEnum(const TArray& E) return; } - FInsertVecSimpleEnumArgs ReducerArgs(E); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_simple_enum"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecSimpleEnum(ReducerArgs)); } + FInsertOneConnectionIdArgs ReducerArgs(A); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_connection_id"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneConnectionId(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecSimpleEnum(const FReducerEventContext& Context, const UInsertVecSimpleEnumReducer* Args) +bool URemoteReducers::InvokeInsertOneConnectionId(const FReducerEventContext& Context, const UInsertOneConnectionIdReducer* Args) { - if (!OnInsertVecSimpleEnum.IsBound()) + if (!OnInsertOneConnectionId.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecSimpleEnum")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneConnectionId")); } return false; } - OnInsertVecSimpleEnum.Broadcast(Context, Args->E); + OnInsertOneConnectionId.Broadcast(Context, Args->A); return true; } -bool URemoteReducers::InvokeInsertVecSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertVecSimpleEnumArgs& Args) +bool URemoteReducers::InvokeInsertOneConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertOneConnectionIdArgs& Args) { - if (!OnInsertVecSimpleEnum.IsBound()) + if (!OnInsertOneConnectionId.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecSimpleEnum")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneConnectionId")); } return false; } - OnInsertVecSimpleEnum.Broadcast(Context, Args.E); + OnInsertOneConnectionId.Broadcast(Context, Args.A); return true; } -void URemoteReducers::InsertVecString(const TArray& S) +void URemoteReducers::InsertOneEnumWithPayload(const FEnumWithPayloadType& E) { if (!Conn) { @@ -7346,45 +7346,45 @@ void URemoteReducers::InsertVecString(const TArray& S) return; } - FInsertVecStringArgs ReducerArgs(S); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_string"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecString(ReducerArgs)); } + FInsertOneEnumWithPayloadArgs ReducerArgs(E); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_enum_with_payload"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneEnumWithPayload(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecString(const FReducerEventContext& Context, const UInsertVecStringReducer* Args) +bool URemoteReducers::InvokeInsertOneEnumWithPayload(const FReducerEventContext& Context, const UInsertOneEnumWithPayloadReducer* Args) { - if (!OnInsertVecString.IsBound()) + if (!OnInsertOneEnumWithPayload.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneEnumWithPayload")); } return false; } - OnInsertVecString.Broadcast(Context, Args->S); + OnInsertOneEnumWithPayload.Broadcast(Context, Args->E); return true; } -bool URemoteReducers::InvokeInsertVecStringWithArgs(const FReducerEventContext& Context, const FInsertVecStringArgs& Args) +bool URemoteReducers::InvokeInsertOneEnumWithPayloadWithArgs(const FReducerEventContext& Context, const FInsertOneEnumWithPayloadArgs& Args) { - if (!OnInsertVecString.IsBound()) + if (!OnInsertOneEnumWithPayload.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneEnumWithPayload")); } return false; } - OnInsertVecString.Broadcast(Context, Args.S); + OnInsertOneEnumWithPayload.Broadcast(Context, Args.E); return true; } -void URemoteReducers::InsertVecTimestamp(const TArray& T) +void URemoteReducers::InsertOneEveryPrimitiveStruct(const FEveryPrimitiveStructType& S) { if (!Conn) { @@ -7392,45 +7392,45 @@ void URemoteReducers::InsertVecTimestamp(const TArray& T) return; } - FInsertVecTimestampArgs ReducerArgs(T); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_timestamp"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecTimestamp(ReducerArgs)); } + FInsertOneEveryPrimitiveStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_every_primitive_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneEveryPrimitiveStruct(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecTimestamp(const FReducerEventContext& Context, const UInsertVecTimestampReducer* Args) +bool URemoteReducers::InvokeInsertOneEveryPrimitiveStruct(const FReducerEventContext& Context, const UInsertOneEveryPrimitiveStructReducer* Args) { - if (!OnInsertVecTimestamp.IsBound()) + if (!OnInsertOneEveryPrimitiveStruct.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecTimestamp")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneEveryPrimitiveStruct")); } return false; } - OnInsertVecTimestamp.Broadcast(Context, Args->T); + OnInsertOneEveryPrimitiveStruct.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeInsertVecTimestampWithArgs(const FReducerEventContext& Context, const FInsertVecTimestampArgs& Args) +bool URemoteReducers::InvokeInsertOneEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FInsertOneEveryPrimitiveStructArgs& Args) { - if (!OnInsertVecTimestamp.IsBound()) + if (!OnInsertOneEveryPrimitiveStruct.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecTimestamp")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneEveryPrimitiveStruct")); } return false; } - OnInsertVecTimestamp.Broadcast(Context, Args.T); + OnInsertOneEveryPrimitiveStruct.Broadcast(Context, Args.S); return true; } -void URemoteReducers::InsertVecU128(const TArray& N) +void URemoteReducers::InsertOneEveryVecStruct(const FEveryVecStructType& S) { if (!Conn) { @@ -7438,45 +7438,45 @@ void URemoteReducers::InsertVecU128(const TArray& N) return; } - FInsertVecU128Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_u_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecU128(ReducerArgs)); } + FInsertOneEveryVecStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_every_vec_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneEveryVecStruct(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecU128(const FReducerEventContext& Context, const UInsertVecU128Reducer* Args) +bool URemoteReducers::InvokeInsertOneEveryVecStruct(const FReducerEventContext& Context, const UInsertOneEveryVecStructReducer* Args) { - if (!OnInsertVecU128.IsBound()) + if (!OnInsertOneEveryVecStruct.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneEveryVecStruct")); } return false; } - OnInsertVecU128.Broadcast(Context, Args->N); + OnInsertOneEveryVecStruct.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeInsertVecU128WithArgs(const FReducerEventContext& Context, const FInsertVecU128Args& Args) +bool URemoteReducers::InvokeInsertOneEveryVecStructWithArgs(const FReducerEventContext& Context, const FInsertOneEveryVecStructArgs& Args) { - if (!OnInsertVecU128.IsBound()) + if (!OnInsertOneEveryVecStruct.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneEveryVecStruct")); } return false; } - OnInsertVecU128.Broadcast(Context, Args.N); + OnInsertOneEveryVecStruct.Broadcast(Context, Args.S); return true; } -void URemoteReducers::InsertVecU16(const TArray& N) +void URemoteReducers::InsertOneF32(const float F) { if (!Conn) { @@ -7484,45 +7484,45 @@ void URemoteReducers::InsertVecU16(const TArray& N) return; } - FInsertVecU16Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_u_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecU16(ReducerArgs)); } + FInsertOneF32Args ReducerArgs(F); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_f_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneF32(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecU16(const FReducerEventContext& Context, const UInsertVecU16Reducer* Args) +bool URemoteReducers::InvokeInsertOneF32(const FReducerEventContext& Context, const UInsertOneF32Reducer* Args) { - if (!OnInsertVecU16.IsBound()) + if (!OnInsertOneF32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneF32")); } return false; } - OnInsertVecU16.Broadcast(Context, Args->N); + OnInsertOneF32.Broadcast(Context, Args->F); return true; } -bool URemoteReducers::InvokeInsertVecU16WithArgs(const FReducerEventContext& Context, const FInsertVecU16Args& Args) +bool URemoteReducers::InvokeInsertOneF32WithArgs(const FReducerEventContext& Context, const FInsertOneF32Args& Args) { - if (!OnInsertVecU16.IsBound()) + if (!OnInsertOneF32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneF32")); } return false; } - OnInsertVecU16.Broadcast(Context, Args.N); + OnInsertOneF32.Broadcast(Context, Args.F); return true; } -void URemoteReducers::InsertVecU256(const TArray& N) +void URemoteReducers::InsertOneF64(const double F) { if (!Conn) { @@ -7530,45 +7530,45 @@ void URemoteReducers::InsertVecU256(const TArray& N) return; } - FInsertVecU256Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_u_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecU256(ReducerArgs)); } + FInsertOneF64Args ReducerArgs(F); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_f_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneF64(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecU256(const FReducerEventContext& Context, const UInsertVecU256Reducer* Args) +bool URemoteReducers::InvokeInsertOneF64(const FReducerEventContext& Context, const UInsertOneF64Reducer* Args) { - if (!OnInsertVecU256.IsBound()) + if (!OnInsertOneF64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneF64")); } return false; } - OnInsertVecU256.Broadcast(Context, Args->N); + OnInsertOneF64.Broadcast(Context, Args->F); return true; } -bool URemoteReducers::InvokeInsertVecU256WithArgs(const FReducerEventContext& Context, const FInsertVecU256Args& Args) +bool URemoteReducers::InvokeInsertOneF64WithArgs(const FReducerEventContext& Context, const FInsertOneF64Args& Args) { - if (!OnInsertVecU256.IsBound()) + if (!OnInsertOneF64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneF64")); } return false; } - OnInsertVecU256.Broadcast(Context, Args.N); + OnInsertOneF64.Broadcast(Context, Args.F); return true; } -void URemoteReducers::InsertVecU32(const TArray& N) +void URemoteReducers::InsertOneI128(const FSpacetimeDBInt128& N) { if (!Conn) { @@ -7576,45 +7576,45 @@ void URemoteReducers::InsertVecU32(const TArray& N) return; } - FInsertVecU32Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_u_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecU32(ReducerArgs)); } + FInsertOneI128Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_i_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneI128(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecU32(const FReducerEventContext& Context, const UInsertVecU32Reducer* Args) +bool URemoteReducers::InvokeInsertOneI128(const FReducerEventContext& Context, const UInsertOneI128Reducer* Args) { - if (!OnInsertVecU32.IsBound()) + if (!OnInsertOneI128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI128")); } return false; } - OnInsertVecU32.Broadcast(Context, Args->N); + OnInsertOneI128.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertVecU32WithArgs(const FReducerEventContext& Context, const FInsertVecU32Args& Args) +bool URemoteReducers::InvokeInsertOneI128WithArgs(const FReducerEventContext& Context, const FInsertOneI128Args& Args) { - if (!OnInsertVecU32.IsBound()) + if (!OnInsertOneI128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI128")); } return false; } - OnInsertVecU32.Broadcast(Context, Args.N); + OnInsertOneI128.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertVecU64(const TArray& N) +void URemoteReducers::InsertOneI16(const int16 N) { if (!Conn) { @@ -7622,45 +7622,45 @@ void URemoteReducers::InsertVecU64(const TArray& N) return; } - FInsertVecU64Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_u_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecU64(ReducerArgs)); } + FInsertOneI16Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_i_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneI16(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecU64(const FReducerEventContext& Context, const UInsertVecU64Reducer* Args) +bool URemoteReducers::InvokeInsertOneI16(const FReducerEventContext& Context, const UInsertOneI16Reducer* Args) { - if (!OnInsertVecU64.IsBound()) + if (!OnInsertOneI16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI16")); } return false; } - OnInsertVecU64.Broadcast(Context, Args->N); + OnInsertOneI16.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertVecU64WithArgs(const FReducerEventContext& Context, const FInsertVecU64Args& Args) +bool URemoteReducers::InvokeInsertOneI16WithArgs(const FReducerEventContext& Context, const FInsertOneI16Args& Args) { - if (!OnInsertVecU64.IsBound()) + if (!OnInsertOneI16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI16")); } return false; } - OnInsertVecU64.Broadcast(Context, Args.N); + OnInsertOneI16.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertVecU8(const TArray& N) +void URemoteReducers::InsertOneI256(const FSpacetimeDBInt256& N) { if (!Conn) { @@ -7668,45 +7668,45 @@ void URemoteReducers::InsertVecU8(const TArray& N) return; } - FInsertVecU8Args ReducerArgs(N); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_u_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecU8(ReducerArgs)); } + FInsertOneI256Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_i_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneI256(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecU8(const FReducerEventContext& Context, const UInsertVecU8Reducer* Args) +bool URemoteReducers::InvokeInsertOneI256(const FReducerEventContext& Context, const UInsertOneI256Reducer* Args) { - if (!OnInsertVecU8.IsBound()) + if (!OnInsertOneI256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI256")); } return false; } - OnInsertVecU8.Broadcast(Context, Args->N); + OnInsertOneI256.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertVecU8WithArgs(const FReducerEventContext& Context, const FInsertVecU8Args& Args) +bool URemoteReducers::InvokeInsertOneI256WithArgs(const FReducerEventContext& Context, const FInsertOneI256Args& Args) { - if (!OnInsertVecU8.IsBound()) + if (!OnInsertOneI256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI256")); } return false; } - OnInsertVecU8.Broadcast(Context, Args.N); + OnInsertOneI256.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertVecUnitStruct(const TArray& S) +void URemoteReducers::InsertOneI32(const int32 N) { if (!Conn) { @@ -7714,45 +7714,45 @@ void URemoteReducers::InsertVecUnitStruct(const TArray& S) return; } - FInsertVecUnitStructArgs ReducerArgs(S); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_unit_struct"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecUnitStruct(ReducerArgs)); } + FInsertOneI32Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneI32(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecUnitStruct(const FReducerEventContext& Context, const UInsertVecUnitStructReducer* Args) +bool URemoteReducers::InvokeInsertOneI32(const FReducerEventContext& Context, const UInsertOneI32Reducer* Args) { - if (!OnInsertVecUnitStruct.IsBound()) + if (!OnInsertOneI32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecUnitStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI32")); } return false; } - OnInsertVecUnitStruct.Broadcast(Context, Args->S); + OnInsertOneI32.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertVecUnitStructWithArgs(const FReducerEventContext& Context, const FInsertVecUnitStructArgs& Args) +bool URemoteReducers::InvokeInsertOneI32WithArgs(const FReducerEventContext& Context, const FInsertOneI32Args& Args) { - if (!OnInsertVecUnitStruct.IsBound()) + if (!OnInsertOneI32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecUnitStruct")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI32")); } return false; } - OnInsertVecUnitStruct.Broadcast(Context, Args.S); + OnInsertOneI32.Broadcast(Context, Args.N); return true; } -void URemoteReducers::InsertVecUuid(const TArray& U) +void URemoteReducers::InsertOneI64(const int64 N) { if (!Conn) { @@ -7760,45 +7760,45 @@ void URemoteReducers::InsertVecUuid(const TArray& U) return; } - FInsertVecUuidArgs ReducerArgs(U); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_uuid"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecUuid(ReducerArgs)); } + FInsertOneI64Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_i_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneI64(ReducerArgs)); } } -bool URemoteReducers::InvokeInsertVecUuid(const FReducerEventContext& Context, const UInsertVecUuidReducer* Args) +bool URemoteReducers::InvokeInsertOneI64(const FReducerEventContext& Context, const UInsertOneI64Reducer* Args) { - if (!OnInsertVecUuid.IsBound()) + if (!OnInsertOneI64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI64")); } return false; } - OnInsertVecUuid.Broadcast(Context, Args->U); + OnInsertOneI64.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeInsertVecUuidWithArgs(const FReducerEventContext& Context, const FInsertVecUuidArgs& Args) +bool URemoteReducers::InvokeInsertOneI64WithArgs(const FReducerEventContext& Context, const FInsertOneI64Args& Args) { - if (!OnInsertVecUuid.IsBound()) + if (!OnInsertOneI64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI64")); } return false; } - OnInsertVecUuid.Broadcast(Context, Args.U); + OnInsertOneI64.Broadcast(Context, Args.N); return true; } -void URemoteReducers::NoOpSucceeds() +void URemoteReducers::InsertOneI8(const int8 N) { if (!Conn) { @@ -7806,45 +7806,45 @@ void URemoteReducers::NoOpSucceeds() return; } - FNoOpSucceedsArgs ReducerArgs; - const uint32 RequestId = Conn->CallReducerTyped(TEXT("no_op_succeeds"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::NoOpSucceeds(ReducerArgs)); } + FInsertOneI8Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_i_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneI8(ReducerArgs)); } } -bool URemoteReducers::InvokeNoOpSucceeds(const FReducerEventContext& Context, const UNoOpSucceedsReducer* Args) +bool URemoteReducers::InvokeInsertOneI8(const FReducerEventContext& Context, const UInsertOneI8Reducer* Args) { - if (!OnNoOpSucceeds.IsBound()) + if (!OnInsertOneI8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for NoOpSucceeds")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI8")); } return false; } - OnNoOpSucceeds.Broadcast(Context); + OnInsertOneI8.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeNoOpSucceedsWithArgs(const FReducerEventContext& Context, const FNoOpSucceedsArgs& Args) +bool URemoteReducers::InvokeInsertOneI8WithArgs(const FReducerEventContext& Context, const FInsertOneI8Args& Args) { - if (!OnNoOpSucceeds.IsBound()) + if (!OnInsertOneI8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for NoOpSucceeds")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneI8")); } return false; } - OnNoOpSucceeds.Broadcast(Context); + OnInsertOneI8.Broadcast(Context, Args.N); return true; } -void URemoteReducers::SortedUuidsInsert() +void URemoteReducers::InsertOneIdentity(const FSpacetimeDBIdentity& I) { if (!Conn) { @@ -7852,45 +7852,45 @@ void URemoteReducers::SortedUuidsInsert() return; } - FSortedUuidsInsertArgs ReducerArgs; - const uint32 RequestId = Conn->CallReducerTyped(TEXT("sorted_uuids_insert"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::SortedUuidsInsert(ReducerArgs)); } + FInsertOneIdentityArgs ReducerArgs(I); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneIdentity(ReducerArgs)); } } -bool URemoteReducers::InvokeSortedUuidsInsert(const FReducerEventContext& Context, const USortedUuidsInsertReducer* Args) +bool URemoteReducers::InvokeInsertOneIdentity(const FReducerEventContext& Context, const UInsertOneIdentityReducer* Args) { - if (!OnSortedUuidsInsert.IsBound()) + if (!OnInsertOneIdentity.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for SortedUuidsInsert")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneIdentity")); } return false; } - OnSortedUuidsInsert.Broadcast(Context); + OnInsertOneIdentity.Broadcast(Context, Args->I); return true; } -bool URemoteReducers::InvokeSortedUuidsInsertWithArgs(const FReducerEventContext& Context, const FSortedUuidsInsertArgs& Args) +bool URemoteReducers::InvokeInsertOneIdentityWithArgs(const FReducerEventContext& Context, const FInsertOneIdentityArgs& Args) { - if (!OnSortedUuidsInsert.IsBound()) + if (!OnInsertOneIdentity.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for SortedUuidsInsert")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneIdentity")); } return false; } - OnSortedUuidsInsert.Broadcast(Context); + OnInsertOneIdentity.Broadcast(Context, Args.I); return true; } -void URemoteReducers::UpdateIndexedSimpleEnum(const ESimpleEnumType& A, const ESimpleEnumType& B) +void URemoteReducers::InsertOneSimpleEnum(const ESimpleEnumType& E) { if (!Conn) { @@ -7898,45 +7898,45 @@ void URemoteReducers::UpdateIndexedSimpleEnum(const ESimpleEnumType& A, const ES return; } - FUpdateIndexedSimpleEnumArgs ReducerArgs(A, B); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_indexed_simple_enum"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateIndexedSimpleEnum(ReducerArgs)); } + FInsertOneSimpleEnumArgs ReducerArgs(E); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_simple_enum"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneSimpleEnum(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateIndexedSimpleEnum(const FReducerEventContext& Context, const UUpdateIndexedSimpleEnumReducer* Args) +bool URemoteReducers::InvokeInsertOneSimpleEnum(const FReducerEventContext& Context, const UInsertOneSimpleEnumReducer* Args) { - if (!OnUpdateIndexedSimpleEnum.IsBound()) + if (!OnInsertOneSimpleEnum.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateIndexedSimpleEnum")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneSimpleEnum")); } return false; } - OnUpdateIndexedSimpleEnum.Broadcast(Context, Args->A, Args->B); + OnInsertOneSimpleEnum.Broadcast(Context, Args->E); return true; } -bool URemoteReducers::InvokeUpdateIndexedSimpleEnumWithArgs(const FReducerEventContext& Context, const FUpdateIndexedSimpleEnumArgs& Args) +bool URemoteReducers::InvokeInsertOneSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertOneSimpleEnumArgs& Args) { - if (!OnUpdateIndexedSimpleEnum.IsBound()) + if (!OnInsertOneSimpleEnum.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateIndexedSimpleEnum")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneSimpleEnum")); } return false; } - OnUpdateIndexedSimpleEnum.Broadcast(Context, Args.A, Args.B); + OnInsertOneSimpleEnum.Broadcast(Context, Args.E); return true; } -void URemoteReducers::UpdatePkBool(const bool B, const int32 Data) +void URemoteReducers::InsertOneString(const FString& S) { if (!Conn) { @@ -7944,45 +7944,45 @@ void URemoteReducers::UpdatePkBool(const bool B, const int32 Data) return; } - FUpdatePkBoolArgs ReducerArgs(B, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_bool"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkBool(ReducerArgs)); } + FInsertOneStringArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneString(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkBool(const FReducerEventContext& Context, const UUpdatePkBoolReducer* Args) +bool URemoteReducers::InvokeInsertOneString(const FReducerEventContext& Context, const UInsertOneStringReducer* Args) { - if (!OnUpdatePkBool.IsBound()) + if (!OnInsertOneString.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneString")); } return false; } - OnUpdatePkBool.Broadcast(Context, Args->B, Args->Data); + OnInsertOneString.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeUpdatePkBoolWithArgs(const FReducerEventContext& Context, const FUpdatePkBoolArgs& Args) +bool URemoteReducers::InvokeInsertOneStringWithArgs(const FReducerEventContext& Context, const FInsertOneStringArgs& Args) { - if (!OnUpdatePkBool.IsBound()) + if (!OnInsertOneString.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneString")); } return false; } - OnUpdatePkBool.Broadcast(Context, Args.B, Args.Data); + OnInsertOneString.Broadcast(Context, Args.S); return true; } -void URemoteReducers::UpdatePkConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data) +void URemoteReducers::InsertOneTimestamp(const FSpacetimeDBTimestamp& T) { if (!Conn) { @@ -7990,45 +7990,45 @@ void URemoteReducers::UpdatePkConnectionId(const FSpacetimeDBConnectionId& A, co return; } - FUpdatePkConnectionIdArgs ReducerArgs(A, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_connection_id"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkConnectionId(ReducerArgs)); } + FInsertOneTimestampArgs ReducerArgs(T); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_timestamp"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneTimestamp(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkConnectionId(const FReducerEventContext& Context, const UUpdatePkConnectionIdReducer* Args) +bool URemoteReducers::InvokeInsertOneTimestamp(const FReducerEventContext& Context, const UInsertOneTimestampReducer* Args) { - if (!OnUpdatePkConnectionId.IsBound()) + if (!OnInsertOneTimestamp.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneTimestamp")); } return false; } - OnUpdatePkConnectionId.Broadcast(Context, Args->A, Args->Data); + OnInsertOneTimestamp.Broadcast(Context, Args->T); return true; } -bool URemoteReducers::InvokeUpdatePkConnectionIdWithArgs(const FReducerEventContext& Context, const FUpdatePkConnectionIdArgs& Args) +bool URemoteReducers::InvokeInsertOneTimestampWithArgs(const FReducerEventContext& Context, const FInsertOneTimestampArgs& Args) { - if (!OnUpdatePkConnectionId.IsBound()) + if (!OnInsertOneTimestamp.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneTimestamp")); } return false; } - OnUpdatePkConnectionId.Broadcast(Context, Args.A, Args.Data); + OnInsertOneTimestamp.Broadcast(Context, Args.T); return true; } -void URemoteReducers::UpdatePkI128(const FSpacetimeDBInt128& N, const int32 Data) +void URemoteReducers::InsertOneU128(const FSpacetimeDBUInt128& N) { if (!Conn) { @@ -8036,45 +8036,45 @@ void URemoteReducers::UpdatePkI128(const FSpacetimeDBInt128& N, const int32 Data return; } - FUpdatePkI128Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_i_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkI128(ReducerArgs)); } + FInsertOneU128Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_u_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneU128(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkI128(const FReducerEventContext& Context, const UUpdatePkI128Reducer* Args) +bool URemoteReducers::InvokeInsertOneU128(const FReducerEventContext& Context, const UInsertOneU128Reducer* Args) { - if (!OnUpdatePkI128.IsBound()) + if (!OnInsertOneU128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU128")); } return false; } - OnUpdatePkI128.Broadcast(Context, Args->N, Args->Data); + OnInsertOneU128.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeUpdatePkI128WithArgs(const FReducerEventContext& Context, const FUpdatePkI128Args& Args) +bool URemoteReducers::InvokeInsertOneU128WithArgs(const FReducerEventContext& Context, const FInsertOneU128Args& Args) { - if (!OnUpdatePkI128.IsBound()) + if (!OnInsertOneU128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU128")); } return false; } - OnUpdatePkI128.Broadcast(Context, Args.N, Args.Data); + OnInsertOneU128.Broadcast(Context, Args.N); return true; } -void URemoteReducers::UpdatePkI16(const int16 N, const int32 Data) +void URemoteReducers::InsertOneU16(const uint16 N) { if (!Conn) { @@ -8082,45 +8082,45 @@ void URemoteReducers::UpdatePkI16(const int16 N, const int32 Data) return; } - FUpdatePkI16Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_i_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkI16(ReducerArgs)); } + FInsertOneU16Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_u_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneU16(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkI16(const FReducerEventContext& Context, const UUpdatePkI16Reducer* Args) +bool URemoteReducers::InvokeInsertOneU16(const FReducerEventContext& Context, const UInsertOneU16Reducer* Args) { - if (!OnUpdatePkI16.IsBound()) + if (!OnInsertOneU16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU16")); } return false; } - OnUpdatePkI16.Broadcast(Context, Args->N, Args->Data); + OnInsertOneU16.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeUpdatePkI16WithArgs(const FReducerEventContext& Context, const FUpdatePkI16Args& Args) +bool URemoteReducers::InvokeInsertOneU16WithArgs(const FReducerEventContext& Context, const FInsertOneU16Args& Args) { - if (!OnUpdatePkI16.IsBound()) + if (!OnInsertOneU16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU16")); } return false; } - OnUpdatePkI16.Broadcast(Context, Args.N, Args.Data); + OnInsertOneU16.Broadcast(Context, Args.N); return true; } -void URemoteReducers::UpdatePkI256(const FSpacetimeDBInt256& N, const int32 Data) +void URemoteReducers::InsertOneU256(const FSpacetimeDBUInt256& N) { if (!Conn) { @@ -8128,45 +8128,45 @@ void URemoteReducers::UpdatePkI256(const FSpacetimeDBInt256& N, const int32 Data return; } - FUpdatePkI256Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_i_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkI256(ReducerArgs)); } + FInsertOneU256Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_u_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneU256(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkI256(const FReducerEventContext& Context, const UUpdatePkI256Reducer* Args) +bool URemoteReducers::InvokeInsertOneU256(const FReducerEventContext& Context, const UInsertOneU256Reducer* Args) { - if (!OnUpdatePkI256.IsBound()) + if (!OnInsertOneU256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU256")); } return false; } - OnUpdatePkI256.Broadcast(Context, Args->N, Args->Data); + OnInsertOneU256.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeUpdatePkI256WithArgs(const FReducerEventContext& Context, const FUpdatePkI256Args& Args) +bool URemoteReducers::InvokeInsertOneU256WithArgs(const FReducerEventContext& Context, const FInsertOneU256Args& Args) { - if (!OnUpdatePkI256.IsBound()) + if (!OnInsertOneU256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU256")); } return false; } - OnUpdatePkI256.Broadcast(Context, Args.N, Args.Data); + OnInsertOneU256.Broadcast(Context, Args.N); return true; } -void URemoteReducers::UpdatePkI32(const int32 N, const int32 Data) +void URemoteReducers::InsertOneU32(const uint32 N) { if (!Conn) { @@ -8174,45 +8174,45 @@ void URemoteReducers::UpdatePkI32(const int32 N, const int32 Data) return; } - FUpdatePkI32Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_i_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkI32(ReducerArgs)); } + FInsertOneU32Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneU32(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkI32(const FReducerEventContext& Context, const UUpdatePkI32Reducer* Args) +bool URemoteReducers::InvokeInsertOneU32(const FReducerEventContext& Context, const UInsertOneU32Reducer* Args) { - if (!OnUpdatePkI32.IsBound()) + if (!OnInsertOneU32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU32")); } return false; } - OnUpdatePkI32.Broadcast(Context, Args->N, Args->Data); + OnInsertOneU32.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeUpdatePkI32WithArgs(const FReducerEventContext& Context, const FUpdatePkI32Args& Args) +bool URemoteReducers::InvokeInsertOneU32WithArgs(const FReducerEventContext& Context, const FInsertOneU32Args& Args) { - if (!OnUpdatePkI32.IsBound()) + if (!OnInsertOneU32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU32")); } return false; } - OnUpdatePkI32.Broadcast(Context, Args.N, Args.Data); + OnInsertOneU32.Broadcast(Context, Args.N); return true; } -void URemoteReducers::UpdatePkI64(const int64 N, const int32 Data) +void URemoteReducers::InsertOneU64(const uint64 N) { if (!Conn) { @@ -8220,45 +8220,45 @@ void URemoteReducers::UpdatePkI64(const int64 N, const int32 Data) return; } - FUpdatePkI64Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_i_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkI64(ReducerArgs)); } + FInsertOneU64Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_u_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneU64(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkI64(const FReducerEventContext& Context, const UUpdatePkI64Reducer* Args) +bool URemoteReducers::InvokeInsertOneU64(const FReducerEventContext& Context, const UInsertOneU64Reducer* Args) { - if (!OnUpdatePkI64.IsBound()) + if (!OnInsertOneU64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU64")); } return false; } - OnUpdatePkI64.Broadcast(Context, Args->N, Args->Data); + OnInsertOneU64.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeUpdatePkI64WithArgs(const FReducerEventContext& Context, const FUpdatePkI64Args& Args) +bool URemoteReducers::InvokeInsertOneU64WithArgs(const FReducerEventContext& Context, const FInsertOneU64Args& Args) { - if (!OnUpdatePkI64.IsBound()) + if (!OnInsertOneU64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU64")); } return false; } - OnUpdatePkI64.Broadcast(Context, Args.N, Args.Data); + OnInsertOneU64.Broadcast(Context, Args.N); return true; } -void URemoteReducers::UpdatePkI8(const int8 N, const int32 Data) +void URemoteReducers::InsertOneU8(const uint8 N) { if (!Conn) { @@ -8266,45 +8266,45 @@ void URemoteReducers::UpdatePkI8(const int8 N, const int32 Data) return; } - FUpdatePkI8Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_i_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkI8(ReducerArgs)); } + FInsertOneU8Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_u_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneU8(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkI8(const FReducerEventContext& Context, const UUpdatePkI8Reducer* Args) +bool URemoteReducers::InvokeInsertOneU8(const FReducerEventContext& Context, const UInsertOneU8Reducer* Args) { - if (!OnUpdatePkI8.IsBound()) + if (!OnInsertOneU8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU8")); } return false; } - OnUpdatePkI8.Broadcast(Context, Args->N, Args->Data); + OnInsertOneU8.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeUpdatePkI8WithArgs(const FReducerEventContext& Context, const FUpdatePkI8Args& Args) +bool URemoteReducers::InvokeInsertOneU8WithArgs(const FReducerEventContext& Context, const FInsertOneU8Args& Args) { - if (!OnUpdatePkI8.IsBound()) + if (!OnInsertOneU8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneU8")); } return false; } - OnUpdatePkI8.Broadcast(Context, Args.N, Args.Data); + OnInsertOneU8.Broadcast(Context, Args.N); return true; } -void URemoteReducers::UpdatePkIdentity(const FSpacetimeDBIdentity& I, const int32 Data) +void URemoteReducers::InsertOneUnitStruct(const FUnitStructType& S) { if (!Conn) { @@ -8312,45 +8312,45 @@ void URemoteReducers::UpdatePkIdentity(const FSpacetimeDBIdentity& I, const int3 return; } - FUpdatePkIdentityArgs ReducerArgs(I, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_identity"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkIdentity(ReducerArgs)); } + FInsertOneUnitStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_unit_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneUnitStruct(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkIdentity(const FReducerEventContext& Context, const UUpdatePkIdentityReducer* Args) +bool URemoteReducers::InvokeInsertOneUnitStruct(const FReducerEventContext& Context, const UInsertOneUnitStructReducer* Args) { - if (!OnUpdatePkIdentity.IsBound()) + if (!OnInsertOneUnitStruct.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneUnitStruct")); } return false; } - OnUpdatePkIdentity.Broadcast(Context, Args->I, Args->Data); + OnInsertOneUnitStruct.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeUpdatePkIdentityWithArgs(const FReducerEventContext& Context, const FUpdatePkIdentityArgs& Args) +bool URemoteReducers::InvokeInsertOneUnitStructWithArgs(const FReducerEventContext& Context, const FInsertOneUnitStructArgs& Args) { - if (!OnUpdatePkIdentity.IsBound()) + if (!OnInsertOneUnitStruct.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneUnitStruct")); } return false; } - OnUpdatePkIdentity.Broadcast(Context, Args.I, Args.Data); + OnInsertOneUnitStruct.Broadcast(Context, Args.S); return true; } -void URemoteReducers::UpdatePkSimpleEnum(const ESimpleEnumType& A, const int32 Data) +void URemoteReducers::InsertOneUuid(const FSpacetimeDBUuid& U) { if (!Conn) { @@ -8358,45 +8358,45 @@ void URemoteReducers::UpdatePkSimpleEnum(const ESimpleEnumType& A, const int32 D return; } - FUpdatePkSimpleEnumArgs ReducerArgs(A, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_simple_enum"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkSimpleEnum(ReducerArgs)); } + FInsertOneUuidArgs ReducerArgs(U); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_one_uuid"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOneUuid(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkSimpleEnum(const FReducerEventContext& Context, const UUpdatePkSimpleEnumReducer* Args) +bool URemoteReducers::InvokeInsertOneUuid(const FReducerEventContext& Context, const UInsertOneUuidReducer* Args) { - if (!OnUpdatePkSimpleEnum.IsBound()) + if (!OnInsertOneUuid.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkSimpleEnum")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneUuid")); } return false; } - OnUpdatePkSimpleEnum.Broadcast(Context, Args->A, Args->Data); + OnInsertOneUuid.Broadcast(Context, Args->U); return true; } -bool URemoteReducers::InvokeUpdatePkSimpleEnumWithArgs(const FReducerEventContext& Context, const FUpdatePkSimpleEnumArgs& Args) +bool URemoteReducers::InvokeInsertOneUuidWithArgs(const FReducerEventContext& Context, const FInsertOneUuidArgs& Args) { - if (!OnUpdatePkSimpleEnum.IsBound()) + if (!OnInsertOneUuid.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkSimpleEnum")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOneUuid")); } return false; } - OnUpdatePkSimpleEnum.Broadcast(Context, Args.A, Args.Data); + OnInsertOneUuid.Broadcast(Context, Args.U); return true; } -void URemoteReducers::UpdatePkString(const FString& S, const int32 Data) +void URemoteReducers::InsertOptionEveryPrimitiveStruct(const FTestClientOptionalEveryPrimitiveStruct& S) { if (!Conn) { @@ -8404,45 +8404,45 @@ void URemoteReducers::UpdatePkString(const FString& S, const int32 Data) return; } - FUpdatePkStringArgs ReducerArgs(S, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_string"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkString(ReducerArgs)); } + FInsertOptionEveryPrimitiveStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_option_every_primitive_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOptionEveryPrimitiveStruct(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkString(const FReducerEventContext& Context, const UUpdatePkStringReducer* Args) +bool URemoteReducers::InvokeInsertOptionEveryPrimitiveStruct(const FReducerEventContext& Context, const UInsertOptionEveryPrimitiveStructReducer* Args) { - if (!OnUpdatePkString.IsBound()) + if (!OnInsertOptionEveryPrimitiveStruct.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionEveryPrimitiveStruct")); } return false; } - OnUpdatePkString.Broadcast(Context, Args->S, Args->Data); + OnInsertOptionEveryPrimitiveStruct.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeUpdatePkStringWithArgs(const FReducerEventContext& Context, const FUpdatePkStringArgs& Args) +bool URemoteReducers::InvokeInsertOptionEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FInsertOptionEveryPrimitiveStructArgs& Args) { - if (!OnUpdatePkString.IsBound()) + if (!OnInsertOptionEveryPrimitiveStruct.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionEveryPrimitiveStruct")); } return false; } - OnUpdatePkString.Broadcast(Context, Args.S, Args.Data); + OnInsertOptionEveryPrimitiveStruct.Broadcast(Context, Args.S); return true; } -void URemoteReducers::UpdatePkU128(const FSpacetimeDBUInt128& N, const int32 Data) +void URemoteReducers::InsertOptionI32(const FTestClientOptionalInt32 N) { if (!Conn) { @@ -8450,45 +8450,45 @@ void URemoteReducers::UpdatePkU128(const FSpacetimeDBUInt128& N, const int32 Dat return; } - FUpdatePkU128Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_u_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkU128(ReducerArgs)); } + FInsertOptionI32Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_option_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOptionI32(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkU128(const FReducerEventContext& Context, const UUpdatePkU128Reducer* Args) +bool URemoteReducers::InvokeInsertOptionI32(const FReducerEventContext& Context, const UInsertOptionI32Reducer* Args) { - if (!OnUpdatePkU128.IsBound()) + if (!OnInsertOptionI32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionI32")); } return false; } - OnUpdatePkU128.Broadcast(Context, Args->N, Args->Data); + OnInsertOptionI32.Broadcast(Context, Args->N); return true; } -bool URemoteReducers::InvokeUpdatePkU128WithArgs(const FReducerEventContext& Context, const FUpdatePkU128Args& Args) +bool URemoteReducers::InvokeInsertOptionI32WithArgs(const FReducerEventContext& Context, const FInsertOptionI32Args& Args) { - if (!OnUpdatePkU128.IsBound()) + if (!OnInsertOptionI32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionI32")); } return false; } - OnUpdatePkU128.Broadcast(Context, Args.N, Args.Data); + OnInsertOptionI32.Broadcast(Context, Args.N); return true; } -void URemoteReducers::UpdatePkU16(const uint16 N, const int32 Data) +void URemoteReducers::InsertOptionIdentity(const FTestClientOptionalIdentity& I) { if (!Conn) { @@ -8496,45 +8496,45 @@ void URemoteReducers::UpdatePkU16(const uint16 N, const int32 Data) return; } - FUpdatePkU16Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_u_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkU16(ReducerArgs)); } + FInsertOptionIdentityArgs ReducerArgs(I); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_option_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOptionIdentity(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkU16(const FReducerEventContext& Context, const UUpdatePkU16Reducer* Args) +bool URemoteReducers::InvokeInsertOptionIdentity(const FReducerEventContext& Context, const UInsertOptionIdentityReducer* Args) { - if (!OnUpdatePkU16.IsBound()) + if (!OnInsertOptionIdentity.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionIdentity")); } return false; } - OnUpdatePkU16.Broadcast(Context, Args->N, Args->Data); + OnInsertOptionIdentity.Broadcast(Context, Args->I); return true; } -bool URemoteReducers::InvokeUpdatePkU16WithArgs(const FReducerEventContext& Context, const FUpdatePkU16Args& Args) +bool URemoteReducers::InvokeInsertOptionIdentityWithArgs(const FReducerEventContext& Context, const FInsertOptionIdentityArgs& Args) { - if (!OnUpdatePkU16.IsBound()) + if (!OnInsertOptionIdentity.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionIdentity")); } return false; } - OnUpdatePkU16.Broadcast(Context, Args.N, Args.Data); + OnInsertOptionIdentity.Broadcast(Context, Args.I); return true; } -void URemoteReducers::UpdatePkU256(const FSpacetimeDBUInt256& N, const int32 Data) +void URemoteReducers::InsertOptionSimpleEnum(const FTestClientOptionalSimpleEnum& E) { if (!Conn) { @@ -8542,45 +8542,45 @@ void URemoteReducers::UpdatePkU256(const FSpacetimeDBUInt256& N, const int32 Dat return; } - FUpdatePkU256Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_u_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkU256(ReducerArgs)); } + FInsertOptionSimpleEnumArgs ReducerArgs(E); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_option_simple_enum"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOptionSimpleEnum(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkU256(const FReducerEventContext& Context, const UUpdatePkU256Reducer* Args) +bool URemoteReducers::InvokeInsertOptionSimpleEnum(const FReducerEventContext& Context, const UInsertOptionSimpleEnumReducer* Args) { - if (!OnUpdatePkU256.IsBound()) + if (!OnInsertOptionSimpleEnum.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionSimpleEnum")); } return false; } - OnUpdatePkU256.Broadcast(Context, Args->N, Args->Data); + OnInsertOptionSimpleEnum.Broadcast(Context, Args->E); return true; } -bool URemoteReducers::InvokeUpdatePkU256WithArgs(const FReducerEventContext& Context, const FUpdatePkU256Args& Args) +bool URemoteReducers::InvokeInsertOptionSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertOptionSimpleEnumArgs& Args) { - if (!OnUpdatePkU256.IsBound()) + if (!OnInsertOptionSimpleEnum.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionSimpleEnum")); } return false; } - OnUpdatePkU256.Broadcast(Context, Args.N, Args.Data); + OnInsertOptionSimpleEnum.Broadcast(Context, Args.E); return true; } -void URemoteReducers::UpdatePkU32(const uint32 N, const int32 Data) +void URemoteReducers::InsertOptionString(const FTestClientOptionalString& S) { if (!Conn) { @@ -8588,45 +8588,45 @@ void URemoteReducers::UpdatePkU32(const uint32 N, const int32 Data) return; } - FUpdatePkU32Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_u_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkU32(ReducerArgs)); } + FInsertOptionStringArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_option_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOptionString(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkU32(const FReducerEventContext& Context, const UUpdatePkU32Reducer* Args) +bool URemoteReducers::InvokeInsertOptionString(const FReducerEventContext& Context, const UInsertOptionStringReducer* Args) { - if (!OnUpdatePkU32.IsBound()) + if (!OnInsertOptionString.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionString")); } return false; } - OnUpdatePkU32.Broadcast(Context, Args->N, Args->Data); + OnInsertOptionString.Broadcast(Context, Args->S); return true; } -bool URemoteReducers::InvokeUpdatePkU32WithArgs(const FReducerEventContext& Context, const FUpdatePkU32Args& Args) +bool URemoteReducers::InvokeInsertOptionStringWithArgs(const FReducerEventContext& Context, const FInsertOptionStringArgs& Args) { - if (!OnUpdatePkU32.IsBound()) + if (!OnInsertOptionString.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionString")); } return false; } - OnUpdatePkU32.Broadcast(Context, Args.N, Args.Data); + OnInsertOptionString.Broadcast(Context, Args.S); return true; } -void URemoteReducers::UpdatePkU32Two(const uint32 N, const int32 Data) +void URemoteReducers::InsertOptionUuid(const FTestClientOptionalUuid& U) { if (!Conn) { @@ -8634,45 +8634,45 @@ void URemoteReducers::UpdatePkU32Two(const uint32 N, const int32 Data) return; } - FUpdatePkU32TwoArgs ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_u_32_two"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkU32Two(ReducerArgs)); } + FInsertOptionUuidArgs ReducerArgs(U); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_option_uuid"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOptionUuid(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkU32Two(const FReducerEventContext& Context, const UUpdatePkU32TwoReducer* Args) +bool URemoteReducers::InvokeInsertOptionUuid(const FReducerEventContext& Context, const UInsertOptionUuidReducer* Args) { - if (!OnUpdatePkU32Two.IsBound()) + if (!OnInsertOptionUuid.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU32Two")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionUuid")); } return false; } - OnUpdatePkU32Two.Broadcast(Context, Args->N, Args->Data); + OnInsertOptionUuid.Broadcast(Context, Args->U); return true; } -bool URemoteReducers::InvokeUpdatePkU32TwoWithArgs(const FReducerEventContext& Context, const FUpdatePkU32TwoArgs& Args) +bool URemoteReducers::InvokeInsertOptionUuidWithArgs(const FReducerEventContext& Context, const FInsertOptionUuidArgs& Args) { - if (!OnUpdatePkU32Two.IsBound()) + if (!OnInsertOptionUuid.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU32Two")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionUuid")); } return false; } - OnUpdatePkU32Two.Broadcast(Context, Args.N, Args.Data); + OnInsertOptionUuid.Broadcast(Context, Args.U); return true; } -void URemoteReducers::UpdatePkU64(const uint64 N, const int32 Data) +void URemoteReducers::InsertOptionVecOptionI32(const FTestClientOptionalVecOptionalInt32& V) { if (!Conn) { @@ -8680,45 +8680,45 @@ void URemoteReducers::UpdatePkU64(const uint64 N, const int32 Data) return; } - FUpdatePkU64Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_u_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkU64(ReducerArgs)); } + FInsertOptionVecOptionI32Args ReducerArgs(V); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_option_vec_option_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertOptionVecOptionI32(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkU64(const FReducerEventContext& Context, const UUpdatePkU64Reducer* Args) +bool URemoteReducers::InvokeInsertOptionVecOptionI32(const FReducerEventContext& Context, const UInsertOptionVecOptionI32Reducer* Args) { - if (!OnUpdatePkU64.IsBound()) + if (!OnInsertOptionVecOptionI32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionVecOptionI32")); } return false; } - OnUpdatePkU64.Broadcast(Context, Args->N, Args->Data); + OnInsertOptionVecOptionI32.Broadcast(Context, Args->V); return true; } -bool URemoteReducers::InvokeUpdatePkU64WithArgs(const FReducerEventContext& Context, const FUpdatePkU64Args& Args) +bool URemoteReducers::InvokeInsertOptionVecOptionI32WithArgs(const FReducerEventContext& Context, const FInsertOptionVecOptionI32Args& Args) { - if (!OnUpdatePkU64.IsBound()) + if (!OnInsertOptionVecOptionI32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertOptionVecOptionI32")); } return false; } - OnUpdatePkU64.Broadcast(Context, Args.N, Args.Data); + OnInsertOptionVecOptionI32.Broadcast(Context, Args.V); return true; } -void URemoteReducers::UpdatePkU8(const uint8 N, const int32 Data) +void URemoteReducers::InsertPkBool(const bool B, const int32 Data) { if (!Conn) { @@ -8726,45 +8726,45 @@ void URemoteReducers::UpdatePkU8(const uint8 N, const int32 Data) return; } - FUpdatePkU8Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_u_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkU8(ReducerArgs)); } + FInsertPkBoolArgs ReducerArgs(B, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_bool"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkBool(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkU8(const FReducerEventContext& Context, const UUpdatePkU8Reducer* Args) +bool URemoteReducers::InvokeInsertPkBool(const FReducerEventContext& Context, const UInsertPkBoolReducer* Args) { - if (!OnUpdatePkU8.IsBound()) + if (!OnInsertPkBool.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkBool")); } return false; } - OnUpdatePkU8.Broadcast(Context, Args->N, Args->Data); + OnInsertPkBool.Broadcast(Context, Args->B, Args->Data); return true; } -bool URemoteReducers::InvokeUpdatePkU8WithArgs(const FReducerEventContext& Context, const FUpdatePkU8Args& Args) +bool URemoteReducers::InvokeInsertPkBoolWithArgs(const FReducerEventContext& Context, const FInsertPkBoolArgs& Args) { - if (!OnUpdatePkU8.IsBound()) + if (!OnInsertPkBool.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkBool")); } return false; } - OnUpdatePkU8.Broadcast(Context, Args.N, Args.Data); + OnInsertPkBool.Broadcast(Context, Args.B, Args.Data); return true; } -void URemoteReducers::UpdatePkUuid(const FSpacetimeDBUuid& U, const int32 Data) +void URemoteReducers::InsertPkConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data) { if (!Conn) { @@ -8772,45 +8772,45 @@ void URemoteReducers::UpdatePkUuid(const FSpacetimeDBUuid& U, const int32 Data) return; } - FUpdatePkUuidArgs ReducerArgs(U, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_uuid"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkUuid(ReducerArgs)); } + FInsertPkConnectionIdArgs ReducerArgs(A, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_connection_id"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkConnectionId(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdatePkUuid(const FReducerEventContext& Context, const UUpdatePkUuidReducer* Args) +bool URemoteReducers::InvokeInsertPkConnectionId(const FReducerEventContext& Context, const UInsertPkConnectionIdReducer* Args) { - if (!OnUpdatePkUuid.IsBound()) + if (!OnInsertPkConnectionId.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkConnectionId")); } return false; } - OnUpdatePkUuid.Broadcast(Context, Args->U, Args->Data); + OnInsertPkConnectionId.Broadcast(Context, Args->A, Args->Data); return true; } -bool URemoteReducers::InvokeUpdatePkUuidWithArgs(const FReducerEventContext& Context, const FUpdatePkUuidArgs& Args) +bool URemoteReducers::InvokeInsertPkConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertPkConnectionIdArgs& Args) { - if (!OnUpdatePkUuid.IsBound()) + if (!OnInsertPkConnectionId.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkConnectionId")); } return false; } - OnUpdatePkUuid.Broadcast(Context, Args.U, Args.Data); + OnInsertPkConnectionId.Broadcast(Context, Args.A, Args.Data); return true; } -void URemoteReducers::UpdateUniqueBool(const bool B, const int32 Data) +void URemoteReducers::InsertPkI128(const FSpacetimeDBInt128& N, const int32 Data) { if (!Conn) { @@ -8818,45 +8818,45 @@ void URemoteReducers::UpdateUniqueBool(const bool B, const int32 Data) return; } - FUpdateUniqueBoolArgs ReducerArgs(B, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_bool"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueBool(ReducerArgs)); } + FInsertPkI128Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_i_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkI128(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueBool(const FReducerEventContext& Context, const UUpdateUniqueBoolReducer* Args) +bool URemoteReducers::InvokeInsertPkI128(const FReducerEventContext& Context, const UInsertPkI128Reducer* Args) { - if (!OnUpdateUniqueBool.IsBound()) + if (!OnInsertPkI128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI128")); } return false; } - OnUpdateUniqueBool.Broadcast(Context, Args->B, Args->Data); + OnInsertPkI128.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueBoolWithArgs(const FReducerEventContext& Context, const FUpdateUniqueBoolArgs& Args) +bool URemoteReducers::InvokeInsertPkI128WithArgs(const FReducerEventContext& Context, const FInsertPkI128Args& Args) { - if (!OnUpdateUniqueBool.IsBound()) + if (!OnInsertPkI128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueBool")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI128")); } return false; } - OnUpdateUniqueBool.Broadcast(Context, Args.B, Args.Data); + OnInsertPkI128.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::UpdateUniqueConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data) +void URemoteReducers::InsertPkI16(const int16 N, const int32 Data) { if (!Conn) { @@ -8864,45 +8864,45 @@ void URemoteReducers::UpdateUniqueConnectionId(const FSpacetimeDBConnectionId& A return; } - FUpdateUniqueConnectionIdArgs ReducerArgs(A, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_connection_id"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueConnectionId(ReducerArgs)); } + FInsertPkI16Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_i_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkI16(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueConnectionId(const FReducerEventContext& Context, const UUpdateUniqueConnectionIdReducer* Args) +bool URemoteReducers::InvokeInsertPkI16(const FReducerEventContext& Context, const UInsertPkI16Reducer* Args) { - if (!OnUpdateUniqueConnectionId.IsBound()) + if (!OnInsertPkI16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI16")); } return false; } - OnUpdateUniqueConnectionId.Broadcast(Context, Args->A, Args->Data); + OnInsertPkI16.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FUpdateUniqueConnectionIdArgs& Args) +bool URemoteReducers::InvokeInsertPkI16WithArgs(const FReducerEventContext& Context, const FInsertPkI16Args& Args) { - if (!OnUpdateUniqueConnectionId.IsBound()) + if (!OnInsertPkI16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueConnectionId")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI16")); } return false; } - OnUpdateUniqueConnectionId.Broadcast(Context, Args.A, Args.Data); + OnInsertPkI16.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::UpdateUniqueI128(const FSpacetimeDBInt128& N, const int32 Data) +void URemoteReducers::InsertPkI256(const FSpacetimeDBInt256& N, const int32 Data) { if (!Conn) { @@ -8910,45 +8910,45 @@ void URemoteReducers::UpdateUniqueI128(const FSpacetimeDBInt128& N, const int32 return; } - FUpdateUniqueI128Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_i_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueI128(ReducerArgs)); } + FInsertPkI256Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_i_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkI256(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueI128(const FReducerEventContext& Context, const UUpdateUniqueI128Reducer* Args) +bool URemoteReducers::InvokeInsertPkI256(const FReducerEventContext& Context, const UInsertPkI256Reducer* Args) { - if (!OnUpdateUniqueI128.IsBound()) + if (!OnInsertPkI256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI256")); } return false; } - OnUpdateUniqueI128.Broadcast(Context, Args->N, Args->Data); + OnInsertPkI256.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueI128WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI128Args& Args) +bool URemoteReducers::InvokeInsertPkI256WithArgs(const FReducerEventContext& Context, const FInsertPkI256Args& Args) { - if (!OnUpdateUniqueI128.IsBound()) + if (!OnInsertPkI256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI256")); } return false; } - OnUpdateUniqueI128.Broadcast(Context, Args.N, Args.Data); + OnInsertPkI256.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::UpdateUniqueI16(const int16 N, const int32 Data) +void URemoteReducers::InsertPkI32(const int32 N, const int32 Data) { if (!Conn) { @@ -8956,45 +8956,45 @@ void URemoteReducers::UpdateUniqueI16(const int16 N, const int32 Data) return; } - FUpdateUniqueI16Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_i_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueI16(ReducerArgs)); } + FInsertPkI32Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkI32(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueI16(const FReducerEventContext& Context, const UUpdateUniqueI16Reducer* Args) +bool URemoteReducers::InvokeInsertPkI32(const FReducerEventContext& Context, const UInsertPkI32Reducer* Args) { - if (!OnUpdateUniqueI16.IsBound()) + if (!OnInsertPkI32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI32")); } return false; } - OnUpdateUniqueI16.Broadcast(Context, Args->N, Args->Data); + OnInsertPkI32.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueI16WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI16Args& Args) +bool URemoteReducers::InvokeInsertPkI32WithArgs(const FReducerEventContext& Context, const FInsertPkI32Args& Args) { - if (!OnUpdateUniqueI16.IsBound()) + if (!OnInsertPkI32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI32")); } return false; } - OnUpdateUniqueI16.Broadcast(Context, Args.N, Args.Data); + OnInsertPkI32.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::UpdateUniqueI256(const FSpacetimeDBInt256& N, const int32 Data) +void URemoteReducers::InsertPkI64(const int64 N, const int32 Data) { if (!Conn) { @@ -9002,45 +9002,45 @@ void URemoteReducers::UpdateUniqueI256(const FSpacetimeDBInt256& N, const int32 return; } - FUpdateUniqueI256Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_i_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueI256(ReducerArgs)); } + FInsertPkI64Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_i_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkI64(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueI256(const FReducerEventContext& Context, const UUpdateUniqueI256Reducer* Args) +bool URemoteReducers::InvokeInsertPkI64(const FReducerEventContext& Context, const UInsertPkI64Reducer* Args) { - if (!OnUpdateUniqueI256.IsBound()) + if (!OnInsertPkI64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI64")); } return false; } - OnUpdateUniqueI256.Broadcast(Context, Args->N, Args->Data); + OnInsertPkI64.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueI256WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI256Args& Args) +bool URemoteReducers::InvokeInsertPkI64WithArgs(const FReducerEventContext& Context, const FInsertPkI64Args& Args) { - if (!OnUpdateUniqueI256.IsBound()) + if (!OnInsertPkI64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI64")); } return false; } - OnUpdateUniqueI256.Broadcast(Context, Args.N, Args.Data); + OnInsertPkI64.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::UpdateUniqueI32(const int32 N, const int32 Data) +void URemoteReducers::InsertPkI8(const int8 N, const int32 Data) { if (!Conn) { @@ -9048,45 +9048,45 @@ void URemoteReducers::UpdateUniqueI32(const int32 N, const int32 Data) return; } - FUpdateUniqueI32Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_i_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueI32(ReducerArgs)); } + FInsertPkI8Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_i_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkI8(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueI32(const FReducerEventContext& Context, const UUpdateUniqueI32Reducer* Args) +bool URemoteReducers::InvokeInsertPkI8(const FReducerEventContext& Context, const UInsertPkI8Reducer* Args) { - if (!OnUpdateUniqueI32.IsBound()) + if (!OnInsertPkI8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI8")); } return false; } - OnUpdateUniqueI32.Broadcast(Context, Args->N, Args->Data); + OnInsertPkI8.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueI32WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI32Args& Args) +bool URemoteReducers::InvokeInsertPkI8WithArgs(const FReducerEventContext& Context, const FInsertPkI8Args& Args) { - if (!OnUpdateUniqueI32.IsBound()) + if (!OnInsertPkI8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkI8")); } return false; } - OnUpdateUniqueI32.Broadcast(Context, Args.N, Args.Data); + OnInsertPkI8.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::UpdateUniqueI64(const int64 N, const int32 Data) +void URemoteReducers::InsertPkIdentity(const FSpacetimeDBIdentity& I, const int32 Data) { if (!Conn) { @@ -9094,45 +9094,45 @@ void URemoteReducers::UpdateUniqueI64(const int64 N, const int32 Data) return; } - FUpdateUniqueI64Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_i_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueI64(ReducerArgs)); } + FInsertPkIdentityArgs ReducerArgs(I, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkIdentity(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueI64(const FReducerEventContext& Context, const UUpdateUniqueI64Reducer* Args) +bool URemoteReducers::InvokeInsertPkIdentity(const FReducerEventContext& Context, const UInsertPkIdentityReducer* Args) { - if (!OnUpdateUniqueI64.IsBound()) + if (!OnInsertPkIdentity.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkIdentity")); } return false; } - OnUpdateUniqueI64.Broadcast(Context, Args->N, Args->Data); + OnInsertPkIdentity.Broadcast(Context, Args->I, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueI64WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI64Args& Args) +bool URemoteReducers::InvokeInsertPkIdentityWithArgs(const FReducerEventContext& Context, const FInsertPkIdentityArgs& Args) { - if (!OnUpdateUniqueI64.IsBound()) + if (!OnInsertPkIdentity.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkIdentity")); } return false; } - OnUpdateUniqueI64.Broadcast(Context, Args.N, Args.Data); + OnInsertPkIdentity.Broadcast(Context, Args.I, Args.Data); return true; } -void URemoteReducers::UpdateUniqueI8(const int8 N, const int32 Data) +void URemoteReducers::InsertPkSimpleEnum(const ESimpleEnumType& A, const int32 Data) { if (!Conn) { @@ -9140,45 +9140,45 @@ void URemoteReducers::UpdateUniqueI8(const int8 N, const int32 Data) return; } - FUpdateUniqueI8Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_i_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueI8(ReducerArgs)); } + FInsertPkSimpleEnumArgs ReducerArgs(A, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_simple_enum"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkSimpleEnum(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueI8(const FReducerEventContext& Context, const UUpdateUniqueI8Reducer* Args) +bool URemoteReducers::InvokeInsertPkSimpleEnum(const FReducerEventContext& Context, const UInsertPkSimpleEnumReducer* Args) { - if (!OnUpdateUniqueI8.IsBound()) + if (!OnInsertPkSimpleEnum.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkSimpleEnum")); } return false; } - OnUpdateUniqueI8.Broadcast(Context, Args->N, Args->Data); + OnInsertPkSimpleEnum.Broadcast(Context, Args->A, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueI8WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI8Args& Args) +bool URemoteReducers::InvokeInsertPkSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertPkSimpleEnumArgs& Args) { - if (!OnUpdateUniqueI8.IsBound()) + if (!OnInsertPkSimpleEnum.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkSimpleEnum")); } return false; } - OnUpdateUniqueI8.Broadcast(Context, Args.N, Args.Data); + OnInsertPkSimpleEnum.Broadcast(Context, Args.A, Args.Data); return true; } -void URemoteReducers::UpdateUniqueIdentity(const FSpacetimeDBIdentity& I, const int32 Data) +void URemoteReducers::InsertPkString(const FString& S, const int32 Data) { if (!Conn) { @@ -9186,45 +9186,45 @@ void URemoteReducers::UpdateUniqueIdentity(const FSpacetimeDBIdentity& I, const return; } - FUpdateUniqueIdentityArgs ReducerArgs(I, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_identity"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueIdentity(ReducerArgs)); } + FInsertPkStringArgs ReducerArgs(S, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkString(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueIdentity(const FReducerEventContext& Context, const UUpdateUniqueIdentityReducer* Args) +bool URemoteReducers::InvokeInsertPkString(const FReducerEventContext& Context, const UInsertPkStringReducer* Args) { - if (!OnUpdateUniqueIdentity.IsBound()) + if (!OnInsertPkString.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkString")); } return false; } - OnUpdateUniqueIdentity.Broadcast(Context, Args->I, Args->Data); + OnInsertPkString.Broadcast(Context, Args->S, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueIdentityWithArgs(const FReducerEventContext& Context, const FUpdateUniqueIdentityArgs& Args) +bool URemoteReducers::InvokeInsertPkStringWithArgs(const FReducerEventContext& Context, const FInsertPkStringArgs& Args) { - if (!OnUpdateUniqueIdentity.IsBound()) + if (!OnInsertPkString.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueIdentity")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkString")); } return false; } - OnUpdateUniqueIdentity.Broadcast(Context, Args.I, Args.Data); + OnInsertPkString.Broadcast(Context, Args.S, Args.Data); return true; } -void URemoteReducers::UpdateUniqueString(const FString& S, const int32 Data) +void URemoteReducers::InsertPkU128(const FSpacetimeDBUInt128& N, const int32 Data) { if (!Conn) { @@ -9232,45 +9232,45 @@ void URemoteReducers::UpdateUniqueString(const FString& S, const int32 Data) return; } - FUpdateUniqueStringArgs ReducerArgs(S, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_string"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueString(ReducerArgs)); } + FInsertPkU128Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_u_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkU128(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueString(const FReducerEventContext& Context, const UUpdateUniqueStringReducer* Args) +bool URemoteReducers::InvokeInsertPkU128(const FReducerEventContext& Context, const UInsertPkU128Reducer* Args) { - if (!OnUpdateUniqueString.IsBound()) + if (!OnInsertPkU128.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU128")); } return false; } - OnUpdateUniqueString.Broadcast(Context, Args->S, Args->Data); + OnInsertPkU128.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueStringWithArgs(const FReducerEventContext& Context, const FUpdateUniqueStringArgs& Args) +bool URemoteReducers::InvokeInsertPkU128WithArgs(const FReducerEventContext& Context, const FInsertPkU128Args& Args) { - if (!OnUpdateUniqueString.IsBound()) + if (!OnInsertPkU128.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueString")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU128")); } return false; } - OnUpdateUniqueString.Broadcast(Context, Args.S, Args.Data); + OnInsertPkU128.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::UpdateUniqueU128(const FSpacetimeDBUInt128& N, const int32 Data) +void URemoteReducers::InsertPkU16(const uint16 N, const int32 Data) { if (!Conn) { @@ -9278,45 +9278,45 @@ void URemoteReducers::UpdateUniqueU128(const FSpacetimeDBUInt128& N, const int32 return; } - FUpdateUniqueU128Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_u_128"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueU128(ReducerArgs)); } + FInsertPkU16Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_u_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkU16(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueU128(const FReducerEventContext& Context, const UUpdateUniqueU128Reducer* Args) +bool URemoteReducers::InvokeInsertPkU16(const FReducerEventContext& Context, const UInsertPkU16Reducer* Args) { - if (!OnUpdateUniqueU128.IsBound()) + if (!OnInsertPkU16.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU16")); } return false; } - OnUpdateUniqueU128.Broadcast(Context, Args->N, Args->Data); + OnInsertPkU16.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueU128WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU128Args& Args) +bool URemoteReducers::InvokeInsertPkU16WithArgs(const FReducerEventContext& Context, const FInsertPkU16Args& Args) { - if (!OnUpdateUniqueU128.IsBound()) + if (!OnInsertPkU16.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU128")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU16")); } return false; } - OnUpdateUniqueU128.Broadcast(Context, Args.N, Args.Data); + OnInsertPkU16.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::UpdateUniqueU16(const uint16 N, const int32 Data) +void URemoteReducers::InsertPkU256(const FSpacetimeDBUInt256& N, const int32 Data) { if (!Conn) { @@ -9324,45 +9324,45 @@ void URemoteReducers::UpdateUniqueU16(const uint16 N, const int32 Data) return; } - FUpdateUniqueU16Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_u_16"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueU16(ReducerArgs)); } + FInsertPkU256Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_u_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkU256(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueU16(const FReducerEventContext& Context, const UUpdateUniqueU16Reducer* Args) +bool URemoteReducers::InvokeInsertPkU256(const FReducerEventContext& Context, const UInsertPkU256Reducer* Args) { - if (!OnUpdateUniqueU16.IsBound()) + if (!OnInsertPkU256.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU256")); } return false; } - OnUpdateUniqueU16.Broadcast(Context, Args->N, Args->Data); + OnInsertPkU256.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueU16WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU16Args& Args) +bool URemoteReducers::InvokeInsertPkU256WithArgs(const FReducerEventContext& Context, const FInsertPkU256Args& Args) { - if (!OnUpdateUniqueU16.IsBound()) + if (!OnInsertPkU256.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU16")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU256")); } return false; } - OnUpdateUniqueU16.Broadcast(Context, Args.N, Args.Data); + OnInsertPkU256.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::UpdateUniqueU256(const FSpacetimeDBUInt256& N, const int32 Data) +void URemoteReducers::InsertPkU32(const uint32 N, const int32 Data) { if (!Conn) { @@ -9370,45 +9370,45 @@ void URemoteReducers::UpdateUniqueU256(const FSpacetimeDBUInt256& N, const int32 return; } - FUpdateUniqueU256Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_u_256"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueU256(ReducerArgs)); } + FInsertPkU32Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkU32(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueU256(const FReducerEventContext& Context, const UUpdateUniqueU256Reducer* Args) +bool URemoteReducers::InvokeInsertPkU32(const FReducerEventContext& Context, const UInsertPkU32Reducer* Args) { - if (!OnUpdateUniqueU256.IsBound()) + if (!OnInsertPkU32.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU32")); } return false; } - OnUpdateUniqueU256.Broadcast(Context, Args->N, Args->Data); + OnInsertPkU32.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueU256WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU256Args& Args) +bool URemoteReducers::InvokeInsertPkU32WithArgs(const FReducerEventContext& Context, const FInsertPkU32Args& Args) { - if (!OnUpdateUniqueU256.IsBound()) + if (!OnInsertPkU32.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU256")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU32")); } return false; } - OnUpdateUniqueU256.Broadcast(Context, Args.N, Args.Data); + OnInsertPkU32.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::UpdateUniqueU32(const uint32 N, const int32 Data) +void URemoteReducers::InsertPkU32Two(const uint32 N, const int32 Data) { if (!Conn) { @@ -9416,45 +9416,45 @@ void URemoteReducers::UpdateUniqueU32(const uint32 N, const int32 Data) return; } - FUpdateUniqueU32Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_u_32"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueU32(ReducerArgs)); } + FInsertPkU32TwoArgs ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_u_32_two"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkU32Two(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueU32(const FReducerEventContext& Context, const UUpdateUniqueU32Reducer* Args) +bool URemoteReducers::InvokeInsertPkU32Two(const FReducerEventContext& Context, const UInsertPkU32TwoReducer* Args) { - if (!OnUpdateUniqueU32.IsBound()) + if (!OnInsertPkU32Two.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU32Two")); } return false; } - OnUpdateUniqueU32.Broadcast(Context, Args->N, Args->Data); + OnInsertPkU32Two.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueU32WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU32Args& Args) +bool URemoteReducers::InvokeInsertPkU32TwoWithArgs(const FReducerEventContext& Context, const FInsertPkU32TwoArgs& Args) { - if (!OnUpdateUniqueU32.IsBound()) + if (!OnInsertPkU32Two.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU32")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU32Two")); } return false; } - OnUpdateUniqueU32.Broadcast(Context, Args.N, Args.Data); + OnInsertPkU32Two.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::UpdateUniqueU64(const uint64 N, const int32 Data) +void URemoteReducers::InsertPkU64(const uint64 N, const int32 Data) { if (!Conn) { @@ -9462,45 +9462,45 @@ void URemoteReducers::UpdateUniqueU64(const uint64 N, const int32 Data) return; } - FUpdateUniqueU64Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_u_64"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueU64(ReducerArgs)); } + FInsertPkU64Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_u_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkU64(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueU64(const FReducerEventContext& Context, const UUpdateUniqueU64Reducer* Args) +bool URemoteReducers::InvokeInsertPkU64(const FReducerEventContext& Context, const UInsertPkU64Reducer* Args) { - if (!OnUpdateUniqueU64.IsBound()) + if (!OnInsertPkU64.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU64")); } return false; } - OnUpdateUniqueU64.Broadcast(Context, Args->N, Args->Data); + OnInsertPkU64.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueU64WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU64Args& Args) +bool URemoteReducers::InvokeInsertPkU64WithArgs(const FReducerEventContext& Context, const FInsertPkU64Args& Args) { - if (!OnUpdateUniqueU64.IsBound()) + if (!OnInsertPkU64.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU64")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU64")); } return false; } - OnUpdateUniqueU64.Broadcast(Context, Args.N, Args.Data); + OnInsertPkU64.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::UpdateUniqueU8(const uint8 N, const int32 Data) +void URemoteReducers::InsertPkU8(const uint8 N, const int32 Data) { if (!Conn) { @@ -9508,45 +9508,45 @@ void URemoteReducers::UpdateUniqueU8(const uint8 N, const int32 Data) return; } - FUpdateUniqueU8Args ReducerArgs(N, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_u_8"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueU8(ReducerArgs)); } + FInsertPkU8Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_u_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkU8(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueU8(const FReducerEventContext& Context, const UUpdateUniqueU8Reducer* Args) +bool URemoteReducers::InvokeInsertPkU8(const FReducerEventContext& Context, const UInsertPkU8Reducer* Args) { - if (!OnUpdateUniqueU8.IsBound()) + if (!OnInsertPkU8.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU8")); } return false; } - OnUpdateUniqueU8.Broadcast(Context, Args->N, Args->Data); + OnInsertPkU8.Broadcast(Context, Args->N, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueU8WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU8Args& Args) +bool URemoteReducers::InvokeInsertPkU8WithArgs(const FReducerEventContext& Context, const FInsertPkU8Args& Args) { - if (!OnUpdateUniqueU8.IsBound()) + if (!OnInsertPkU8.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU8")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkU8")); } return false; } - OnUpdateUniqueU8.Broadcast(Context, Args.N, Args.Data); + OnInsertPkU8.Broadcast(Context, Args.N, Args.Data); return true; } -void URemoteReducers::UpdateUniqueUuid(const FSpacetimeDBUuid& U, const int32 Data) +void URemoteReducers::InsertPkUuid(const FSpacetimeDBUuid& U, const int32 Data) { if (!Conn) { @@ -9554,1401 +9554,7053 @@ void URemoteReducers::UpdateUniqueUuid(const FSpacetimeDBUuid& U, const int32 Da return; } - FUpdateUniqueUuidArgs ReducerArgs(U, Data); - const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_uuid"), ReducerArgs); - if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueUuid(ReducerArgs)); } + FInsertPkUuidArgs ReducerArgs(U, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_pk_uuid"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPkUuid(ReducerArgs)); } } -bool URemoteReducers::InvokeUpdateUniqueUuid(const FReducerEventContext& Context, const UUpdateUniqueUuidReducer* Args) +bool URemoteReducers::InvokeInsertPkUuid(const FReducerEventContext& Context, const UInsertPkUuidReducer* Args) { - if (!OnUpdateUniqueUuid.IsBound()) + if (!OnInsertPkUuid.IsBound()) { // Handle unhandled reducer error if (InternalOnUnhandledReducerError.IsBound()) { // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases // For now, just broadcast any error - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkUuid")); } return false; } - OnUpdateUniqueUuid.Broadcast(Context, Args->U, Args->Data); + OnInsertPkUuid.Broadcast(Context, Args->U, Args->Data); return true; } -bool URemoteReducers::InvokeUpdateUniqueUuidWithArgs(const FReducerEventContext& Context, const FUpdateUniqueUuidArgs& Args) +bool URemoteReducers::InvokeInsertPkUuidWithArgs(const FReducerEventContext& Context, const FInsertPkUuidArgs& Args) { - if (!OnUpdateUniqueUuid.IsBound()) + if (!OnInsertPkUuid.IsBound()) { if (InternalOnUnhandledReducerError.IsBound()) { - InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueUuid")); + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPkUuid")); } return false; } - OnUpdateUniqueUuid.Broadcast(Context, Args.U, Args.Data); + OnInsertPkUuid.Broadcast(Context, Args.U, Args.Data); return true; } -void UDbConnection::PostInitProperties() +void URemoteReducers::InsertPrimitivesAsStrings(const FEveryPrimitiveStructType& S) { - Super::PostInitProperties(); - - // Connect OnUnhandledReducerError to Reducers.InternalOnUnhandledReducerError - if (Reducers) + if (!Conn) { - Reducers->InternalOnUnhandledReducerError.AddDynamic(this, &UDbConnection::OnUnhandledReducerErrorHandler); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; } - // Connect OnUnhandledProcedureError to Procedures.InternalOnUnhandledProcedureError - if (Procedures) - { - Procedures->InternalOnUnhandledProcedureError.AddDynamic(this, &UDbConnection::OnUnhandledProcedureErrorHandler); - } + FInsertPrimitivesAsStringsArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_primitives_as_strings"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPrimitivesAsStrings(ReducerArgs)); } } -UFUNCTION() -void UDbConnection::OnUnhandledReducerErrorHandler(const FReducerEventContext& Context, const FString& Error) +bool URemoteReducers::InvokeInsertPrimitivesAsStrings(const FReducerEventContext& Context, const UInsertPrimitivesAsStringsReducer* Args) { - if (OnUnhandledReducerError.IsBound()) + if (!OnInsertPrimitivesAsStrings.IsBound()) { - OnUnhandledReducerError.Broadcast(Context, Error); + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPrimitivesAsStrings")); + } + return false; } + + OnInsertPrimitivesAsStrings.Broadcast(Context, Args->S); + return true; } -UFUNCTION() -void UDbConnection::OnUnhandledProcedureErrorHandler(const FProcedureEventContext& Context, const FString& Error) +bool URemoteReducers::InvokeInsertPrimitivesAsStringsWithArgs(const FReducerEventContext& Context, const FInsertPrimitivesAsStringsArgs& Args) { - if (OnUnhandledProcedureError.IsBound()) + if (!OnInsertPrimitivesAsStrings.IsBound()) { - OnUnhandledProcedureError.Broadcast(Context, Error); + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPrimitivesAsStrings")); + } + return false; } -} -void UDbConnection::RegisterPendingTypedReducer(uint32 RequestId, FReducer Reducer) -{ - Reducer.RequestId = RequestId; - PendingTypedReducers.Add(RequestId, MoveTemp(Reducer)); + OnInsertPrimitivesAsStrings.Broadcast(Context, Args.S); + return true; } -bool UDbConnection::TryGetPendingTypedReducer(uint32 RequestId, FReducer& OutReducer) const +void URemoteReducers::InsertResultEveryPrimitiveStructString(const FTestClientResultEveryPrimitiveStructString& R) { - if (const FReducer* Found = PendingTypedReducers.Find(RequestId)) + if (!Conn) { - OutReducer = *Found; - return true; + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; } - return false; + + FInsertResultEveryPrimitiveStructStringArgs ReducerArgs(R); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_result_every_primitive_struct_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertResultEveryPrimitiveStructString(ReducerArgs)); } } -bool UDbConnection::TryTakePendingTypedReducer(uint32 RequestId, FReducer& OutReducer) +bool URemoteReducers::InvokeInsertResultEveryPrimitiveStructString(const FReducerEventContext& Context, const UInsertResultEveryPrimitiveStructStringReducer* Args) { - if (FReducer* Found = PendingTypedReducers.Find(RequestId)) + if (!OnInsertResultEveryPrimitiveStructString.IsBound()) { - OutReducer = *Found; - PendingTypedReducers.Remove(RequestId); - return true; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultEveryPrimitiveStructString")); + } + return false; } - return false; + + OnInsertResultEveryPrimitiveStructString.Broadcast(Context, Args->R); + return true; } -void UDbConnection::ReducerEvent(const FReducerEvent& Event) +bool URemoteReducers::InvokeInsertResultEveryPrimitiveStructStringWithArgs(const FReducerEventContext& Context, const FInsertResultEveryPrimitiveStructStringArgs& Args) { - if (!Reducers) { return; } - - FReducer DecodedReducer; - if (!TryTakePendingTypedReducer(Event.RequestId, DecodedReducer)) + if (!OnInsertResultEveryPrimitiveStructString.IsBound()) { - const FString ErrorMessage = FString::Printf(TEXT("Reducer result for unknown request_id %u"), Event.RequestId); - HandleProtocolViolation(ErrorMessage); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultEveryPrimitiveStructString")); + } + return false; } - FTestClientReducerEvent ReducerEvent; - ReducerEvent.CallerConnectionId = Event.CallerConnectionId; - ReducerEvent.CallerIdentity = Event.CallerIdentity; - ReducerEvent.EnergyConsumed = Event.EnergyConsumed; - ReducerEvent.Status = Event.Status; - ReducerEvent.Timestamp = Event.Timestamp; - ReducerEvent.Reducer = DecodedReducer; - - FReducerEventContext Context(this, ReducerEvent); - - // Dispatch by typed reducer metadata - const FString& ReducerName = ReducerEvent.Reducer.ReducerName; + OnInsertResultEveryPrimitiveStructString.Broadcast(Context, Args.R); + return true; +} - if (ReducerName == TEXT("delete_from_btree_u_32")) +void URemoteReducers::InsertResultI32String(const FTestClientResultInt32String& R) +{ + if (!Conn) { - FDeleteFromBtreeU32Args Args = ReducerEvent.Reducer.GetAsDeleteFromBtreeU32(); - Reducers->InvokeDeleteFromBtreeU32WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("delete_large_table")) - { - FDeleteLargeTableArgs Args = ReducerEvent.Reducer.GetAsDeleteLargeTable(); - Reducers->InvokeDeleteLargeTableWithArgs(Context, Args); - return; - } - if (ReducerName == TEXT("delete_pk_bool")) + + FInsertResultI32StringArgs ReducerArgs(R); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_result_i_32_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertResultI32String(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertResultI32String(const FReducerEventContext& Context, const UInsertResultI32StringReducer* Args) +{ + if (!OnInsertResultI32String.IsBound()) { - FDeletePkBoolArgs Args = ReducerEvent.Reducer.GetAsDeletePkBool(); - Reducers->InvokeDeletePkBoolWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultI32String")); + } + return false; } - if (ReducerName == TEXT("delete_pk_connection_id")) + + OnInsertResultI32String.Broadcast(Context, Args->R); + return true; +} + +bool URemoteReducers::InvokeInsertResultI32StringWithArgs(const FReducerEventContext& Context, const FInsertResultI32StringArgs& Args) +{ + if (!OnInsertResultI32String.IsBound()) { - FDeletePkConnectionIdArgs Args = ReducerEvent.Reducer.GetAsDeletePkConnectionId(); - Reducers->InvokeDeletePkConnectionIdWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultI32String")); + } + return false; } - if (ReducerName == TEXT("delete_pk_i_128")) + + OnInsertResultI32String.Broadcast(Context, Args.R); + return true; +} + +void URemoteReducers::InsertResultIdentityString(const FTestClientResultIdentityString& R) +{ + if (!Conn) { - FDeletePkI128Args Args = ReducerEvent.Reducer.GetAsDeletePkI128(); - Reducers->InvokeDeletePkI128WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("delete_pk_i_16")) + + FInsertResultIdentityStringArgs ReducerArgs(R); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_result_identity_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertResultIdentityString(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertResultIdentityString(const FReducerEventContext& Context, const UInsertResultIdentityStringReducer* Args) +{ + if (!OnInsertResultIdentityString.IsBound()) { - FDeletePkI16Args Args = ReducerEvent.Reducer.GetAsDeletePkI16(); - Reducers->InvokeDeletePkI16WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultIdentityString")); + } + return false; } - if (ReducerName == TEXT("delete_pk_i_256")) + + OnInsertResultIdentityString.Broadcast(Context, Args->R); + return true; +} + +bool URemoteReducers::InvokeInsertResultIdentityStringWithArgs(const FReducerEventContext& Context, const FInsertResultIdentityStringArgs& Args) +{ + if (!OnInsertResultIdentityString.IsBound()) { - FDeletePkI256Args Args = ReducerEvent.Reducer.GetAsDeletePkI256(); - Reducers->InvokeDeletePkI256WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultIdentityString")); + } + return false; } - if (ReducerName == TEXT("delete_pk_i_32")) + + OnInsertResultIdentityString.Broadcast(Context, Args.R); + return true; +} + +void URemoteReducers::InsertResultSimpleEnumI32(const FTestClientResultSimpleEnumInt32& R) +{ + if (!Conn) { - FDeletePkI32Args Args = ReducerEvent.Reducer.GetAsDeletePkI32(); - Reducers->InvokeDeletePkI32WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("delete_pk_i_64")) + + FInsertResultSimpleEnumI32Args ReducerArgs(R); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_result_simple_enum_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertResultSimpleEnumI32(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertResultSimpleEnumI32(const FReducerEventContext& Context, const UInsertResultSimpleEnumI32Reducer* Args) +{ + if (!OnInsertResultSimpleEnumI32.IsBound()) { - FDeletePkI64Args Args = ReducerEvent.Reducer.GetAsDeletePkI64(); - Reducers->InvokeDeletePkI64WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultSimpleEnumI32")); + } + return false; } - if (ReducerName == TEXT("delete_pk_i_8")) + + OnInsertResultSimpleEnumI32.Broadcast(Context, Args->R); + return true; +} + +bool URemoteReducers::InvokeInsertResultSimpleEnumI32WithArgs(const FReducerEventContext& Context, const FInsertResultSimpleEnumI32Args& Args) +{ + if (!OnInsertResultSimpleEnumI32.IsBound()) { - FDeletePkI8Args Args = ReducerEvent.Reducer.GetAsDeletePkI8(); - Reducers->InvokeDeletePkI8WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultSimpleEnumI32")); + } + return false; } - if (ReducerName == TEXT("delete_pk_identity")) + + OnInsertResultSimpleEnumI32.Broadcast(Context, Args.R); + return true; +} + +void URemoteReducers::InsertResultStringI32(const FTestClientResultStringInt32& R) +{ + if (!Conn) { - FDeletePkIdentityArgs Args = ReducerEvent.Reducer.GetAsDeletePkIdentity(); - Reducers->InvokeDeletePkIdentityWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("delete_pk_string")) + + FInsertResultStringI32Args ReducerArgs(R); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_result_string_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertResultStringI32(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertResultStringI32(const FReducerEventContext& Context, const UInsertResultStringI32Reducer* Args) +{ + if (!OnInsertResultStringI32.IsBound()) { - FDeletePkStringArgs Args = ReducerEvent.Reducer.GetAsDeletePkString(); - Reducers->InvokeDeletePkStringWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultStringI32")); + } + return false; } - if (ReducerName == TEXT("delete_pk_u_128")) + + OnInsertResultStringI32.Broadcast(Context, Args->R); + return true; +} + +bool URemoteReducers::InvokeInsertResultStringI32WithArgs(const FReducerEventContext& Context, const FInsertResultStringI32Args& Args) +{ + if (!OnInsertResultStringI32.IsBound()) { - FDeletePkU128Args Args = ReducerEvent.Reducer.GetAsDeletePkU128(); - Reducers->InvokeDeletePkU128WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultStringI32")); + } + return false; } - if (ReducerName == TEXT("delete_pk_u_16")) + + OnInsertResultStringI32.Broadcast(Context, Args.R); + return true; +} + +void URemoteReducers::InsertResultVecI32String(const FTestClientResultVecInt32String& R) +{ + if (!Conn) { - FDeletePkU16Args Args = ReducerEvent.Reducer.GetAsDeletePkU16(); - Reducers->InvokeDeletePkU16WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("delete_pk_u_256")) + + FInsertResultVecI32StringArgs ReducerArgs(R); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_result_vec_i_32_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertResultVecI32String(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertResultVecI32String(const FReducerEventContext& Context, const UInsertResultVecI32StringReducer* Args) +{ + if (!OnInsertResultVecI32String.IsBound()) { - FDeletePkU256Args Args = ReducerEvent.Reducer.GetAsDeletePkU256(); - Reducers->InvokeDeletePkU256WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultVecI32String")); + } + return false; } - if (ReducerName == TEXT("delete_pk_u_32")) + + OnInsertResultVecI32String.Broadcast(Context, Args->R); + return true; +} + +bool URemoteReducers::InvokeInsertResultVecI32StringWithArgs(const FReducerEventContext& Context, const FInsertResultVecI32StringArgs& Args) +{ + if (!OnInsertResultVecI32String.IsBound()) { - FDeletePkU32Args Args = ReducerEvent.Reducer.GetAsDeletePkU32(); - Reducers->InvokeDeletePkU32WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertResultVecI32String")); + } + return false; } - if (ReducerName == TEXT("delete_pk_u_32_insert_pk_u_32_two")) + + OnInsertResultVecI32String.Broadcast(Context, Args.R); + return true; +} + +void URemoteReducers::InsertTableHoldsTable(const FOneU8Type& A, const FVecU8Type& B) +{ + if (!Conn) { - FDeletePkU32InsertPkU32TwoArgs Args = ReducerEvent.Reducer.GetAsDeletePkU32InsertPkU32Two(); - Reducers->InvokeDeletePkU32InsertPkU32TwoWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("delete_pk_u_32_two")) - { - FDeletePkU32TwoArgs Args = ReducerEvent.Reducer.GetAsDeletePkU32Two(); - Reducers->InvokeDeletePkU32TwoWithArgs(Context, Args); - return; - } - if (ReducerName == TEXT("delete_pk_u_64")) + + FInsertTableHoldsTableArgs ReducerArgs(A, B); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_table_holds_table"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertTableHoldsTable(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertTableHoldsTable(const FReducerEventContext& Context, const UInsertTableHoldsTableReducer* Args) +{ + if (!OnInsertTableHoldsTable.IsBound()) { - FDeletePkU64Args Args = ReducerEvent.Reducer.GetAsDeletePkU64(); - Reducers->InvokeDeletePkU64WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertTableHoldsTable")); + } + return false; } - if (ReducerName == TEXT("delete_pk_u_8")) + + OnInsertTableHoldsTable.Broadcast(Context, Args->A, Args->B); + return true; +} + +bool URemoteReducers::InvokeInsertTableHoldsTableWithArgs(const FReducerEventContext& Context, const FInsertTableHoldsTableArgs& Args) +{ + if (!OnInsertTableHoldsTable.IsBound()) { - FDeletePkU8Args Args = ReducerEvent.Reducer.GetAsDeletePkU8(); - Reducers->InvokeDeletePkU8WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertTableHoldsTable")); + } + return false; } - if (ReducerName == TEXT("delete_pk_uuid")) + + OnInsertTableHoldsTable.Broadcast(Context, Args.A, Args.B); + return true; +} + +void URemoteReducers::InsertUniqueBool(const bool B, const int32 Data) +{ + if (!Conn) { - FDeletePkUuidArgs Args = ReducerEvent.Reducer.GetAsDeletePkUuid(); - Reducers->InvokeDeletePkUuidWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("delete_unique_bool")) + + FInsertUniqueBoolArgs ReducerArgs(B, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_bool"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueBool(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueBool(const FReducerEventContext& Context, const UInsertUniqueBoolReducer* Args) +{ + if (!OnInsertUniqueBool.IsBound()) { - FDeleteUniqueBoolArgs Args = ReducerEvent.Reducer.GetAsDeleteUniqueBool(); - Reducers->InvokeDeleteUniqueBoolWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueBool")); + } + return false; } - if (ReducerName == TEXT("delete_unique_connection_id")) + + OnInsertUniqueBool.Broadcast(Context, Args->B, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueBoolWithArgs(const FReducerEventContext& Context, const FInsertUniqueBoolArgs& Args) +{ + if (!OnInsertUniqueBool.IsBound()) { - FDeleteUniqueConnectionIdArgs Args = ReducerEvent.Reducer.GetAsDeleteUniqueConnectionId(); - Reducers->InvokeDeleteUniqueConnectionIdWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueBool")); + } + return false; } - if (ReducerName == TEXT("delete_unique_i_128")) + + OnInsertUniqueBool.Broadcast(Context, Args.B, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data) +{ + if (!Conn) { - FDeleteUniqueI128Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueI128(); - Reducers->InvokeDeleteUniqueI128WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("delete_unique_i_16")) + + FInsertUniqueConnectionIdArgs ReducerArgs(A, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_connection_id"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueConnectionId(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueConnectionId(const FReducerEventContext& Context, const UInsertUniqueConnectionIdReducer* Args) +{ + if (!OnInsertUniqueConnectionId.IsBound()) { - FDeleteUniqueI16Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueI16(); - Reducers->InvokeDeleteUniqueI16WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueConnectionId")); + } + return false; } - if (ReducerName == TEXT("delete_unique_i_256")) + + OnInsertUniqueConnectionId.Broadcast(Context, Args->A, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertUniqueConnectionIdArgs& Args) +{ + if (!OnInsertUniqueConnectionId.IsBound()) { - FDeleteUniqueI256Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueI256(); - Reducers->InvokeDeleteUniqueI256WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueConnectionId")); + } + return false; } - if (ReducerName == TEXT("delete_unique_i_32")) + + OnInsertUniqueConnectionId.Broadcast(Context, Args.A, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueI128(const FSpacetimeDBInt128& N, const int32 Data) +{ + if (!Conn) { - FDeleteUniqueI32Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueI32(); - Reducers->InvokeDeleteUniqueI32WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("delete_unique_i_64")) + + FInsertUniqueI128Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_i_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueI128(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueI128(const FReducerEventContext& Context, const UInsertUniqueI128Reducer* Args) +{ + if (!OnInsertUniqueI128.IsBound()) { - FDeleteUniqueI64Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueI64(); - Reducers->InvokeDeleteUniqueI64WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI128")); + } + return false; } - if (ReducerName == TEXT("delete_unique_i_8")) + + OnInsertUniqueI128.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueI128WithArgs(const FReducerEventContext& Context, const FInsertUniqueI128Args& Args) +{ + if (!OnInsertUniqueI128.IsBound()) { - FDeleteUniqueI8Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueI8(); - Reducers->InvokeDeleteUniqueI8WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI128")); + } + return false; } - if (ReducerName == TEXT("delete_unique_identity")) + + OnInsertUniqueI128.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueI16(const int16 N, const int32 Data) +{ + if (!Conn) { - FDeleteUniqueIdentityArgs Args = ReducerEvent.Reducer.GetAsDeleteUniqueIdentity(); - Reducers->InvokeDeleteUniqueIdentityWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("delete_unique_string")) + + FInsertUniqueI16Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_i_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueI16(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueI16(const FReducerEventContext& Context, const UInsertUniqueI16Reducer* Args) +{ + if (!OnInsertUniqueI16.IsBound()) { - FDeleteUniqueStringArgs Args = ReducerEvent.Reducer.GetAsDeleteUniqueString(); - Reducers->InvokeDeleteUniqueStringWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI16")); + } + return false; } - if (ReducerName == TEXT("delete_unique_u_128")) + + OnInsertUniqueI16.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueI16WithArgs(const FReducerEventContext& Context, const FInsertUniqueI16Args& Args) +{ + if (!OnInsertUniqueI16.IsBound()) { - FDeleteUniqueU128Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueU128(); - Reducers->InvokeDeleteUniqueU128WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI16")); + } + return false; } - if (ReducerName == TEXT("delete_unique_u_16")) + + OnInsertUniqueI16.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueI256(const FSpacetimeDBInt256& N, const int32 Data) +{ + if (!Conn) { - FDeleteUniqueU16Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueU16(); - Reducers->InvokeDeleteUniqueU16WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("delete_unique_u_256")) - { - FDeleteUniqueU256Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueU256(); - Reducers->InvokeDeleteUniqueU256WithArgs(Context, Args); - return; - } - if (ReducerName == TEXT("delete_unique_u_32")) + + FInsertUniqueI256Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_i_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueI256(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueI256(const FReducerEventContext& Context, const UInsertUniqueI256Reducer* Args) +{ + if (!OnInsertUniqueI256.IsBound()) { - FDeleteUniqueU32Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueU32(); - Reducers->InvokeDeleteUniqueU32WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI256")); + } + return false; } - if (ReducerName == TEXT("delete_unique_u_64")) + + OnInsertUniqueI256.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueI256WithArgs(const FReducerEventContext& Context, const FInsertUniqueI256Args& Args) +{ + if (!OnInsertUniqueI256.IsBound()) { - FDeleteUniqueU64Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueU64(); - Reducers->InvokeDeleteUniqueU64WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI256")); + } + return false; } - if (ReducerName == TEXT("delete_unique_u_8")) + + OnInsertUniqueI256.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueI32(const int32 N, const int32 Data) +{ + if (!Conn) { - FDeleteUniqueU8Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueU8(); - Reducers->InvokeDeleteUniqueU8WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("delete_unique_uuid")) + + FInsertUniqueI32Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueI32(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueI32(const FReducerEventContext& Context, const UInsertUniqueI32Reducer* Args) +{ + if (!OnInsertUniqueI32.IsBound()) { - FDeleteUniqueUuidArgs Args = ReducerEvent.Reducer.GetAsDeleteUniqueUuid(); - Reducers->InvokeDeleteUniqueUuidWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI32")); + } + return false; } - if (ReducerName == TEXT("insert_call_timestamp")) + + OnInsertUniqueI32.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueI32WithArgs(const FReducerEventContext& Context, const FInsertUniqueI32Args& Args) +{ + if (!OnInsertUniqueI32.IsBound()) { - FInsertCallTimestampArgs Args = ReducerEvent.Reducer.GetAsInsertCallTimestamp(); - Reducers->InvokeInsertCallTimestampWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI32")); + } + return false; } - if (ReducerName == TEXT("insert_call_uuid_v_4")) + + OnInsertUniqueI32.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueI64(const int64 N, const int32 Data) +{ + if (!Conn) { - FInsertCallUuidV4Args Args = ReducerEvent.Reducer.GetAsInsertCallUuidV4(); - Reducers->InvokeInsertCallUuidV4WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_call_uuid_v_7")) + + FInsertUniqueI64Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_i_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueI64(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueI64(const FReducerEventContext& Context, const UInsertUniqueI64Reducer* Args) +{ + if (!OnInsertUniqueI64.IsBound()) { - FInsertCallUuidV7Args Args = ReducerEvent.Reducer.GetAsInsertCallUuidV7(); - Reducers->InvokeInsertCallUuidV7WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI64")); + } + return false; } - if (ReducerName == TEXT("insert_caller_one_connection_id")) + + OnInsertUniqueI64.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueI64WithArgs(const FReducerEventContext& Context, const FInsertUniqueI64Args& Args) +{ + if (!OnInsertUniqueI64.IsBound()) { - FInsertCallerOneConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertCallerOneConnectionId(); - Reducers->InvokeInsertCallerOneConnectionIdWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI64")); + } + return false; } - if (ReducerName == TEXT("insert_caller_one_identity")) + + OnInsertUniqueI64.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueI8(const int8 N, const int32 Data) +{ + if (!Conn) { - FInsertCallerOneIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertCallerOneIdentity(); - Reducers->InvokeInsertCallerOneIdentityWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_caller_pk_connection_id")) + + FInsertUniqueI8Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_i_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueI8(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueI8(const FReducerEventContext& Context, const UInsertUniqueI8Reducer* Args) +{ + if (!OnInsertUniqueI8.IsBound()) { - FInsertCallerPkConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertCallerPkConnectionId(); - Reducers->InvokeInsertCallerPkConnectionIdWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI8")); + } + return false; } - if (ReducerName == TEXT("insert_caller_pk_identity")) + + OnInsertUniqueI8.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueI8WithArgs(const FReducerEventContext& Context, const FInsertUniqueI8Args& Args) +{ + if (!OnInsertUniqueI8.IsBound()) { - FInsertCallerPkIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertCallerPkIdentity(); - Reducers->InvokeInsertCallerPkIdentityWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueI8")); + } + return false; } - if (ReducerName == TEXT("insert_caller_unique_connection_id")) + + OnInsertUniqueI8.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueIdentity(const FSpacetimeDBIdentity& I, const int32 Data) +{ + if (!Conn) { - FInsertCallerUniqueConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertCallerUniqueConnectionId(); - Reducers->InvokeInsertCallerUniqueConnectionIdWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_caller_unique_identity")) + + FInsertUniqueIdentityArgs ReducerArgs(I, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueIdentity(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueIdentity(const FReducerEventContext& Context, const UInsertUniqueIdentityReducer* Args) +{ + if (!OnInsertUniqueIdentity.IsBound()) { - FInsertCallerUniqueIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertCallerUniqueIdentity(); - Reducers->InvokeInsertCallerUniqueIdentityWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueIdentity")); + } + return false; } - if (ReducerName == TEXT("insert_caller_vec_connection_id")) + + OnInsertUniqueIdentity.Broadcast(Context, Args->I, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueIdentityWithArgs(const FReducerEventContext& Context, const FInsertUniqueIdentityArgs& Args) +{ + if (!OnInsertUniqueIdentity.IsBound()) { - FInsertCallerVecConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertCallerVecConnectionId(); - Reducers->InvokeInsertCallerVecConnectionIdWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueIdentity")); + } + return false; } - if (ReducerName == TEXT("insert_caller_vec_identity")) + + OnInsertUniqueIdentity.Broadcast(Context, Args.I, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueString(const FString& S, const int32 Data) +{ + if (!Conn) { - FInsertCallerVecIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertCallerVecIdentity(); - Reducers->InvokeInsertCallerVecIdentityWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_into_btree_u_32")) - { - FInsertIntoBtreeU32Args Args = ReducerEvent.Reducer.GetAsInsertIntoBtreeU32(); - Reducers->InvokeInsertIntoBtreeU32WithArgs(Context, Args); - return; - } - if (ReducerName == TEXT("insert_into_indexed_simple_enum")) + + FInsertUniqueStringArgs ReducerArgs(S, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueString(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueString(const FReducerEventContext& Context, const UInsertUniqueStringReducer* Args) +{ + if (!OnInsertUniqueString.IsBound()) { - FInsertIntoIndexedSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsInsertIntoIndexedSimpleEnum(); - Reducers->InvokeInsertIntoIndexedSimpleEnumWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueString")); + } + return false; } - if (ReducerName == TEXT("insert_into_pk_btree_u_32")) + + OnInsertUniqueString.Broadcast(Context, Args->S, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueStringWithArgs(const FReducerEventContext& Context, const FInsertUniqueStringArgs& Args) +{ + if (!OnInsertUniqueString.IsBound()) { - FInsertIntoPkBtreeU32Args Args = ReducerEvent.Reducer.GetAsInsertIntoPkBtreeU32(); - Reducers->InvokeInsertIntoPkBtreeU32WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueString")); + } + return false; } - if (ReducerName == TEXT("insert_large_table")) + + OnInsertUniqueString.Broadcast(Context, Args.S, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueU128(const FSpacetimeDBUInt128& N, const int32 Data) +{ + if (!Conn) { - FInsertLargeTableArgs Args = ReducerEvent.Reducer.GetAsInsertLargeTable(); - Reducers->InvokeInsertLargeTableWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_one_bool")) + + FInsertUniqueU128Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_u_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueU128(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueU128(const FReducerEventContext& Context, const UInsertUniqueU128Reducer* Args) +{ + if (!OnInsertUniqueU128.IsBound()) { - FInsertOneBoolArgs Args = ReducerEvent.Reducer.GetAsInsertOneBool(); - Reducers->InvokeInsertOneBoolWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU128")); + } + return false; } - if (ReducerName == TEXT("insert_one_byte_struct")) + + OnInsertUniqueU128.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueU128WithArgs(const FReducerEventContext& Context, const FInsertUniqueU128Args& Args) +{ + if (!OnInsertUniqueU128.IsBound()) { - FInsertOneByteStructArgs Args = ReducerEvent.Reducer.GetAsInsertOneByteStruct(); - Reducers->InvokeInsertOneByteStructWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU128")); + } + return false; } - if (ReducerName == TEXT("insert_one_connection_id")) + + OnInsertUniqueU128.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueU16(const uint16 N, const int32 Data) +{ + if (!Conn) { - FInsertOneConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertOneConnectionId(); - Reducers->InvokeInsertOneConnectionIdWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_one_enum_with_payload")) + + FInsertUniqueU16Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_u_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueU16(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueU16(const FReducerEventContext& Context, const UInsertUniqueU16Reducer* Args) +{ + if (!OnInsertUniqueU16.IsBound()) { - FInsertOneEnumWithPayloadArgs Args = ReducerEvent.Reducer.GetAsInsertOneEnumWithPayload(); - Reducers->InvokeInsertOneEnumWithPayloadWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU16")); + } + return false; } - if (ReducerName == TEXT("insert_one_every_primitive_struct")) + + OnInsertUniqueU16.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueU16WithArgs(const FReducerEventContext& Context, const FInsertUniqueU16Args& Args) +{ + if (!OnInsertUniqueU16.IsBound()) { - FInsertOneEveryPrimitiveStructArgs Args = ReducerEvent.Reducer.GetAsInsertOneEveryPrimitiveStruct(); - Reducers->InvokeInsertOneEveryPrimitiveStructWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU16")); + } + return false; } - if (ReducerName == TEXT("insert_one_every_vec_struct")) + + OnInsertUniqueU16.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueU256(const FSpacetimeDBUInt256& N, const int32 Data) +{ + if (!Conn) { - FInsertOneEveryVecStructArgs Args = ReducerEvent.Reducer.GetAsInsertOneEveryVecStruct(); - Reducers->InvokeInsertOneEveryVecStructWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_one_f_32")) + + FInsertUniqueU256Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_u_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueU256(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueU256(const FReducerEventContext& Context, const UInsertUniqueU256Reducer* Args) +{ + if (!OnInsertUniqueU256.IsBound()) { - FInsertOneF32Args Args = ReducerEvent.Reducer.GetAsInsertOneF32(); - Reducers->InvokeInsertOneF32WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU256")); + } + return false; } - if (ReducerName == TEXT("insert_one_f_64")) + + OnInsertUniqueU256.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueU256WithArgs(const FReducerEventContext& Context, const FInsertUniqueU256Args& Args) +{ + if (!OnInsertUniqueU256.IsBound()) { - FInsertOneF64Args Args = ReducerEvent.Reducer.GetAsInsertOneF64(); - Reducers->InvokeInsertOneF64WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU256")); + } + return false; } - if (ReducerName == TEXT("insert_one_i_128")) + + OnInsertUniqueU256.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueU32(const uint32 N, const int32 Data) +{ + if (!Conn) { - FInsertOneI128Args Args = ReducerEvent.Reducer.GetAsInsertOneI128(); - Reducers->InvokeInsertOneI128WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_one_i_16")) + + FInsertUniqueU32Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueU32(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueU32(const FReducerEventContext& Context, const UInsertUniqueU32Reducer* Args) +{ + if (!OnInsertUniqueU32.IsBound()) { - FInsertOneI16Args Args = ReducerEvent.Reducer.GetAsInsertOneI16(); - Reducers->InvokeInsertOneI16WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU32")); + } + return false; } - if (ReducerName == TEXT("insert_one_i_256")) + + OnInsertUniqueU32.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueU32WithArgs(const FReducerEventContext& Context, const FInsertUniqueU32Args& Args) +{ + if (!OnInsertUniqueU32.IsBound()) { - FInsertOneI256Args Args = ReducerEvent.Reducer.GetAsInsertOneI256(); - Reducers->InvokeInsertOneI256WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU32")); + } + return false; } - if (ReducerName == TEXT("insert_one_i_32")) + + OnInsertUniqueU32.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueU32UpdatePkU32(const uint32 N, const int32 DUnique, const int32 DPk) +{ + if (!Conn) { - FInsertOneI32Args Args = ReducerEvent.Reducer.GetAsInsertOneI32(); - Reducers->InvokeInsertOneI32WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_one_i_64")) - { - FInsertOneI64Args Args = ReducerEvent.Reducer.GetAsInsertOneI64(); - Reducers->InvokeInsertOneI64WithArgs(Context, Args); - return; - } - if (ReducerName == TEXT("insert_one_i_8")) + + FInsertUniqueU32UpdatePkU32Args ReducerArgs(N, DUnique, DPk); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_u_32_update_pk_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueU32UpdatePkU32(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueU32UpdatePkU32(const FReducerEventContext& Context, const UInsertUniqueU32UpdatePkU32Reducer* Args) +{ + if (!OnInsertUniqueU32UpdatePkU32.IsBound()) { - FInsertOneI8Args Args = ReducerEvent.Reducer.GetAsInsertOneI8(); - Reducers->InvokeInsertOneI8WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU32UpdatePkU32")); + } + return false; } - if (ReducerName == TEXT("insert_one_identity")) + + OnInsertUniqueU32UpdatePkU32.Broadcast(Context, Args->N, Args->DUnique, Args->DPk); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueU32UpdatePkU32WithArgs(const FReducerEventContext& Context, const FInsertUniqueU32UpdatePkU32Args& Args) +{ + if (!OnInsertUniqueU32UpdatePkU32.IsBound()) { - FInsertOneIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertOneIdentity(); - Reducers->InvokeInsertOneIdentityWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU32UpdatePkU32")); + } + return false; } - if (ReducerName == TEXT("insert_one_simple_enum")) + + OnInsertUniqueU32UpdatePkU32.Broadcast(Context, Args.N, Args.DUnique, Args.DPk); + return true; +} + +void URemoteReducers::InsertUniqueU64(const uint64 N, const int32 Data) +{ + if (!Conn) { - FInsertOneSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsInsertOneSimpleEnum(); - Reducers->InvokeInsertOneSimpleEnumWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_one_string")) + + FInsertUniqueU64Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_u_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueU64(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueU64(const FReducerEventContext& Context, const UInsertUniqueU64Reducer* Args) +{ + if (!OnInsertUniqueU64.IsBound()) { - FInsertOneStringArgs Args = ReducerEvent.Reducer.GetAsInsertOneString(); - Reducers->InvokeInsertOneStringWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU64")); + } + return false; } - if (ReducerName == TEXT("insert_one_timestamp")) + + OnInsertUniqueU64.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueU64WithArgs(const FReducerEventContext& Context, const FInsertUniqueU64Args& Args) +{ + if (!OnInsertUniqueU64.IsBound()) { - FInsertOneTimestampArgs Args = ReducerEvent.Reducer.GetAsInsertOneTimestamp(); - Reducers->InvokeInsertOneTimestampWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU64")); + } + return false; } - if (ReducerName == TEXT("insert_one_u_128")) + + OnInsertUniqueU64.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueU8(const uint8 N, const int32 Data) +{ + if (!Conn) { - FInsertOneU128Args Args = ReducerEvent.Reducer.GetAsInsertOneU128(); - Reducers->InvokeInsertOneU128WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_one_u_16")) + + FInsertUniqueU8Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_u_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueU8(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueU8(const FReducerEventContext& Context, const UInsertUniqueU8Reducer* Args) +{ + if (!OnInsertUniqueU8.IsBound()) { - FInsertOneU16Args Args = ReducerEvent.Reducer.GetAsInsertOneU16(); - Reducers->InvokeInsertOneU16WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU8")); + } + return false; } - if (ReducerName == TEXT("insert_one_u_256")) + + OnInsertUniqueU8.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueU8WithArgs(const FReducerEventContext& Context, const FInsertUniqueU8Args& Args) +{ + if (!OnInsertUniqueU8.IsBound()) { - FInsertOneU256Args Args = ReducerEvent.Reducer.GetAsInsertOneU256(); - Reducers->InvokeInsertOneU256WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueU8")); + } + return false; } - if (ReducerName == TEXT("insert_one_u_32")) + + OnInsertUniqueU8.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::InsertUniqueUuid(const FSpacetimeDBUuid& U, const int32 Data) +{ + if (!Conn) { - FInsertOneU32Args Args = ReducerEvent.Reducer.GetAsInsertOneU32(); - Reducers->InvokeInsertOneU32WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_one_u_64")) + + FInsertUniqueUuidArgs ReducerArgs(U, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_unique_uuid"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUniqueUuid(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUniqueUuid(const FReducerEventContext& Context, const UInsertUniqueUuidReducer* Args) +{ + if (!OnInsertUniqueUuid.IsBound()) { - FInsertOneU64Args Args = ReducerEvent.Reducer.GetAsInsertOneU64(); - Reducers->InvokeInsertOneU64WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueUuid")); + } + return false; } - if (ReducerName == TEXT("insert_one_u_8")) + + OnInsertUniqueUuid.Broadcast(Context, Args->U, Args->Data); + return true; +} + +bool URemoteReducers::InvokeInsertUniqueUuidWithArgs(const FReducerEventContext& Context, const FInsertUniqueUuidArgs& Args) +{ + if (!OnInsertUniqueUuid.IsBound()) { - FInsertOneU8Args Args = ReducerEvent.Reducer.GetAsInsertOneU8(); - Reducers->InvokeInsertOneU8WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUniqueUuid")); + } + return false; } - if (ReducerName == TEXT("insert_one_unit_struct")) + + OnInsertUniqueUuid.Broadcast(Context, Args.U, Args.Data); + return true; +} + +void URemoteReducers::InsertUser(const FString& Name, const FSpacetimeDBIdentity& Identity) +{ + if (!Conn) { - FInsertOneUnitStructArgs Args = ReducerEvent.Reducer.GetAsInsertOneUnitStruct(); - Reducers->InvokeInsertOneUnitStructWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_one_uuid")) + + FInsertUserArgs ReducerArgs(Name, Identity); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_user"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertUser(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertUser(const FReducerEventContext& Context, const UInsertUserReducer* Args) +{ + if (!OnInsertUser.IsBound()) { - FInsertOneUuidArgs Args = ReducerEvent.Reducer.GetAsInsertOneUuid(); - Reducers->InvokeInsertOneUuidWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUser")); + } + return false; } - if (ReducerName == TEXT("insert_option_every_primitive_struct")) + + OnInsertUser.Broadcast(Context, Args->Name, Args->Identity); + return true; +} + +bool URemoteReducers::InvokeInsertUserWithArgs(const FReducerEventContext& Context, const FInsertUserArgs& Args) +{ + if (!OnInsertUser.IsBound()) { - FInsertOptionEveryPrimitiveStructArgs Args = ReducerEvent.Reducer.GetAsInsertOptionEveryPrimitiveStruct(); - Reducers->InvokeInsertOptionEveryPrimitiveStructWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertUser")); + } + return false; } - if (ReducerName == TEXT("insert_option_i_32")) + + OnInsertUser.Broadcast(Context, Args.Name, Args.Identity); + return true; +} + +void URemoteReducers::InsertVecBool(const TArray& B) +{ + if (!Conn) { - FInsertOptionI32Args Args = ReducerEvent.Reducer.GetAsInsertOptionI32(); - Reducers->InvokeInsertOptionI32WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_option_identity")) - { - FInsertOptionIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertOptionIdentity(); - Reducers->InvokeInsertOptionIdentityWithArgs(Context, Args); - return; - } - if (ReducerName == TEXT("insert_option_simple_enum")) + + FInsertVecBoolArgs ReducerArgs(B); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_bool"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecBool(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecBool(const FReducerEventContext& Context, const UInsertVecBoolReducer* Args) +{ + if (!OnInsertVecBool.IsBound()) { - FInsertOptionSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsInsertOptionSimpleEnum(); - Reducers->InvokeInsertOptionSimpleEnumWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecBool")); + } + return false; } - if (ReducerName == TEXT("insert_option_string")) + + OnInsertVecBool.Broadcast(Context, Args->B); + return true; +} + +bool URemoteReducers::InvokeInsertVecBoolWithArgs(const FReducerEventContext& Context, const FInsertVecBoolArgs& Args) +{ + if (!OnInsertVecBool.IsBound()) { - FInsertOptionStringArgs Args = ReducerEvent.Reducer.GetAsInsertOptionString(); - Reducers->InvokeInsertOptionStringWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecBool")); + } + return false; } - if (ReducerName == TEXT("insert_option_uuid")) + + OnInsertVecBool.Broadcast(Context, Args.B); + return true; +} + +void URemoteReducers::InsertVecByteStruct(const TArray& S) +{ + if (!Conn) { - FInsertOptionUuidArgs Args = ReducerEvent.Reducer.GetAsInsertOptionUuid(); - Reducers->InvokeInsertOptionUuidWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_option_vec_option_i_32")) + + FInsertVecByteStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_byte_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecByteStruct(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecByteStruct(const FReducerEventContext& Context, const UInsertVecByteStructReducer* Args) +{ + if (!OnInsertVecByteStruct.IsBound()) { - FInsertOptionVecOptionI32Args Args = ReducerEvent.Reducer.GetAsInsertOptionVecOptionI32(); - Reducers->InvokeInsertOptionVecOptionI32WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecByteStruct")); + } + return false; } - if (ReducerName == TEXT("insert_pk_bool")) + + OnInsertVecByteStruct.Broadcast(Context, Args->S); + return true; +} + +bool URemoteReducers::InvokeInsertVecByteStructWithArgs(const FReducerEventContext& Context, const FInsertVecByteStructArgs& Args) +{ + if (!OnInsertVecByteStruct.IsBound()) { - FInsertPkBoolArgs Args = ReducerEvent.Reducer.GetAsInsertPkBool(); - Reducers->InvokeInsertPkBoolWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecByteStruct")); + } + return false; } - if (ReducerName == TEXT("insert_pk_connection_id")) + + OnInsertVecByteStruct.Broadcast(Context, Args.S); + return true; +} + +void URemoteReducers::InsertVecConnectionId(const TArray& A) +{ + if (!Conn) { - FInsertPkConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertPkConnectionId(); - Reducers->InvokeInsertPkConnectionIdWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_pk_i_128")) + + FInsertVecConnectionIdArgs ReducerArgs(A); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_connection_id"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecConnectionId(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecConnectionId(const FReducerEventContext& Context, const UInsertVecConnectionIdReducer* Args) +{ + if (!OnInsertVecConnectionId.IsBound()) { - FInsertPkI128Args Args = ReducerEvent.Reducer.GetAsInsertPkI128(); - Reducers->InvokeInsertPkI128WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecConnectionId")); + } + return false; } - if (ReducerName == TEXT("insert_pk_i_16")) + + OnInsertVecConnectionId.Broadcast(Context, Args->A); + return true; +} + +bool URemoteReducers::InvokeInsertVecConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertVecConnectionIdArgs& Args) +{ + if (!OnInsertVecConnectionId.IsBound()) { - FInsertPkI16Args Args = ReducerEvent.Reducer.GetAsInsertPkI16(); - Reducers->InvokeInsertPkI16WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecConnectionId")); + } + return false; } - if (ReducerName == TEXT("insert_pk_i_256")) + + OnInsertVecConnectionId.Broadcast(Context, Args.A); + return true; +} + +void URemoteReducers::InsertVecEnumWithPayload(const TArray& E) +{ + if (!Conn) { - FInsertPkI256Args Args = ReducerEvent.Reducer.GetAsInsertPkI256(); - Reducers->InvokeInsertPkI256WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_pk_i_32")) + + FInsertVecEnumWithPayloadArgs ReducerArgs(E); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_enum_with_payload"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecEnumWithPayload(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecEnumWithPayload(const FReducerEventContext& Context, const UInsertVecEnumWithPayloadReducer* Args) +{ + if (!OnInsertVecEnumWithPayload.IsBound()) { - FInsertPkI32Args Args = ReducerEvent.Reducer.GetAsInsertPkI32(); - Reducers->InvokeInsertPkI32WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecEnumWithPayload")); + } + return false; } - if (ReducerName == TEXT("insert_pk_i_64")) + + OnInsertVecEnumWithPayload.Broadcast(Context, Args->E); + return true; +} + +bool URemoteReducers::InvokeInsertVecEnumWithPayloadWithArgs(const FReducerEventContext& Context, const FInsertVecEnumWithPayloadArgs& Args) +{ + if (!OnInsertVecEnumWithPayload.IsBound()) { - FInsertPkI64Args Args = ReducerEvent.Reducer.GetAsInsertPkI64(); - Reducers->InvokeInsertPkI64WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecEnumWithPayload")); + } + return false; } - if (ReducerName == TEXT("insert_pk_i_8")) + + OnInsertVecEnumWithPayload.Broadcast(Context, Args.E); + return true; +} + +void URemoteReducers::InsertVecEveryPrimitiveStruct(const TArray& S) +{ + if (!Conn) { - FInsertPkI8Args Args = ReducerEvent.Reducer.GetAsInsertPkI8(); - Reducers->InvokeInsertPkI8WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_pk_identity")) + + FInsertVecEveryPrimitiveStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_every_primitive_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecEveryPrimitiveStruct(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecEveryPrimitiveStruct(const FReducerEventContext& Context, const UInsertVecEveryPrimitiveStructReducer* Args) +{ + if (!OnInsertVecEveryPrimitiveStruct.IsBound()) { - FInsertPkIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertPkIdentity(); - Reducers->InvokeInsertPkIdentityWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecEveryPrimitiveStruct")); + } + return false; } - if (ReducerName == TEXT("insert_pk_simple_enum")) + + OnInsertVecEveryPrimitiveStruct.Broadcast(Context, Args->S); + return true; +} + +bool URemoteReducers::InvokeInsertVecEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FInsertVecEveryPrimitiveStructArgs& Args) +{ + if (!OnInsertVecEveryPrimitiveStruct.IsBound()) { - FInsertPkSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsInsertPkSimpleEnum(); - Reducers->InvokeInsertPkSimpleEnumWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecEveryPrimitiveStruct")); + } + return false; } - if (ReducerName == TEXT("insert_pk_string")) + + OnInsertVecEveryPrimitiveStruct.Broadcast(Context, Args.S); + return true; +} + +void URemoteReducers::InsertVecEveryVecStruct(const TArray& S) +{ + if (!Conn) { - FInsertPkStringArgs Args = ReducerEvent.Reducer.GetAsInsertPkString(); - Reducers->InvokeInsertPkStringWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_pk_u_128")) - { - FInsertPkU128Args Args = ReducerEvent.Reducer.GetAsInsertPkU128(); - Reducers->InvokeInsertPkU128WithArgs(Context, Args); - return; - } - if (ReducerName == TEXT("insert_pk_u_16")) + + FInsertVecEveryVecStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_every_vec_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecEveryVecStruct(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecEveryVecStruct(const FReducerEventContext& Context, const UInsertVecEveryVecStructReducer* Args) +{ + if (!OnInsertVecEveryVecStruct.IsBound()) { - FInsertPkU16Args Args = ReducerEvent.Reducer.GetAsInsertPkU16(); - Reducers->InvokeInsertPkU16WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecEveryVecStruct")); + } + return false; } - if (ReducerName == TEXT("insert_pk_u_256")) + + OnInsertVecEveryVecStruct.Broadcast(Context, Args->S); + return true; +} + +bool URemoteReducers::InvokeInsertVecEveryVecStructWithArgs(const FReducerEventContext& Context, const FInsertVecEveryVecStructArgs& Args) +{ + if (!OnInsertVecEveryVecStruct.IsBound()) { - FInsertPkU256Args Args = ReducerEvent.Reducer.GetAsInsertPkU256(); - Reducers->InvokeInsertPkU256WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecEveryVecStruct")); + } + return false; } - if (ReducerName == TEXT("insert_pk_u_32")) + + OnInsertVecEveryVecStruct.Broadcast(Context, Args.S); + return true; +} + +void URemoteReducers::InsertVecF32(const TArray& F) +{ + if (!Conn) { - FInsertPkU32Args Args = ReducerEvent.Reducer.GetAsInsertPkU32(); - Reducers->InvokeInsertPkU32WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_pk_u_32_two")) + + FInsertVecF32Args ReducerArgs(F); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_f_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecF32(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecF32(const FReducerEventContext& Context, const UInsertVecF32Reducer* Args) +{ + if (!OnInsertVecF32.IsBound()) { - FInsertPkU32TwoArgs Args = ReducerEvent.Reducer.GetAsInsertPkU32Two(); - Reducers->InvokeInsertPkU32TwoWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecF32")); + } + return false; } - if (ReducerName == TEXT("insert_pk_u_64")) + + OnInsertVecF32.Broadcast(Context, Args->F); + return true; +} + +bool URemoteReducers::InvokeInsertVecF32WithArgs(const FReducerEventContext& Context, const FInsertVecF32Args& Args) +{ + if (!OnInsertVecF32.IsBound()) { - FInsertPkU64Args Args = ReducerEvent.Reducer.GetAsInsertPkU64(); - Reducers->InvokeInsertPkU64WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecF32")); + } + return false; } - if (ReducerName == TEXT("insert_pk_u_8")) + + OnInsertVecF32.Broadcast(Context, Args.F); + return true; +} + +void URemoteReducers::InsertVecF64(const TArray& F) +{ + if (!Conn) { - FInsertPkU8Args Args = ReducerEvent.Reducer.GetAsInsertPkU8(); - Reducers->InvokeInsertPkU8WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_pk_uuid")) + + FInsertVecF64Args ReducerArgs(F); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_f_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecF64(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecF64(const FReducerEventContext& Context, const UInsertVecF64Reducer* Args) +{ + if (!OnInsertVecF64.IsBound()) { - FInsertPkUuidArgs Args = ReducerEvent.Reducer.GetAsInsertPkUuid(); - Reducers->InvokeInsertPkUuidWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecF64")); + } + return false; } - if (ReducerName == TEXT("insert_primitives_as_strings")) + + OnInsertVecF64.Broadcast(Context, Args->F); + return true; +} + +bool URemoteReducers::InvokeInsertVecF64WithArgs(const FReducerEventContext& Context, const FInsertVecF64Args& Args) +{ + if (!OnInsertVecF64.IsBound()) { - FInsertPrimitivesAsStringsArgs Args = ReducerEvent.Reducer.GetAsInsertPrimitivesAsStrings(); - Reducers->InvokeInsertPrimitivesAsStringsWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecF64")); + } + return false; } - if (ReducerName == TEXT("insert_result_every_primitive_struct_string")) + + OnInsertVecF64.Broadcast(Context, Args.F); + return true; +} + +void URemoteReducers::InsertVecI128(const TArray& N) +{ + if (!Conn) { - FInsertResultEveryPrimitiveStructStringArgs Args = ReducerEvent.Reducer.GetAsInsertResultEveryPrimitiveStructString(); - Reducers->InvokeInsertResultEveryPrimitiveStructStringWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_result_i_32_string")) + + FInsertVecI128Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_i_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecI128(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecI128(const FReducerEventContext& Context, const UInsertVecI128Reducer* Args) +{ + if (!OnInsertVecI128.IsBound()) { - FInsertResultI32StringArgs Args = ReducerEvent.Reducer.GetAsInsertResultI32String(); - Reducers->InvokeInsertResultI32StringWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI128")); + } + return false; } - if (ReducerName == TEXT("insert_result_identity_string")) + + OnInsertVecI128.Broadcast(Context, Args->N); + return true; +} + +bool URemoteReducers::InvokeInsertVecI128WithArgs(const FReducerEventContext& Context, const FInsertVecI128Args& Args) +{ + if (!OnInsertVecI128.IsBound()) { - FInsertResultIdentityStringArgs Args = ReducerEvent.Reducer.GetAsInsertResultIdentityString(); - Reducers->InvokeInsertResultIdentityStringWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI128")); + } + return false; } - if (ReducerName == TEXT("insert_result_simple_enum_i_32")) + + OnInsertVecI128.Broadcast(Context, Args.N); + return true; +} + +void URemoteReducers::InsertVecI16(const TArray& N) +{ + if (!Conn) { - FInsertResultSimpleEnumI32Args Args = ReducerEvent.Reducer.GetAsInsertResultSimpleEnumI32(); - Reducers->InvokeInsertResultSimpleEnumI32WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_result_string_i_32")) + + FInsertVecI16Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_i_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecI16(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecI16(const FReducerEventContext& Context, const UInsertVecI16Reducer* Args) +{ + if (!OnInsertVecI16.IsBound()) { - FInsertResultStringI32Args Args = ReducerEvent.Reducer.GetAsInsertResultStringI32(); - Reducers->InvokeInsertResultStringI32WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI16")); + } + return false; } - if (ReducerName == TEXT("insert_result_vec_i_32_string")) + + OnInsertVecI16.Broadcast(Context, Args->N); + return true; +} + +bool URemoteReducers::InvokeInsertVecI16WithArgs(const FReducerEventContext& Context, const FInsertVecI16Args& Args) +{ + if (!OnInsertVecI16.IsBound()) { - FInsertResultVecI32StringArgs Args = ReducerEvent.Reducer.GetAsInsertResultVecI32String(); - Reducers->InvokeInsertResultVecI32StringWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI16")); + } + return false; } - if (ReducerName == TEXT("insert_table_holds_table")) + + OnInsertVecI16.Broadcast(Context, Args.N); + return true; +} + +void URemoteReducers::InsertVecI256(const TArray& N) +{ + if (!Conn) { - FInsertTableHoldsTableArgs Args = ReducerEvent.Reducer.GetAsInsertTableHoldsTable(); - Reducers->InvokeInsertTableHoldsTableWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_unique_bool")) - { - FInsertUniqueBoolArgs Args = ReducerEvent.Reducer.GetAsInsertUniqueBool(); - Reducers->InvokeInsertUniqueBoolWithArgs(Context, Args); - return; - } - if (ReducerName == TEXT("insert_unique_connection_id")) + + FInsertVecI256Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_i_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecI256(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecI256(const FReducerEventContext& Context, const UInsertVecI256Reducer* Args) +{ + if (!OnInsertVecI256.IsBound()) { - FInsertUniqueConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertUniqueConnectionId(); - Reducers->InvokeInsertUniqueConnectionIdWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI256")); + } + return false; } - if (ReducerName == TEXT("insert_unique_i_128")) + + OnInsertVecI256.Broadcast(Context, Args->N); + return true; +} + +bool URemoteReducers::InvokeInsertVecI256WithArgs(const FReducerEventContext& Context, const FInsertVecI256Args& Args) +{ + if (!OnInsertVecI256.IsBound()) { - FInsertUniqueI128Args Args = ReducerEvent.Reducer.GetAsInsertUniqueI128(); - Reducers->InvokeInsertUniqueI128WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI256")); + } + return false; } - if (ReducerName == TEXT("insert_unique_i_16")) + + OnInsertVecI256.Broadcast(Context, Args.N); + return true; +} + +void URemoteReducers::InsertVecI32(const TArray& N) +{ + if (!Conn) { - FInsertUniqueI16Args Args = ReducerEvent.Reducer.GetAsInsertUniqueI16(); - Reducers->InvokeInsertUniqueI16WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_unique_i_256")) + + FInsertVecI32Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecI32(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecI32(const FReducerEventContext& Context, const UInsertVecI32Reducer* Args) +{ + if (!OnInsertVecI32.IsBound()) { - FInsertUniqueI256Args Args = ReducerEvent.Reducer.GetAsInsertUniqueI256(); - Reducers->InvokeInsertUniqueI256WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI32")); + } + return false; } - if (ReducerName == TEXT("insert_unique_i_32")) + + OnInsertVecI32.Broadcast(Context, Args->N); + return true; +} + +bool URemoteReducers::InvokeInsertVecI32WithArgs(const FReducerEventContext& Context, const FInsertVecI32Args& Args) +{ + if (!OnInsertVecI32.IsBound()) { - FInsertUniqueI32Args Args = ReducerEvent.Reducer.GetAsInsertUniqueI32(); - Reducers->InvokeInsertUniqueI32WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI32")); + } + return false; } - if (ReducerName == TEXT("insert_unique_i_64")) + + OnInsertVecI32.Broadcast(Context, Args.N); + return true; +} + +void URemoteReducers::InsertVecI64(const TArray& N) +{ + if (!Conn) { - FInsertUniqueI64Args Args = ReducerEvent.Reducer.GetAsInsertUniqueI64(); - Reducers->InvokeInsertUniqueI64WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_unique_i_8")) + + FInsertVecI64Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_i_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecI64(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecI64(const FReducerEventContext& Context, const UInsertVecI64Reducer* Args) +{ + if (!OnInsertVecI64.IsBound()) { - FInsertUniqueI8Args Args = ReducerEvent.Reducer.GetAsInsertUniqueI8(); - Reducers->InvokeInsertUniqueI8WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI64")); + } + return false; } - if (ReducerName == TEXT("insert_unique_identity")) + + OnInsertVecI64.Broadcast(Context, Args->N); + return true; +} + +bool URemoteReducers::InvokeInsertVecI64WithArgs(const FReducerEventContext& Context, const FInsertVecI64Args& Args) +{ + if (!OnInsertVecI64.IsBound()) { - FInsertUniqueIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertUniqueIdentity(); - Reducers->InvokeInsertUniqueIdentityWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI64")); + } + return false; } - if (ReducerName == TEXT("insert_unique_string")) + + OnInsertVecI64.Broadcast(Context, Args.N); + return true; +} + +void URemoteReducers::InsertVecI8(const TArray& N) +{ + if (!Conn) { - FInsertUniqueStringArgs Args = ReducerEvent.Reducer.GetAsInsertUniqueString(); - Reducers->InvokeInsertUniqueStringWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_unique_u_128")) + + FInsertVecI8Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_i_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecI8(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecI8(const FReducerEventContext& Context, const UInsertVecI8Reducer* Args) +{ + if (!OnInsertVecI8.IsBound()) { - FInsertUniqueU128Args Args = ReducerEvent.Reducer.GetAsInsertUniqueU128(); - Reducers->InvokeInsertUniqueU128WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI8")); + } + return false; } - if (ReducerName == TEXT("insert_unique_u_16")) + + OnInsertVecI8.Broadcast(Context, Args->N); + return true; +} + +bool URemoteReducers::InvokeInsertVecI8WithArgs(const FReducerEventContext& Context, const FInsertVecI8Args& Args) +{ + if (!OnInsertVecI8.IsBound()) { - FInsertUniqueU16Args Args = ReducerEvent.Reducer.GetAsInsertUniqueU16(); - Reducers->InvokeInsertUniqueU16WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecI8")); + } + return false; } - if (ReducerName == TEXT("insert_unique_u_256")) + + OnInsertVecI8.Broadcast(Context, Args.N); + return true; +} + +void URemoteReducers::InsertVecIdentity(const TArray& I) +{ + if (!Conn) { - FInsertUniqueU256Args Args = ReducerEvent.Reducer.GetAsInsertUniqueU256(); - Reducers->InvokeInsertUniqueU256WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_unique_u_32")) + + FInsertVecIdentityArgs ReducerArgs(I); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecIdentity(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecIdentity(const FReducerEventContext& Context, const UInsertVecIdentityReducer* Args) +{ + if (!OnInsertVecIdentity.IsBound()) { - FInsertUniqueU32Args Args = ReducerEvent.Reducer.GetAsInsertUniqueU32(); - Reducers->InvokeInsertUniqueU32WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecIdentity")); + } + return false; } - if (ReducerName == TEXT("insert_unique_u_32_update_pk_u_32")) + + OnInsertVecIdentity.Broadcast(Context, Args->I); + return true; +} + +bool URemoteReducers::InvokeInsertVecIdentityWithArgs(const FReducerEventContext& Context, const FInsertVecIdentityArgs& Args) +{ + if (!OnInsertVecIdentity.IsBound()) { - FInsertUniqueU32UpdatePkU32Args Args = ReducerEvent.Reducer.GetAsInsertUniqueU32UpdatePkU32(); - Reducers->InvokeInsertUniqueU32UpdatePkU32WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecIdentity")); + } + return false; } - if (ReducerName == TEXT("insert_unique_u_64")) + + OnInsertVecIdentity.Broadcast(Context, Args.I); + return true; +} + +void URemoteReducers::InsertVecSimpleEnum(const TArray& E) +{ + if (!Conn) { - FInsertUniqueU64Args Args = ReducerEvent.Reducer.GetAsInsertUniqueU64(); - Reducers->InvokeInsertUniqueU64WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_unique_u_8")) - { - FInsertUniqueU8Args Args = ReducerEvent.Reducer.GetAsInsertUniqueU8(); - Reducers->InvokeInsertUniqueU8WithArgs(Context, Args); - return; - } - if (ReducerName == TEXT("insert_unique_uuid")) + + FInsertVecSimpleEnumArgs ReducerArgs(E); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_simple_enum"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecSimpleEnum(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecSimpleEnum(const FReducerEventContext& Context, const UInsertVecSimpleEnumReducer* Args) +{ + if (!OnInsertVecSimpleEnum.IsBound()) { - FInsertUniqueUuidArgs Args = ReducerEvent.Reducer.GetAsInsertUniqueUuid(); - Reducers->InvokeInsertUniqueUuidWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecSimpleEnum")); + } + return false; } - if (ReducerName == TEXT("insert_user")) + + OnInsertVecSimpleEnum.Broadcast(Context, Args->E); + return true; +} + +bool URemoteReducers::InvokeInsertVecSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertVecSimpleEnumArgs& Args) +{ + if (!OnInsertVecSimpleEnum.IsBound()) { - FInsertUserArgs Args = ReducerEvent.Reducer.GetAsInsertUser(); - Reducers->InvokeInsertUserWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecSimpleEnum")); + } + return false; } - if (ReducerName == TEXT("insert_vec_bool")) + + OnInsertVecSimpleEnum.Broadcast(Context, Args.E); + return true; +} + +void URemoteReducers::InsertVecString(const TArray& S) +{ + if (!Conn) { - FInsertVecBoolArgs Args = ReducerEvent.Reducer.GetAsInsertVecBool(); - Reducers->InvokeInsertVecBoolWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_vec_byte_struct")) + + FInsertVecStringArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecString(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecString(const FReducerEventContext& Context, const UInsertVecStringReducer* Args) +{ + if (!OnInsertVecString.IsBound()) { - FInsertVecByteStructArgs Args = ReducerEvent.Reducer.GetAsInsertVecByteStruct(); - Reducers->InvokeInsertVecByteStructWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecString")); + } + return false; } - if (ReducerName == TEXT("insert_vec_connection_id")) + + OnInsertVecString.Broadcast(Context, Args->S); + return true; +} + +bool URemoteReducers::InvokeInsertVecStringWithArgs(const FReducerEventContext& Context, const FInsertVecStringArgs& Args) +{ + if (!OnInsertVecString.IsBound()) { - FInsertVecConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertVecConnectionId(); - Reducers->InvokeInsertVecConnectionIdWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecString")); + } + return false; } - if (ReducerName == TEXT("insert_vec_enum_with_payload")) + + OnInsertVecString.Broadcast(Context, Args.S); + return true; +} + +void URemoteReducers::InsertVecTimestamp(const TArray& T) +{ + if (!Conn) { - FInsertVecEnumWithPayloadArgs Args = ReducerEvent.Reducer.GetAsInsertVecEnumWithPayload(); - Reducers->InvokeInsertVecEnumWithPayloadWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_vec_every_primitive_struct")) + + FInsertVecTimestampArgs ReducerArgs(T); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_timestamp"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecTimestamp(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecTimestamp(const FReducerEventContext& Context, const UInsertVecTimestampReducer* Args) +{ + if (!OnInsertVecTimestamp.IsBound()) { - FInsertVecEveryPrimitiveStructArgs Args = ReducerEvent.Reducer.GetAsInsertVecEveryPrimitiveStruct(); - Reducers->InvokeInsertVecEveryPrimitiveStructWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecTimestamp")); + } + return false; } - if (ReducerName == TEXT("insert_vec_every_vec_struct")) + + OnInsertVecTimestamp.Broadcast(Context, Args->T); + return true; +} + +bool URemoteReducers::InvokeInsertVecTimestampWithArgs(const FReducerEventContext& Context, const FInsertVecTimestampArgs& Args) +{ + if (!OnInsertVecTimestamp.IsBound()) { - FInsertVecEveryVecStructArgs Args = ReducerEvent.Reducer.GetAsInsertVecEveryVecStruct(); - Reducers->InvokeInsertVecEveryVecStructWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecTimestamp")); + } + return false; } - if (ReducerName == TEXT("insert_vec_f_32")) + + OnInsertVecTimestamp.Broadcast(Context, Args.T); + return true; +} + +void URemoteReducers::InsertVecU128(const TArray& N) +{ + if (!Conn) { - FInsertVecF32Args Args = ReducerEvent.Reducer.GetAsInsertVecF32(); - Reducers->InvokeInsertVecF32WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_vec_f_64")) + + FInsertVecU128Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_u_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecU128(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecU128(const FReducerEventContext& Context, const UInsertVecU128Reducer* Args) +{ + if (!OnInsertVecU128.IsBound()) { - FInsertVecF64Args Args = ReducerEvent.Reducer.GetAsInsertVecF64(); - Reducers->InvokeInsertVecF64WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU128")); + } + return false; } - if (ReducerName == TEXT("insert_vec_i_128")) + + OnInsertVecU128.Broadcast(Context, Args->N); + return true; +} + +bool URemoteReducers::InvokeInsertVecU128WithArgs(const FReducerEventContext& Context, const FInsertVecU128Args& Args) +{ + if (!OnInsertVecU128.IsBound()) { - FInsertVecI128Args Args = ReducerEvent.Reducer.GetAsInsertVecI128(); - Reducers->InvokeInsertVecI128WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU128")); + } + return false; } - if (ReducerName == TEXT("insert_vec_i_16")) + + OnInsertVecU128.Broadcast(Context, Args.N); + return true; +} + +void URemoteReducers::InsertVecU16(const TArray& N) +{ + if (!Conn) { - FInsertVecI16Args Args = ReducerEvent.Reducer.GetAsInsertVecI16(); - Reducers->InvokeInsertVecI16WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_vec_i_256")) + + FInsertVecU16Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_u_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecU16(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecU16(const FReducerEventContext& Context, const UInsertVecU16Reducer* Args) +{ + if (!OnInsertVecU16.IsBound()) { - FInsertVecI256Args Args = ReducerEvent.Reducer.GetAsInsertVecI256(); - Reducers->InvokeInsertVecI256WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU16")); + } + return false; } - if (ReducerName == TEXT("insert_vec_i_32")) + + OnInsertVecU16.Broadcast(Context, Args->N); + return true; +} + +bool URemoteReducers::InvokeInsertVecU16WithArgs(const FReducerEventContext& Context, const FInsertVecU16Args& Args) +{ + if (!OnInsertVecU16.IsBound()) { - FInsertVecI32Args Args = ReducerEvent.Reducer.GetAsInsertVecI32(); - Reducers->InvokeInsertVecI32WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU16")); + } + return false; } - if (ReducerName == TEXT("insert_vec_i_64")) + + OnInsertVecU16.Broadcast(Context, Args.N); + return true; +} + +void URemoteReducers::InsertVecU256(const TArray& N) +{ + if (!Conn) { - FInsertVecI64Args Args = ReducerEvent.Reducer.GetAsInsertVecI64(); - Reducers->InvokeInsertVecI64WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_vec_i_8")) - { - FInsertVecI8Args Args = ReducerEvent.Reducer.GetAsInsertVecI8(); - Reducers->InvokeInsertVecI8WithArgs(Context, Args); - return; - } - if (ReducerName == TEXT("insert_vec_identity")) + + FInsertVecU256Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_u_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecU256(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecU256(const FReducerEventContext& Context, const UInsertVecU256Reducer* Args) +{ + if (!OnInsertVecU256.IsBound()) { - FInsertVecIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertVecIdentity(); - Reducers->InvokeInsertVecIdentityWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU256")); + } + return false; } - if (ReducerName == TEXT("insert_vec_simple_enum")) + + OnInsertVecU256.Broadcast(Context, Args->N); + return true; +} + +bool URemoteReducers::InvokeInsertVecU256WithArgs(const FReducerEventContext& Context, const FInsertVecU256Args& Args) +{ + if (!OnInsertVecU256.IsBound()) { - FInsertVecSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsInsertVecSimpleEnum(); - Reducers->InvokeInsertVecSimpleEnumWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU256")); + } + return false; } - if (ReducerName == TEXT("insert_vec_string")) + + OnInsertVecU256.Broadcast(Context, Args.N); + return true; +} + +void URemoteReducers::InsertVecU32(const TArray& N) +{ + if (!Conn) { - FInsertVecStringArgs Args = ReducerEvent.Reducer.GetAsInsertVecString(); - Reducers->InvokeInsertVecStringWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_vec_timestamp")) + + FInsertVecU32Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecU32(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecU32(const FReducerEventContext& Context, const UInsertVecU32Reducer* Args) +{ + if (!OnInsertVecU32.IsBound()) { - FInsertVecTimestampArgs Args = ReducerEvent.Reducer.GetAsInsertVecTimestamp(); - Reducers->InvokeInsertVecTimestampWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU32")); + } + return false; } - if (ReducerName == TEXT("insert_vec_u_128")) + + OnInsertVecU32.Broadcast(Context, Args->N); + return true; +} + +bool URemoteReducers::InvokeInsertVecU32WithArgs(const FReducerEventContext& Context, const FInsertVecU32Args& Args) +{ + if (!OnInsertVecU32.IsBound()) { - FInsertVecU128Args Args = ReducerEvent.Reducer.GetAsInsertVecU128(); - Reducers->InvokeInsertVecU128WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU32")); + } + return false; } - if (ReducerName == TEXT("insert_vec_u_16")) + + OnInsertVecU32.Broadcast(Context, Args.N); + return true; +} + +void URemoteReducers::InsertVecU64(const TArray& N) +{ + if (!Conn) { - FInsertVecU16Args Args = ReducerEvent.Reducer.GetAsInsertVecU16(); - Reducers->InvokeInsertVecU16WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_vec_u_256")) + + FInsertVecU64Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_u_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecU64(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecU64(const FReducerEventContext& Context, const UInsertVecU64Reducer* Args) +{ + if (!OnInsertVecU64.IsBound()) { - FInsertVecU256Args Args = ReducerEvent.Reducer.GetAsInsertVecU256(); - Reducers->InvokeInsertVecU256WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU64")); + } + return false; } - if (ReducerName == TEXT("insert_vec_u_32")) + + OnInsertVecU64.Broadcast(Context, Args->N); + return true; +} + +bool URemoteReducers::InvokeInsertVecU64WithArgs(const FReducerEventContext& Context, const FInsertVecU64Args& Args) +{ + if (!OnInsertVecU64.IsBound()) { - FInsertVecU32Args Args = ReducerEvent.Reducer.GetAsInsertVecU32(); - Reducers->InvokeInsertVecU32WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU64")); + } + return false; } - if (ReducerName == TEXT("insert_vec_u_64")) + + OnInsertVecU64.Broadcast(Context, Args.N); + return true; +} + +void URemoteReducers::InsertVecU8(const TArray& N) +{ + if (!Conn) { - FInsertVecU64Args Args = ReducerEvent.Reducer.GetAsInsertVecU64(); - Reducers->InvokeInsertVecU64WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("insert_vec_u_8")) + + FInsertVecU8Args ReducerArgs(N); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_u_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecU8(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecU8(const FReducerEventContext& Context, const UInsertVecU8Reducer* Args) +{ + if (!OnInsertVecU8.IsBound()) { - FInsertVecU8Args Args = ReducerEvent.Reducer.GetAsInsertVecU8(); - Reducers->InvokeInsertVecU8WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU8")); + } + return false; } - if (ReducerName == TEXT("insert_vec_unit_struct")) + + OnInsertVecU8.Broadcast(Context, Args->N); + return true; +} + +bool URemoteReducers::InvokeInsertVecU8WithArgs(const FReducerEventContext& Context, const FInsertVecU8Args& Args) +{ + if (!OnInsertVecU8.IsBound()) { - FInsertVecUnitStructArgs Args = ReducerEvent.Reducer.GetAsInsertVecUnitStruct(); - Reducers->InvokeInsertVecUnitStructWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecU8")); + } + return false; } - if (ReducerName == TEXT("insert_vec_uuid")) + + OnInsertVecU8.Broadcast(Context, Args.N); + return true; +} + +void URemoteReducers::InsertVecUnitStruct(const TArray& S) +{ + if (!Conn) { - FInsertVecUuidArgs Args = ReducerEvent.Reducer.GetAsInsertVecUuid(); - Reducers->InvokeInsertVecUuidWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("no_op_succeeds")) + + FInsertVecUnitStructArgs ReducerArgs(S); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_unit_struct"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecUnitStruct(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecUnitStruct(const FReducerEventContext& Context, const UInsertVecUnitStructReducer* Args) +{ + if (!OnInsertVecUnitStruct.IsBound()) { - FNoOpSucceedsArgs Args = ReducerEvent.Reducer.GetAsNoOpSucceeds(); - Reducers->InvokeNoOpSucceedsWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecUnitStruct")); + } + return false; } - if (ReducerName == TEXT("sorted_uuids_insert")) + + OnInsertVecUnitStruct.Broadcast(Context, Args->S); + return true; +} + +bool URemoteReducers::InvokeInsertVecUnitStructWithArgs(const FReducerEventContext& Context, const FInsertVecUnitStructArgs& Args) +{ + if (!OnInsertVecUnitStruct.IsBound()) { - FSortedUuidsInsertArgs Args = ReducerEvent.Reducer.GetAsSortedUuidsInsert(); - Reducers->InvokeSortedUuidsInsertWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecUnitStruct")); + } + return false; } - if (ReducerName == TEXT("update_indexed_simple_enum")) + + OnInsertVecUnitStruct.Broadcast(Context, Args.S); + return true; +} + +void URemoteReducers::InsertVecUuid(const TArray& U) +{ + if (!Conn) { - FUpdateIndexedSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsUpdateIndexedSimpleEnum(); - Reducers->InvokeUpdateIndexedSimpleEnumWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("update_pk_bool")) - { - FUpdatePkBoolArgs Args = ReducerEvent.Reducer.GetAsUpdatePkBool(); - Reducers->InvokeUpdatePkBoolWithArgs(Context, Args); - return; - } - if (ReducerName == TEXT("update_pk_connection_id")) + + FInsertVecUuidArgs ReducerArgs(U); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_vec_uuid"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertVecUuid(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertVecUuid(const FReducerEventContext& Context, const UInsertVecUuidReducer* Args) +{ + if (!OnInsertVecUuid.IsBound()) { - FUpdatePkConnectionIdArgs Args = ReducerEvent.Reducer.GetAsUpdatePkConnectionId(); - Reducers->InvokeUpdatePkConnectionIdWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecUuid")); + } + return false; } - if (ReducerName == TEXT("update_pk_i_128")) + + OnInsertVecUuid.Broadcast(Context, Args->U); + return true; +} + +bool URemoteReducers::InvokeInsertVecUuidWithArgs(const FReducerEventContext& Context, const FInsertVecUuidArgs& Args) +{ + if (!OnInsertVecUuid.IsBound()) { - FUpdatePkI128Args Args = ReducerEvent.Reducer.GetAsUpdatePkI128(); - Reducers->InvokeUpdatePkI128WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertVecUuid")); + } + return false; } - if (ReducerName == TEXT("update_pk_i_16")) + + OnInsertVecUuid.Broadcast(Context, Args.U); + return true; +} + +void URemoteReducers::NoOpSucceeds() +{ + if (!Conn) { - FUpdatePkI16Args Args = ReducerEvent.Reducer.GetAsUpdatePkI16(); - Reducers->InvokeUpdatePkI16WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("update_pk_i_256")) + + FNoOpSucceedsArgs ReducerArgs; + const uint32 RequestId = Conn->CallReducerTyped(TEXT("no_op_succeeds"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::NoOpSucceeds(ReducerArgs)); } +} + +bool URemoteReducers::InvokeNoOpSucceeds(const FReducerEventContext& Context, const UNoOpSucceedsReducer* Args) +{ + if (!OnNoOpSucceeds.IsBound()) { - FUpdatePkI256Args Args = ReducerEvent.Reducer.GetAsUpdatePkI256(); - Reducers->InvokeUpdatePkI256WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for NoOpSucceeds")); + } + return false; } - if (ReducerName == TEXT("update_pk_i_32")) + + OnNoOpSucceeds.Broadcast(Context); + return true; +} + +bool URemoteReducers::InvokeNoOpSucceedsWithArgs(const FReducerEventContext& Context, const FNoOpSucceedsArgs& Args) +{ + if (!OnNoOpSucceeds.IsBound()) { - FUpdatePkI32Args Args = ReducerEvent.Reducer.GetAsUpdatePkI32(); - Reducers->InvokeUpdatePkI32WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for NoOpSucceeds")); + } + return false; } - if (ReducerName == TEXT("update_pk_i_64")) + + OnNoOpSucceeds.Broadcast(Context); + return true; +} + +void URemoteReducers::SortedUuidsInsert() +{ + if (!Conn) { - FUpdatePkI64Args Args = ReducerEvent.Reducer.GetAsUpdatePkI64(); - Reducers->InvokeUpdatePkI64WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("update_pk_i_8")) + + FSortedUuidsInsertArgs ReducerArgs; + const uint32 RequestId = Conn->CallReducerTyped(TEXT("sorted_uuids_insert"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::SortedUuidsInsert(ReducerArgs)); } +} + +bool URemoteReducers::InvokeSortedUuidsInsert(const FReducerEventContext& Context, const USortedUuidsInsertReducer* Args) +{ + if (!OnSortedUuidsInsert.IsBound()) { - FUpdatePkI8Args Args = ReducerEvent.Reducer.GetAsUpdatePkI8(); - Reducers->InvokeUpdatePkI8WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for SortedUuidsInsert")); + } + return false; } - if (ReducerName == TEXT("update_pk_identity")) + + OnSortedUuidsInsert.Broadcast(Context); + return true; +} + +bool URemoteReducers::InvokeSortedUuidsInsertWithArgs(const FReducerEventContext& Context, const FSortedUuidsInsertArgs& Args) +{ + if (!OnSortedUuidsInsert.IsBound()) { - FUpdatePkIdentityArgs Args = ReducerEvent.Reducer.GetAsUpdatePkIdentity(); - Reducers->InvokeUpdatePkIdentityWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for SortedUuidsInsert")); + } + return false; } - if (ReducerName == TEXT("update_pk_simple_enum")) + + OnSortedUuidsInsert.Broadcast(Context); + return true; +} + +void URemoteReducers::UpdateIndexedSimpleEnum(const ESimpleEnumType& A, const ESimpleEnumType& B) +{ + if (!Conn) { - FUpdatePkSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsUpdatePkSimpleEnum(); - Reducers->InvokeUpdatePkSimpleEnumWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("update_pk_string")) + + FUpdateIndexedSimpleEnumArgs ReducerArgs(A, B); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_indexed_simple_enum"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateIndexedSimpleEnum(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateIndexedSimpleEnum(const FReducerEventContext& Context, const UUpdateIndexedSimpleEnumReducer* Args) +{ + if (!OnUpdateIndexedSimpleEnum.IsBound()) { - FUpdatePkStringArgs Args = ReducerEvent.Reducer.GetAsUpdatePkString(); - Reducers->InvokeUpdatePkStringWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateIndexedSimpleEnum")); + } + return false; } - if (ReducerName == TEXT("update_pk_u_128")) + + OnUpdateIndexedSimpleEnum.Broadcast(Context, Args->A, Args->B); + return true; +} + +bool URemoteReducers::InvokeUpdateIndexedSimpleEnumWithArgs(const FReducerEventContext& Context, const FUpdateIndexedSimpleEnumArgs& Args) +{ + if (!OnUpdateIndexedSimpleEnum.IsBound()) { - FUpdatePkU128Args Args = ReducerEvent.Reducer.GetAsUpdatePkU128(); - Reducers->InvokeUpdatePkU128WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateIndexedSimpleEnum")); + } + return false; } - if (ReducerName == TEXT("update_pk_u_16")) + + OnUpdateIndexedSimpleEnum.Broadcast(Context, Args.A, Args.B); + return true; +} + +void URemoteReducers::UpdatePkBool(const bool B, const int32 Data) +{ + if (!Conn) { - FUpdatePkU16Args Args = ReducerEvent.Reducer.GetAsUpdatePkU16(); - Reducers->InvokeUpdatePkU16WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("update_pk_u_256")) + + FUpdatePkBoolArgs ReducerArgs(B, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_bool"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkBool(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdatePkBool(const FReducerEventContext& Context, const UUpdatePkBoolReducer* Args) +{ + if (!OnUpdatePkBool.IsBound()) { - FUpdatePkU256Args Args = ReducerEvent.Reducer.GetAsUpdatePkU256(); - Reducers->InvokeUpdatePkU256WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkBool")); + } + return false; } - if (ReducerName == TEXT("update_pk_u_32")) + + OnUpdatePkBool.Broadcast(Context, Args->B, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdatePkBoolWithArgs(const FReducerEventContext& Context, const FUpdatePkBoolArgs& Args) +{ + if (!OnUpdatePkBool.IsBound()) { - FUpdatePkU32Args Args = ReducerEvent.Reducer.GetAsUpdatePkU32(); - Reducers->InvokeUpdatePkU32WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkBool")); + } + return false; } - if (ReducerName == TEXT("update_pk_u_32_two")) + + OnUpdatePkBool.Broadcast(Context, Args.B, Args.Data); + return true; +} + +void URemoteReducers::UpdatePkConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data) +{ + if (!Conn) { - FUpdatePkU32TwoArgs Args = ReducerEvent.Reducer.GetAsUpdatePkU32Two(); - Reducers->InvokeUpdatePkU32TwoWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("update_pk_u_64")) - { - FUpdatePkU64Args Args = ReducerEvent.Reducer.GetAsUpdatePkU64(); - Reducers->InvokeUpdatePkU64WithArgs(Context, Args); - return; - } - if (ReducerName == TEXT("update_pk_u_8")) + + FUpdatePkConnectionIdArgs ReducerArgs(A, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_connection_id"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkConnectionId(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdatePkConnectionId(const FReducerEventContext& Context, const UUpdatePkConnectionIdReducer* Args) +{ + if (!OnUpdatePkConnectionId.IsBound()) { - FUpdatePkU8Args Args = ReducerEvent.Reducer.GetAsUpdatePkU8(); - Reducers->InvokeUpdatePkU8WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkConnectionId")); + } + return false; } - if (ReducerName == TEXT("update_pk_uuid")) + + OnUpdatePkConnectionId.Broadcast(Context, Args->A, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdatePkConnectionIdWithArgs(const FReducerEventContext& Context, const FUpdatePkConnectionIdArgs& Args) +{ + if (!OnUpdatePkConnectionId.IsBound()) { - FUpdatePkUuidArgs Args = ReducerEvent.Reducer.GetAsUpdatePkUuid(); - Reducers->InvokeUpdatePkUuidWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkConnectionId")); + } + return false; } - if (ReducerName == TEXT("update_unique_bool")) + + OnUpdatePkConnectionId.Broadcast(Context, Args.A, Args.Data); + return true; +} + +void URemoteReducers::UpdatePkI128(const FSpacetimeDBInt128& N, const int32 Data) +{ + if (!Conn) { - FUpdateUniqueBoolArgs Args = ReducerEvent.Reducer.GetAsUpdateUniqueBool(); - Reducers->InvokeUpdateUniqueBoolWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("update_unique_connection_id")) + + FUpdatePkI128Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_i_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkI128(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdatePkI128(const FReducerEventContext& Context, const UUpdatePkI128Reducer* Args) +{ + if (!OnUpdatePkI128.IsBound()) { - FUpdateUniqueConnectionIdArgs Args = ReducerEvent.Reducer.GetAsUpdateUniqueConnectionId(); - Reducers->InvokeUpdateUniqueConnectionIdWithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI128")); + } + return false; } - if (ReducerName == TEXT("update_unique_i_128")) + + OnUpdatePkI128.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdatePkI128WithArgs(const FReducerEventContext& Context, const FUpdatePkI128Args& Args) +{ + if (!OnUpdatePkI128.IsBound()) { - FUpdateUniqueI128Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueI128(); - Reducers->InvokeUpdateUniqueI128WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI128")); + } + return false; } - if (ReducerName == TEXT("update_unique_i_16")) + + OnUpdatePkI128.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdatePkI16(const int16 N, const int32 Data) +{ + if (!Conn) { - FUpdateUniqueI16Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueI16(); - Reducers->InvokeUpdateUniqueI16WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("update_unique_i_256")) + + FUpdatePkI16Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_i_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkI16(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdatePkI16(const FReducerEventContext& Context, const UUpdatePkI16Reducer* Args) +{ + if (!OnUpdatePkI16.IsBound()) { - FUpdateUniqueI256Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueI256(); - Reducers->InvokeUpdateUniqueI256WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI16")); + } + return false; } - if (ReducerName == TEXT("update_unique_i_32")) + + OnUpdatePkI16.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdatePkI16WithArgs(const FReducerEventContext& Context, const FUpdatePkI16Args& Args) +{ + if (!OnUpdatePkI16.IsBound()) { - FUpdateUniqueI32Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueI32(); - Reducers->InvokeUpdateUniqueI32WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI16")); + } + return false; } - if (ReducerName == TEXT("update_unique_i_64")) + + OnUpdatePkI16.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdatePkI256(const FSpacetimeDBInt256& N, const int32 Data) +{ + if (!Conn) { - FUpdateUniqueI64Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueI64(); - Reducers->InvokeUpdateUniqueI64WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("update_unique_i_8")) + + FUpdatePkI256Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_i_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkI256(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdatePkI256(const FReducerEventContext& Context, const UUpdatePkI256Reducer* Args) +{ + if (!OnUpdatePkI256.IsBound()) { - FUpdateUniqueI8Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueI8(); - Reducers->InvokeUpdateUniqueI8WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI256")); + } + return false; } - if (ReducerName == TEXT("update_unique_identity")) + + OnUpdatePkI256.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdatePkI256WithArgs(const FReducerEventContext& Context, const FUpdatePkI256Args& Args) +{ + if (!OnUpdatePkI256.IsBound()) { - FUpdateUniqueIdentityArgs Args = ReducerEvent.Reducer.GetAsUpdateUniqueIdentity(); - Reducers->InvokeUpdateUniqueIdentityWithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI256")); + } + return false; } - if (ReducerName == TEXT("update_unique_string")) + + OnUpdatePkI256.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdatePkI32(const int32 N, const int32 Data) +{ + if (!Conn) { - FUpdateUniqueStringArgs Args = ReducerEvent.Reducer.GetAsUpdateUniqueString(); - Reducers->InvokeUpdateUniqueStringWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("update_unique_u_128")) + + FUpdatePkI32Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkI32(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdatePkI32(const FReducerEventContext& Context, const UUpdatePkI32Reducer* Args) +{ + if (!OnUpdatePkI32.IsBound()) { - FUpdateUniqueU128Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueU128(); - Reducers->InvokeUpdateUniqueU128WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI32")); + } + return false; } - if (ReducerName == TEXT("update_unique_u_16")) + + OnUpdatePkI32.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdatePkI32WithArgs(const FReducerEventContext& Context, const FUpdatePkI32Args& Args) +{ + if (!OnUpdatePkI32.IsBound()) { - FUpdateUniqueU16Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueU16(); - Reducers->InvokeUpdateUniqueU16WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI32")); + } + return false; } - if (ReducerName == TEXT("update_unique_u_256")) + + OnUpdatePkI32.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdatePkI64(const int64 N, const int32 Data) +{ + if (!Conn) { - FUpdateUniqueU256Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueU256(); - Reducers->InvokeUpdateUniqueU256WithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - if (ReducerName == TEXT("update_unique_u_32")) - { - FUpdateUniqueU32Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueU32(); - Reducers->InvokeUpdateUniqueU32WithArgs(Context, Args); - return; - } - if (ReducerName == TEXT("update_unique_u_64")) + + FUpdatePkI64Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_i_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkI64(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdatePkI64(const FReducerEventContext& Context, const UUpdatePkI64Reducer* Args) +{ + if (!OnUpdatePkI64.IsBound()) { - FUpdateUniqueU64Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueU64(); - Reducers->InvokeUpdateUniqueU64WithArgs(Context, Args); - return; + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI64")); + } + return false; } - if (ReducerName == TEXT("update_unique_u_8")) + + OnUpdatePkI64.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdatePkI64WithArgs(const FReducerEventContext& Context, const FUpdatePkI64Args& Args) +{ + if (!OnUpdatePkI64.IsBound()) { - FUpdateUniqueU8Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueU8(); - Reducers->InvokeUpdateUniqueU8WithArgs(Context, Args); - return; + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI64")); + } + return false; } - if (ReducerName == TEXT("update_unique_uuid")) + + OnUpdatePkI64.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdatePkI8(const int8 N, const int32 Data) +{ + if (!Conn) { - FUpdateUniqueUuidArgs Args = ReducerEvent.Reducer.GetAsUpdateUniqueUuid(); - Reducers->InvokeUpdateUniqueUuidWithArgs(Context, Args); + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); return; } - UE_LOG(LogTemp, Warning, TEXT("Unknown reducer: %s"), *ReducerName); + FUpdatePkI8Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_i_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkI8(ReducerArgs)); } } -void UDbConnection::ReducerEventFailed(const FReducerEvent& Event, const FString ErrorMessage) +bool URemoteReducers::InvokeUpdatePkI8(const FReducerEventContext& Context, const UUpdatePkI8Reducer* Args) { - if (!Reducers) { return; } - - FTestClientReducerEvent ReducerEvent; - ReducerEvent.CallerConnectionId = Event.CallerConnectionId; - ReducerEvent.CallerIdentity = Event.CallerIdentity; - ReducerEvent.EnergyConsumed = Event.EnergyConsumed; - ReducerEvent.Status = Event.Status; - ReducerEvent.Timestamp = Event.Timestamp; + if (!OnUpdatePkI8.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI8")); + } + return false; + } - FReducerEventContext Context(this, ReducerEvent); + OnUpdatePkI8.Broadcast(Context, Args->N, Args->Data); + return true; +} - if (Reducers->InternalOnUnhandledReducerError.IsBound()) +bool URemoteReducers::InvokeUpdatePkI8WithArgs(const FReducerEventContext& Context, const FUpdatePkI8Args& Args) +{ + if (!OnUpdatePkI8.IsBound()) { - Reducers->InternalOnUnhandledReducerError.Broadcast(Context, ErrorMessage); + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkI8")); + } + return false; } + + OnUpdatePkI8.Broadcast(Context, Args.N, Args.Data); + return true; } -void UDbConnection::ProcedureEventFailed(const FProcedureEvent& Event, const FString ErrorMessage) +void URemoteReducers::UpdatePkIdentity(const FSpacetimeDBIdentity& I, const int32 Data) { - if (!Procedures) { return; } - - FTestClientProcedureEvent ProcedureEvent; - ProcedureEvent.Status = FSpacetimeDBProcedureStatus::FromStatus(Event.Status); - ProcedureEvent.Timestamp = Event.Timestamp; + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } - FProcedureEventContext Context(this, ProcedureEvent); + FUpdatePkIdentityArgs ReducerArgs(I, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkIdentity(ReducerArgs)); } +} - if (Procedures->InternalOnUnhandledProcedureError.IsBound()) +bool URemoteReducers::InvokeUpdatePkIdentity(const FReducerEventContext& Context, const UUpdatePkIdentityReducer* Args) +{ + if (!OnUpdatePkIdentity.IsBound()) { - Procedures->InternalOnUnhandledProcedureError.Broadcast(Context, ErrorMessage); + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkIdentity")); + } + return false; } + + OnUpdatePkIdentity.Broadcast(Context, Args->I, Args->Data); + return true; } -UDbConnectionBuilder* UDbConnection::Builder() +bool URemoteReducers::InvokeUpdatePkIdentityWithArgs(const FReducerEventContext& Context, const FUpdatePkIdentityArgs& Args) { - return NewObject(); + if (!OnUpdatePkIdentity.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkIdentity")); + } + return false; + } + + OnUpdatePkIdentity.Broadcast(Context, Args.I, Args.Data); + return true; } -// Added for creating subscriptions -USubscriptionBuilder* UDbConnection::SubscriptionBuilder() + +void URemoteReducers::UpdatePkSimpleEnum(const ESimpleEnumType& A, const int32 Data) { - USubscriptionBuilder* Builder = NewObject(this); - Builder->Conn = this; - return Builder; + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdatePkSimpleEnumArgs ReducerArgs(A, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_simple_enum"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkSimpleEnum(ReducerArgs)); } } -USubscriptionBuilder* USubscriptionBuilder::OnApplied(FOnSubscriptionApplied Callback) + +bool URemoteReducers::InvokeUpdatePkSimpleEnum(const FReducerEventContext& Context, const UUpdatePkSimpleEnumReducer* Args) { - OnAppliedDelegateInternal = Callback; - return this; + if (!OnUpdatePkSimpleEnum.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkSimpleEnum")); + } + return false; + } + + OnUpdatePkSimpleEnum.Broadcast(Context, Args->A, Args->Data); + return true; } -USubscriptionBuilder* USubscriptionBuilder::OnError(FOnSubscriptionError Callback) + +bool URemoteReducers::InvokeUpdatePkSimpleEnumWithArgs(const FReducerEventContext& Context, const FUpdatePkSimpleEnumArgs& Args) { - OnErrorDelegateInternal = Callback; - return this; + if (!OnUpdatePkSimpleEnum.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkSimpleEnum")); + } + return false; + } + + OnUpdatePkSimpleEnum.Broadcast(Context, Args.A, Args.Data); + return true; } -USubscriptionHandle* USubscriptionBuilder::Subscribe(const TArray& SQL) + +void URemoteReducers::UpdatePkString(const FString& S, const int32 Data) { - USubscriptionHandle* Handle = NewObject(); + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } - // Store user callbacks on the handle - Handle->Conn = Conn; - Handle->OnAppliedDelegate = OnAppliedDelegateInternal; - Handle->OnErrorDelegate = OnErrorDelegateInternal; + FUpdatePkStringArgs ReducerArgs(S, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkString(ReducerArgs)); } +} - // Bind forwarding functions that will convert base contexts - FSubscriptionEventDelegate BaseApplied; - BaseApplied.BindUFunction(Handle, TEXT("ForwardOnApplied")); - OnAppliedBase(BaseApplied); +bool URemoteReducers::InvokeUpdatePkString(const FReducerEventContext& Context, const UUpdatePkStringReducer* Args) +{ + if (!OnUpdatePkString.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkString")); + } + return false; + } - FSubscriptionErrorDelegate BaseError; - BaseError.BindUFunction(Handle, TEXT("ForwardOnError")); - OnErrorBase(BaseError); + OnUpdatePkString.Broadcast(Context, Args->S, Args->Data); + return true; +} - SubscribeBase(SQL, Handle); - if (Conn) - { - Conn->StartSubscription(Handle); - } - return Handle; +bool URemoteReducers::InvokeUpdatePkStringWithArgs(const FReducerEventContext& Context, const FUpdatePkStringArgs& Args) +{ + if (!OnUpdatePkString.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkString")); + } + return false; + } + + OnUpdatePkString.Broadcast(Context, Args.S, Args.Data); + return true; } -USubscriptionHandle* USubscriptionBuilder::SubscribeToAllTables() + +void URemoteReducers::UpdatePkU128(const FSpacetimeDBUInt128& N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdatePkU128Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_u_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkU128(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdatePkU128(const FReducerEventContext& Context, const UUpdatePkU128Reducer* Args) +{ + if (!OnUpdatePkU128.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU128")); + } + return false; + } + + OnUpdatePkU128.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdatePkU128WithArgs(const FReducerEventContext& Context, const FUpdatePkU128Args& Args) +{ + if (!OnUpdatePkU128.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU128")); + } + return false; + } + + OnUpdatePkU128.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdatePkU16(const uint16 N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdatePkU16Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_u_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkU16(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdatePkU16(const FReducerEventContext& Context, const UUpdatePkU16Reducer* Args) +{ + if (!OnUpdatePkU16.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU16")); + } + return false; + } + + OnUpdatePkU16.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdatePkU16WithArgs(const FReducerEventContext& Context, const FUpdatePkU16Args& Args) +{ + if (!OnUpdatePkU16.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU16")); + } + return false; + } + + OnUpdatePkU16.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdatePkU256(const FSpacetimeDBUInt256& N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdatePkU256Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_u_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkU256(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdatePkU256(const FReducerEventContext& Context, const UUpdatePkU256Reducer* Args) +{ + if (!OnUpdatePkU256.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU256")); + } + return false; + } + + OnUpdatePkU256.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdatePkU256WithArgs(const FReducerEventContext& Context, const FUpdatePkU256Args& Args) +{ + if (!OnUpdatePkU256.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU256")); + } + return false; + } + + OnUpdatePkU256.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdatePkU32(const uint32 N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdatePkU32Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkU32(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdatePkU32(const FReducerEventContext& Context, const UUpdatePkU32Reducer* Args) +{ + if (!OnUpdatePkU32.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU32")); + } + return false; + } + + OnUpdatePkU32.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdatePkU32WithArgs(const FReducerEventContext& Context, const FUpdatePkU32Args& Args) +{ + if (!OnUpdatePkU32.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU32")); + } + return false; + } + + OnUpdatePkU32.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdatePkU32Two(const uint32 N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdatePkU32TwoArgs ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_u_32_two"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkU32Two(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdatePkU32Two(const FReducerEventContext& Context, const UUpdatePkU32TwoReducer* Args) +{ + if (!OnUpdatePkU32Two.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU32Two")); + } + return false; + } + + OnUpdatePkU32Two.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdatePkU32TwoWithArgs(const FReducerEventContext& Context, const FUpdatePkU32TwoArgs& Args) +{ + if (!OnUpdatePkU32Two.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU32Two")); + } + return false; + } + + OnUpdatePkU32Two.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdatePkU64(const uint64 N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdatePkU64Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_u_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkU64(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdatePkU64(const FReducerEventContext& Context, const UUpdatePkU64Reducer* Args) +{ + if (!OnUpdatePkU64.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU64")); + } + return false; + } + + OnUpdatePkU64.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdatePkU64WithArgs(const FReducerEventContext& Context, const FUpdatePkU64Args& Args) +{ + if (!OnUpdatePkU64.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU64")); + } + return false; + } + + OnUpdatePkU64.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdatePkU8(const uint8 N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdatePkU8Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_u_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkU8(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdatePkU8(const FReducerEventContext& Context, const UUpdatePkU8Reducer* Args) +{ + if (!OnUpdatePkU8.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU8")); + } + return false; + } + + OnUpdatePkU8.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdatePkU8WithArgs(const FReducerEventContext& Context, const FUpdatePkU8Args& Args) +{ + if (!OnUpdatePkU8.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkU8")); + } + return false; + } + + OnUpdatePkU8.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdatePkUuid(const FSpacetimeDBUuid& U, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdatePkUuidArgs ReducerArgs(U, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_pk_uuid"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdatePkUuid(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdatePkUuid(const FReducerEventContext& Context, const UUpdatePkUuidReducer* Args) +{ + if (!OnUpdatePkUuid.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkUuid")); + } + return false; + } + + OnUpdatePkUuid.Broadcast(Context, Args->U, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdatePkUuidWithArgs(const FReducerEventContext& Context, const FUpdatePkUuidArgs& Args) +{ + if (!OnUpdatePkUuid.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdatePkUuid")); + } + return false; + } + + OnUpdatePkUuid.Broadcast(Context, Args.U, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueBool(const bool B, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueBoolArgs ReducerArgs(B, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_bool"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueBool(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueBool(const FReducerEventContext& Context, const UUpdateUniqueBoolReducer* Args) +{ + if (!OnUpdateUniqueBool.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueBool")); + } + return false; + } + + OnUpdateUniqueBool.Broadcast(Context, Args->B, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueBoolWithArgs(const FReducerEventContext& Context, const FUpdateUniqueBoolArgs& Args) +{ + if (!OnUpdateUniqueBool.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueBool")); + } + return false; + } + + OnUpdateUniqueBool.Broadcast(Context, Args.B, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueConnectionIdArgs ReducerArgs(A, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_connection_id"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueConnectionId(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueConnectionId(const FReducerEventContext& Context, const UUpdateUniqueConnectionIdReducer* Args) +{ + if (!OnUpdateUniqueConnectionId.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueConnectionId")); + } + return false; + } + + OnUpdateUniqueConnectionId.Broadcast(Context, Args->A, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FUpdateUniqueConnectionIdArgs& Args) +{ + if (!OnUpdateUniqueConnectionId.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueConnectionId")); + } + return false; + } + + OnUpdateUniqueConnectionId.Broadcast(Context, Args.A, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueI128(const FSpacetimeDBInt128& N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueI128Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_i_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueI128(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueI128(const FReducerEventContext& Context, const UUpdateUniqueI128Reducer* Args) +{ + if (!OnUpdateUniqueI128.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI128")); + } + return false; + } + + OnUpdateUniqueI128.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueI128WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI128Args& Args) +{ + if (!OnUpdateUniqueI128.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI128")); + } + return false; + } + + OnUpdateUniqueI128.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueI16(const int16 N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueI16Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_i_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueI16(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueI16(const FReducerEventContext& Context, const UUpdateUniqueI16Reducer* Args) +{ + if (!OnUpdateUniqueI16.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI16")); + } + return false; + } + + OnUpdateUniqueI16.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueI16WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI16Args& Args) +{ + if (!OnUpdateUniqueI16.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI16")); + } + return false; + } + + OnUpdateUniqueI16.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueI256(const FSpacetimeDBInt256& N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueI256Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_i_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueI256(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueI256(const FReducerEventContext& Context, const UUpdateUniqueI256Reducer* Args) +{ + if (!OnUpdateUniqueI256.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI256")); + } + return false; + } + + OnUpdateUniqueI256.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueI256WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI256Args& Args) +{ + if (!OnUpdateUniqueI256.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI256")); + } + return false; + } + + OnUpdateUniqueI256.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueI32(const int32 N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueI32Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_i_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueI32(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueI32(const FReducerEventContext& Context, const UUpdateUniqueI32Reducer* Args) +{ + if (!OnUpdateUniqueI32.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI32")); + } + return false; + } + + OnUpdateUniqueI32.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueI32WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI32Args& Args) +{ + if (!OnUpdateUniqueI32.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI32")); + } + return false; + } + + OnUpdateUniqueI32.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueI64(const int64 N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueI64Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_i_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueI64(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueI64(const FReducerEventContext& Context, const UUpdateUniqueI64Reducer* Args) +{ + if (!OnUpdateUniqueI64.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI64")); + } + return false; + } + + OnUpdateUniqueI64.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueI64WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI64Args& Args) +{ + if (!OnUpdateUniqueI64.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI64")); + } + return false; + } + + OnUpdateUniqueI64.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueI8(const int8 N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueI8Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_i_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueI8(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueI8(const FReducerEventContext& Context, const UUpdateUniqueI8Reducer* Args) +{ + if (!OnUpdateUniqueI8.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI8")); + } + return false; + } + + OnUpdateUniqueI8.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueI8WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI8Args& Args) +{ + if (!OnUpdateUniqueI8.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueI8")); + } + return false; + } + + OnUpdateUniqueI8.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueIdentity(const FSpacetimeDBIdentity& I, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueIdentityArgs ReducerArgs(I, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_identity"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueIdentity(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueIdentity(const FReducerEventContext& Context, const UUpdateUniqueIdentityReducer* Args) +{ + if (!OnUpdateUniqueIdentity.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueIdentity")); + } + return false; + } + + OnUpdateUniqueIdentity.Broadcast(Context, Args->I, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueIdentityWithArgs(const FReducerEventContext& Context, const FUpdateUniqueIdentityArgs& Args) +{ + if (!OnUpdateUniqueIdentity.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueIdentity")); + } + return false; + } + + OnUpdateUniqueIdentity.Broadcast(Context, Args.I, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueString(const FString& S, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueStringArgs ReducerArgs(S, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_string"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueString(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueString(const FReducerEventContext& Context, const UUpdateUniqueStringReducer* Args) +{ + if (!OnUpdateUniqueString.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueString")); + } + return false; + } + + OnUpdateUniqueString.Broadcast(Context, Args->S, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueStringWithArgs(const FReducerEventContext& Context, const FUpdateUniqueStringArgs& Args) +{ + if (!OnUpdateUniqueString.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueString")); + } + return false; + } + + OnUpdateUniqueString.Broadcast(Context, Args.S, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueU128(const FSpacetimeDBUInt128& N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueU128Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_u_128"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueU128(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueU128(const FReducerEventContext& Context, const UUpdateUniqueU128Reducer* Args) +{ + if (!OnUpdateUniqueU128.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU128")); + } + return false; + } + + OnUpdateUniqueU128.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueU128WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU128Args& Args) +{ + if (!OnUpdateUniqueU128.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU128")); + } + return false; + } + + OnUpdateUniqueU128.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueU16(const uint16 N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueU16Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_u_16"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueU16(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueU16(const FReducerEventContext& Context, const UUpdateUniqueU16Reducer* Args) +{ + if (!OnUpdateUniqueU16.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU16")); + } + return false; + } + + OnUpdateUniqueU16.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueU16WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU16Args& Args) +{ + if (!OnUpdateUniqueU16.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU16")); + } + return false; + } + + OnUpdateUniqueU16.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueU256(const FSpacetimeDBUInt256& N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueU256Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_u_256"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueU256(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueU256(const FReducerEventContext& Context, const UUpdateUniqueU256Reducer* Args) +{ + if (!OnUpdateUniqueU256.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU256")); + } + return false; + } + + OnUpdateUniqueU256.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueU256WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU256Args& Args) +{ + if (!OnUpdateUniqueU256.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU256")); + } + return false; + } + + OnUpdateUniqueU256.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueU32(const uint32 N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueU32Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_u_32"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueU32(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueU32(const FReducerEventContext& Context, const UUpdateUniqueU32Reducer* Args) +{ + if (!OnUpdateUniqueU32.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU32")); + } + return false; + } + + OnUpdateUniqueU32.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueU32WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU32Args& Args) +{ + if (!OnUpdateUniqueU32.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU32")); + } + return false; + } + + OnUpdateUniqueU32.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueU64(const uint64 N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueU64Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_u_64"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueU64(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueU64(const FReducerEventContext& Context, const UUpdateUniqueU64Reducer* Args) +{ + if (!OnUpdateUniqueU64.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU64")); + } + return false; + } + + OnUpdateUniqueU64.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueU64WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU64Args& Args) +{ + if (!OnUpdateUniqueU64.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU64")); + } + return false; + } + + OnUpdateUniqueU64.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueU8(const uint8 N, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueU8Args ReducerArgs(N, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_u_8"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueU8(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueU8(const FReducerEventContext& Context, const UUpdateUniqueU8Reducer* Args) +{ + if (!OnUpdateUniqueU8.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU8")); + } + return false; + } + + OnUpdateUniqueU8.Broadcast(Context, Args->N, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueU8WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU8Args& Args) +{ + if (!OnUpdateUniqueU8.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueU8")); + } + return false; + } + + OnUpdateUniqueU8.Broadcast(Context, Args.N, Args.Data); + return true; +} + +void URemoteReducers::UpdateUniqueUuid(const FSpacetimeDBUuid& U, const int32 Data) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateUniqueUuidArgs ReducerArgs(U, Data); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_unique_uuid"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateUniqueUuid(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateUniqueUuid(const FReducerEventContext& Context, const UUpdateUniqueUuidReducer* Args) +{ + if (!OnUpdateUniqueUuid.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueUuid")); + } + return false; + } + + OnUpdateUniqueUuid.Broadcast(Context, Args->U, Args->Data); + return true; +} + +bool URemoteReducers::InvokeUpdateUniqueUuidWithArgs(const FReducerEventContext& Context, const FUpdateUniqueUuidArgs& Args) +{ + if (!OnUpdateUniqueUuid.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateUniqueUuid")); + } + return false; + } + + OnUpdateUniqueUuid.Broadcast(Context, Args.U, Args.Data); + return true; +} + +void UDbConnection::PostInitProperties() +{ + Super::PostInitProperties(); + + // Connect OnUnhandledReducerError to Reducers.InternalOnUnhandledReducerError + if (Reducers) + { + Reducers->InternalOnUnhandledReducerError.AddDynamic(this, &UDbConnection::OnUnhandledReducerErrorHandler); + } + + // Connect OnUnhandledProcedureError to Procedures.InternalOnUnhandledProcedureError + if (Procedures) + { + Procedures->InternalOnUnhandledProcedureError.AddDynamic(this, &UDbConnection::OnUnhandledProcedureErrorHandler); + } +} + +UFUNCTION() +void UDbConnection::OnUnhandledReducerErrorHandler(const FReducerEventContext& Context, const FString& Error) +{ + if (OnUnhandledReducerError.IsBound()) + { + OnUnhandledReducerError.Broadcast(Context, Error); + } +} + +UFUNCTION() +void UDbConnection::OnUnhandledProcedureErrorHandler(const FProcedureEventContext& Context, const FString& Error) +{ + if (OnUnhandledProcedureError.IsBound()) + { + OnUnhandledProcedureError.Broadcast(Context, Error); + } +} + +void UDbConnection::RegisterPendingTypedReducer(uint32 RequestId, FReducer Reducer) +{ + Reducer.RequestId = RequestId; + PendingTypedReducers.Add(RequestId, MoveTemp(Reducer)); +} + +bool UDbConnection::TryGetPendingTypedReducer(uint32 RequestId, FReducer& OutReducer) const +{ + if (const FReducer* Found = PendingTypedReducers.Find(RequestId)) + { + OutReducer = *Found; + return true; + } + return false; +} + +bool UDbConnection::TryTakePendingTypedReducer(uint32 RequestId, FReducer& OutReducer) +{ + if (FReducer* Found = PendingTypedReducers.Find(RequestId)) + { + OutReducer = *Found; + PendingTypedReducers.Remove(RequestId); + return true; + } + return false; +} + +void UDbConnection::ReducerEvent(const FReducerEvent& Event) +{ + if (!Reducers) { return; } + + FReducer DecodedReducer; + if (!TryTakePendingTypedReducer(Event.RequestId, DecodedReducer)) + { + const FString ErrorMessage = FString::Printf(TEXT("Reducer result for unknown request_id %u"), Event.RequestId); + HandleProtocolViolation(ErrorMessage); + return; + } + + FTestClientReducerEvent ReducerEvent; + ReducerEvent.CallerConnectionId = Event.CallerConnectionId; + ReducerEvent.CallerIdentity = Event.CallerIdentity; + ReducerEvent.EnergyConsumed = Event.EnergyConsumed; + ReducerEvent.Status = Event.Status; + ReducerEvent.Timestamp = Event.Timestamp; + ReducerEvent.Reducer = DecodedReducer; + + FReducerEventContext Context(this, ReducerEvent); + + // Dispatch by typed reducer metadata + const FString& ReducerName = ReducerEvent.Reducer.ReducerName; + + if (ReducerName == TEXT("delete_all_one_bool")) + { + FDeleteAllOneBoolArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOneBool(); + Reducers->InvokeDeleteAllOneBoolWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_byte_struct")) + { + FDeleteAllOneByteStructArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOneByteStruct(); + Reducers->InvokeDeleteAllOneByteStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_enum_with_payload")) + { + FDeleteAllOneEnumWithPayloadArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOneEnumWithPayload(); + Reducers->InvokeDeleteAllOneEnumWithPayloadWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_every_primitive_struct")) + { + FDeleteAllOneEveryPrimitiveStructArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOneEveryPrimitiveStruct(); + Reducers->InvokeDeleteAllOneEveryPrimitiveStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_every_vec_struct")) + { + FDeleteAllOneEveryVecStructArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOneEveryVecStruct(); + Reducers->InvokeDeleteAllOneEveryVecStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_f_32")) + { + FDeleteAllOneF32Args Args = ReducerEvent.Reducer.GetAsDeleteAllOneF32(); + Reducers->InvokeDeleteAllOneF32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_f_64")) + { + FDeleteAllOneF64Args Args = ReducerEvent.Reducer.GetAsDeleteAllOneF64(); + Reducers->InvokeDeleteAllOneF64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_i_128")) + { + FDeleteAllOneI128Args Args = ReducerEvent.Reducer.GetAsDeleteAllOneI128(); + Reducers->InvokeDeleteAllOneI128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_i_16")) + { + FDeleteAllOneI16Args Args = ReducerEvent.Reducer.GetAsDeleteAllOneI16(); + Reducers->InvokeDeleteAllOneI16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_i_256")) + { + FDeleteAllOneI256Args Args = ReducerEvent.Reducer.GetAsDeleteAllOneI256(); + Reducers->InvokeDeleteAllOneI256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_i_32")) + { + FDeleteAllOneI32Args Args = ReducerEvent.Reducer.GetAsDeleteAllOneI32(); + Reducers->InvokeDeleteAllOneI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_i_64")) + { + FDeleteAllOneI64Args Args = ReducerEvent.Reducer.GetAsDeleteAllOneI64(); + Reducers->InvokeDeleteAllOneI64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_i_8")) + { + FDeleteAllOneI8Args Args = ReducerEvent.Reducer.GetAsDeleteAllOneI8(); + Reducers->InvokeDeleteAllOneI8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_identity")) + { + FDeleteAllOneIdentityArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOneIdentity(); + Reducers->InvokeDeleteAllOneIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_simple_enum")) + { + FDeleteAllOneSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOneSimpleEnum(); + Reducers->InvokeDeleteAllOneSimpleEnumWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_string")) + { + FDeleteAllOneStringArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOneString(); + Reducers->InvokeDeleteAllOneStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_timestamp")) + { + FDeleteAllOneTimestampArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOneTimestamp(); + Reducers->InvokeDeleteAllOneTimestampWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_u_128")) + { + FDeleteAllOneU128Args Args = ReducerEvent.Reducer.GetAsDeleteAllOneU128(); + Reducers->InvokeDeleteAllOneU128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_u_16")) + { + FDeleteAllOneU16Args Args = ReducerEvent.Reducer.GetAsDeleteAllOneU16(); + Reducers->InvokeDeleteAllOneU16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_u_256")) + { + FDeleteAllOneU256Args Args = ReducerEvent.Reducer.GetAsDeleteAllOneU256(); + Reducers->InvokeDeleteAllOneU256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_u_32")) + { + FDeleteAllOneU32Args Args = ReducerEvent.Reducer.GetAsDeleteAllOneU32(); + Reducers->InvokeDeleteAllOneU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_u_64")) + { + FDeleteAllOneU64Args Args = ReducerEvent.Reducer.GetAsDeleteAllOneU64(); + Reducers->InvokeDeleteAllOneU64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_u_8")) + { + FDeleteAllOneU8Args Args = ReducerEvent.Reducer.GetAsDeleteAllOneU8(); + Reducers->InvokeDeleteAllOneU8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_unit_struct")) + { + FDeleteAllOneUnitStructArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOneUnitStruct(); + Reducers->InvokeDeleteAllOneUnitStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_one_uuid")) + { + FDeleteAllOneUuidArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOneUuid(); + Reducers->InvokeDeleteAllOneUuidWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_option_every_primitive_struct")) + { + FDeleteAllOptionEveryPrimitiveStructArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOptionEveryPrimitiveStruct(); + Reducers->InvokeDeleteAllOptionEveryPrimitiveStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_option_i_32")) + { + FDeleteAllOptionI32Args Args = ReducerEvent.Reducer.GetAsDeleteAllOptionI32(); + Reducers->InvokeDeleteAllOptionI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_option_identity")) + { + FDeleteAllOptionIdentityArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOptionIdentity(); + Reducers->InvokeDeleteAllOptionIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_option_simple_enum")) + { + FDeleteAllOptionSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOptionSimpleEnum(); + Reducers->InvokeDeleteAllOptionSimpleEnumWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_option_string")) + { + FDeleteAllOptionStringArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOptionString(); + Reducers->InvokeDeleteAllOptionStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_option_uuid")) + { + FDeleteAllOptionUuidArgs Args = ReducerEvent.Reducer.GetAsDeleteAllOptionUuid(); + Reducers->InvokeDeleteAllOptionUuidWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_option_vec_option_i_32")) + { + FDeleteAllOptionVecOptionI32Args Args = ReducerEvent.Reducer.GetAsDeleteAllOptionVecOptionI32(); + Reducers->InvokeDeleteAllOptionVecOptionI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_bool")) + { + FDeleteAllPkBoolArgs Args = ReducerEvent.Reducer.GetAsDeleteAllPkBool(); + Reducers->InvokeDeleteAllPkBoolWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_connection_id")) + { + FDeleteAllPkConnectionIdArgs Args = ReducerEvent.Reducer.GetAsDeleteAllPkConnectionId(); + Reducers->InvokeDeleteAllPkConnectionIdWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_i_128")) + { + FDeleteAllPkI128Args Args = ReducerEvent.Reducer.GetAsDeleteAllPkI128(); + Reducers->InvokeDeleteAllPkI128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_i_16")) + { + FDeleteAllPkI16Args Args = ReducerEvent.Reducer.GetAsDeleteAllPkI16(); + Reducers->InvokeDeleteAllPkI16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_i_256")) + { + FDeleteAllPkI256Args Args = ReducerEvent.Reducer.GetAsDeleteAllPkI256(); + Reducers->InvokeDeleteAllPkI256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_i_32")) + { + FDeleteAllPkI32Args Args = ReducerEvent.Reducer.GetAsDeleteAllPkI32(); + Reducers->InvokeDeleteAllPkI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_i_64")) + { + FDeleteAllPkI64Args Args = ReducerEvent.Reducer.GetAsDeleteAllPkI64(); + Reducers->InvokeDeleteAllPkI64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_i_8")) + { + FDeleteAllPkI8Args Args = ReducerEvent.Reducer.GetAsDeleteAllPkI8(); + Reducers->InvokeDeleteAllPkI8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_identity")) + { + FDeleteAllPkIdentityArgs Args = ReducerEvent.Reducer.GetAsDeleteAllPkIdentity(); + Reducers->InvokeDeleteAllPkIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_string")) + { + FDeleteAllPkStringArgs Args = ReducerEvent.Reducer.GetAsDeleteAllPkString(); + Reducers->InvokeDeleteAllPkStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_u_128")) + { + FDeleteAllPkU128Args Args = ReducerEvent.Reducer.GetAsDeleteAllPkU128(); + Reducers->InvokeDeleteAllPkU128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_u_16")) + { + FDeleteAllPkU16Args Args = ReducerEvent.Reducer.GetAsDeleteAllPkU16(); + Reducers->InvokeDeleteAllPkU16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_u_256")) + { + FDeleteAllPkU256Args Args = ReducerEvent.Reducer.GetAsDeleteAllPkU256(); + Reducers->InvokeDeleteAllPkU256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_u_32")) + { + FDeleteAllPkU32Args Args = ReducerEvent.Reducer.GetAsDeleteAllPkU32(); + Reducers->InvokeDeleteAllPkU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_u_32_two")) + { + FDeleteAllPkU32TwoArgs Args = ReducerEvent.Reducer.GetAsDeleteAllPkU32Two(); + Reducers->InvokeDeleteAllPkU32TwoWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_u_64")) + { + FDeleteAllPkU64Args Args = ReducerEvent.Reducer.GetAsDeleteAllPkU64(); + Reducers->InvokeDeleteAllPkU64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_u_8")) + { + FDeleteAllPkU8Args Args = ReducerEvent.Reducer.GetAsDeleteAllPkU8(); + Reducers->InvokeDeleteAllPkU8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_pk_uuid")) + { + FDeleteAllPkUuidArgs Args = ReducerEvent.Reducer.GetAsDeleteAllPkUuid(); + Reducers->InvokeDeleteAllPkUuidWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_bool")) + { + FDeleteAllUniqueBoolArgs Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueBool(); + Reducers->InvokeDeleteAllUniqueBoolWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_connection_id")) + { + FDeleteAllUniqueConnectionIdArgs Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueConnectionId(); + Reducers->InvokeDeleteAllUniqueConnectionIdWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_i_128")) + { + FDeleteAllUniqueI128Args Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueI128(); + Reducers->InvokeDeleteAllUniqueI128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_i_16")) + { + FDeleteAllUniqueI16Args Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueI16(); + Reducers->InvokeDeleteAllUniqueI16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_i_256")) + { + FDeleteAllUniqueI256Args Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueI256(); + Reducers->InvokeDeleteAllUniqueI256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_i_32")) + { + FDeleteAllUniqueI32Args Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueI32(); + Reducers->InvokeDeleteAllUniqueI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_i_64")) + { + FDeleteAllUniqueI64Args Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueI64(); + Reducers->InvokeDeleteAllUniqueI64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_i_8")) + { + FDeleteAllUniqueI8Args Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueI8(); + Reducers->InvokeDeleteAllUniqueI8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_identity")) + { + FDeleteAllUniqueIdentityArgs Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueIdentity(); + Reducers->InvokeDeleteAllUniqueIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_string")) + { + FDeleteAllUniqueStringArgs Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueString(); + Reducers->InvokeDeleteAllUniqueStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_u_128")) + { + FDeleteAllUniqueU128Args Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueU128(); + Reducers->InvokeDeleteAllUniqueU128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_u_16")) + { + FDeleteAllUniqueU16Args Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueU16(); + Reducers->InvokeDeleteAllUniqueU16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_u_256")) + { + FDeleteAllUniqueU256Args Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueU256(); + Reducers->InvokeDeleteAllUniqueU256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_u_32")) + { + FDeleteAllUniqueU32Args Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueU32(); + Reducers->InvokeDeleteAllUniqueU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_u_64")) + { + FDeleteAllUniqueU64Args Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueU64(); + Reducers->InvokeDeleteAllUniqueU64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_u_8")) + { + FDeleteAllUniqueU8Args Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueU8(); + Reducers->InvokeDeleteAllUniqueU8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_unique_uuid")) + { + FDeleteAllUniqueUuidArgs Args = ReducerEvent.Reducer.GetAsDeleteAllUniqueUuid(); + Reducers->InvokeDeleteAllUniqueUuidWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_bool")) + { + FDeleteAllVecBoolArgs Args = ReducerEvent.Reducer.GetAsDeleteAllVecBool(); + Reducers->InvokeDeleteAllVecBoolWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_byte_struct")) + { + FDeleteAllVecByteStructArgs Args = ReducerEvent.Reducer.GetAsDeleteAllVecByteStruct(); + Reducers->InvokeDeleteAllVecByteStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_enum_with_payload")) + { + FDeleteAllVecEnumWithPayloadArgs Args = ReducerEvent.Reducer.GetAsDeleteAllVecEnumWithPayload(); + Reducers->InvokeDeleteAllVecEnumWithPayloadWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_every_primitive_struct")) + { + FDeleteAllVecEveryPrimitiveStructArgs Args = ReducerEvent.Reducer.GetAsDeleteAllVecEveryPrimitiveStruct(); + Reducers->InvokeDeleteAllVecEveryPrimitiveStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_every_vec_struct")) + { + FDeleteAllVecEveryVecStructArgs Args = ReducerEvent.Reducer.GetAsDeleteAllVecEveryVecStruct(); + Reducers->InvokeDeleteAllVecEveryVecStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_f_32")) + { + FDeleteAllVecF32Args Args = ReducerEvent.Reducer.GetAsDeleteAllVecF32(); + Reducers->InvokeDeleteAllVecF32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_f_64")) + { + FDeleteAllVecF64Args Args = ReducerEvent.Reducer.GetAsDeleteAllVecF64(); + Reducers->InvokeDeleteAllVecF64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_i_128")) + { + FDeleteAllVecI128Args Args = ReducerEvent.Reducer.GetAsDeleteAllVecI128(); + Reducers->InvokeDeleteAllVecI128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_i_16")) + { + FDeleteAllVecI16Args Args = ReducerEvent.Reducer.GetAsDeleteAllVecI16(); + Reducers->InvokeDeleteAllVecI16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_i_256")) + { + FDeleteAllVecI256Args Args = ReducerEvent.Reducer.GetAsDeleteAllVecI256(); + Reducers->InvokeDeleteAllVecI256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_i_32")) + { + FDeleteAllVecI32Args Args = ReducerEvent.Reducer.GetAsDeleteAllVecI32(); + Reducers->InvokeDeleteAllVecI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_i_64")) + { + FDeleteAllVecI64Args Args = ReducerEvent.Reducer.GetAsDeleteAllVecI64(); + Reducers->InvokeDeleteAllVecI64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_i_8")) + { + FDeleteAllVecI8Args Args = ReducerEvent.Reducer.GetAsDeleteAllVecI8(); + Reducers->InvokeDeleteAllVecI8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_identity")) + { + FDeleteAllVecIdentityArgs Args = ReducerEvent.Reducer.GetAsDeleteAllVecIdentity(); + Reducers->InvokeDeleteAllVecIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_simple_enum")) + { + FDeleteAllVecSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsDeleteAllVecSimpleEnum(); + Reducers->InvokeDeleteAllVecSimpleEnumWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_string")) + { + FDeleteAllVecStringArgs Args = ReducerEvent.Reducer.GetAsDeleteAllVecString(); + Reducers->InvokeDeleteAllVecStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_timestamp")) + { + FDeleteAllVecTimestampArgs Args = ReducerEvent.Reducer.GetAsDeleteAllVecTimestamp(); + Reducers->InvokeDeleteAllVecTimestampWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_u_128")) + { + FDeleteAllVecU128Args Args = ReducerEvent.Reducer.GetAsDeleteAllVecU128(); + Reducers->InvokeDeleteAllVecU128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_u_16")) + { + FDeleteAllVecU16Args Args = ReducerEvent.Reducer.GetAsDeleteAllVecU16(); + Reducers->InvokeDeleteAllVecU16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_u_256")) + { + FDeleteAllVecU256Args Args = ReducerEvent.Reducer.GetAsDeleteAllVecU256(); + Reducers->InvokeDeleteAllVecU256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_u_32")) + { + FDeleteAllVecU32Args Args = ReducerEvent.Reducer.GetAsDeleteAllVecU32(); + Reducers->InvokeDeleteAllVecU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_u_64")) + { + FDeleteAllVecU64Args Args = ReducerEvent.Reducer.GetAsDeleteAllVecU64(); + Reducers->InvokeDeleteAllVecU64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_u_8")) + { + FDeleteAllVecU8Args Args = ReducerEvent.Reducer.GetAsDeleteAllVecU8(); + Reducers->InvokeDeleteAllVecU8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_unit_struct")) + { + FDeleteAllVecUnitStructArgs Args = ReducerEvent.Reducer.GetAsDeleteAllVecUnitStruct(); + Reducers->InvokeDeleteAllVecUnitStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_all_vec_uuid")) + { + FDeleteAllVecUuidArgs Args = ReducerEvent.Reducer.GetAsDeleteAllVecUuid(); + Reducers->InvokeDeleteAllVecUuidWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_from_btree_u_32")) + { + FDeleteFromBtreeU32Args Args = ReducerEvent.Reducer.GetAsDeleteFromBtreeU32(); + Reducers->InvokeDeleteFromBtreeU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_large_table")) + { + FDeleteLargeTableArgs Args = ReducerEvent.Reducer.GetAsDeleteLargeTable(); + Reducers->InvokeDeleteLargeTableWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_bool")) + { + FDeletePkBoolArgs Args = ReducerEvent.Reducer.GetAsDeletePkBool(); + Reducers->InvokeDeletePkBoolWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_connection_id")) + { + FDeletePkConnectionIdArgs Args = ReducerEvent.Reducer.GetAsDeletePkConnectionId(); + Reducers->InvokeDeletePkConnectionIdWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_i_128")) + { + FDeletePkI128Args Args = ReducerEvent.Reducer.GetAsDeletePkI128(); + Reducers->InvokeDeletePkI128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_i_16")) + { + FDeletePkI16Args Args = ReducerEvent.Reducer.GetAsDeletePkI16(); + Reducers->InvokeDeletePkI16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_i_256")) + { + FDeletePkI256Args Args = ReducerEvent.Reducer.GetAsDeletePkI256(); + Reducers->InvokeDeletePkI256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_i_32")) + { + FDeletePkI32Args Args = ReducerEvent.Reducer.GetAsDeletePkI32(); + Reducers->InvokeDeletePkI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_i_64")) + { + FDeletePkI64Args Args = ReducerEvent.Reducer.GetAsDeletePkI64(); + Reducers->InvokeDeletePkI64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_i_8")) + { + FDeletePkI8Args Args = ReducerEvent.Reducer.GetAsDeletePkI8(); + Reducers->InvokeDeletePkI8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_identity")) + { + FDeletePkIdentityArgs Args = ReducerEvent.Reducer.GetAsDeletePkIdentity(); + Reducers->InvokeDeletePkIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_string")) + { + FDeletePkStringArgs Args = ReducerEvent.Reducer.GetAsDeletePkString(); + Reducers->InvokeDeletePkStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_u_128")) + { + FDeletePkU128Args Args = ReducerEvent.Reducer.GetAsDeletePkU128(); + Reducers->InvokeDeletePkU128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_u_16")) + { + FDeletePkU16Args Args = ReducerEvent.Reducer.GetAsDeletePkU16(); + Reducers->InvokeDeletePkU16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_u_256")) + { + FDeletePkU256Args Args = ReducerEvent.Reducer.GetAsDeletePkU256(); + Reducers->InvokeDeletePkU256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_u_32")) + { + FDeletePkU32Args Args = ReducerEvent.Reducer.GetAsDeletePkU32(); + Reducers->InvokeDeletePkU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_u_32_insert_pk_u_32_two")) + { + FDeletePkU32InsertPkU32TwoArgs Args = ReducerEvent.Reducer.GetAsDeletePkU32InsertPkU32Two(); + Reducers->InvokeDeletePkU32InsertPkU32TwoWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_u_32_two")) + { + FDeletePkU32TwoArgs Args = ReducerEvent.Reducer.GetAsDeletePkU32Two(); + Reducers->InvokeDeletePkU32TwoWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_u_64")) + { + FDeletePkU64Args Args = ReducerEvent.Reducer.GetAsDeletePkU64(); + Reducers->InvokeDeletePkU64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_u_8")) + { + FDeletePkU8Args Args = ReducerEvent.Reducer.GetAsDeletePkU8(); + Reducers->InvokeDeletePkU8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_pk_uuid")) + { + FDeletePkUuidArgs Args = ReducerEvent.Reducer.GetAsDeletePkUuid(); + Reducers->InvokeDeletePkUuidWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_bool")) + { + FDeleteUniqueBoolArgs Args = ReducerEvent.Reducer.GetAsDeleteUniqueBool(); + Reducers->InvokeDeleteUniqueBoolWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_connection_id")) + { + FDeleteUniqueConnectionIdArgs Args = ReducerEvent.Reducer.GetAsDeleteUniqueConnectionId(); + Reducers->InvokeDeleteUniqueConnectionIdWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_i_128")) + { + FDeleteUniqueI128Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueI128(); + Reducers->InvokeDeleteUniqueI128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_i_16")) + { + FDeleteUniqueI16Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueI16(); + Reducers->InvokeDeleteUniqueI16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_i_256")) + { + FDeleteUniqueI256Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueI256(); + Reducers->InvokeDeleteUniqueI256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_i_32")) + { + FDeleteUniqueI32Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueI32(); + Reducers->InvokeDeleteUniqueI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_i_64")) + { + FDeleteUniqueI64Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueI64(); + Reducers->InvokeDeleteUniqueI64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_i_8")) + { + FDeleteUniqueI8Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueI8(); + Reducers->InvokeDeleteUniqueI8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_identity")) + { + FDeleteUniqueIdentityArgs Args = ReducerEvent.Reducer.GetAsDeleteUniqueIdentity(); + Reducers->InvokeDeleteUniqueIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_string")) + { + FDeleteUniqueStringArgs Args = ReducerEvent.Reducer.GetAsDeleteUniqueString(); + Reducers->InvokeDeleteUniqueStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_u_128")) + { + FDeleteUniqueU128Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueU128(); + Reducers->InvokeDeleteUniqueU128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_u_16")) + { + FDeleteUniqueU16Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueU16(); + Reducers->InvokeDeleteUniqueU16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_u_256")) + { + FDeleteUniqueU256Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueU256(); + Reducers->InvokeDeleteUniqueU256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_u_32")) + { + FDeleteUniqueU32Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueU32(); + Reducers->InvokeDeleteUniqueU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_u_64")) + { + FDeleteUniqueU64Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueU64(); + Reducers->InvokeDeleteUniqueU64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_u_8")) + { + FDeleteUniqueU8Args Args = ReducerEvent.Reducer.GetAsDeleteUniqueU8(); + Reducers->InvokeDeleteUniqueU8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("delete_unique_uuid")) + { + FDeleteUniqueUuidArgs Args = ReducerEvent.Reducer.GetAsDeleteUniqueUuid(); + Reducers->InvokeDeleteUniqueUuidWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_call_timestamp")) + { + FInsertCallTimestampArgs Args = ReducerEvent.Reducer.GetAsInsertCallTimestamp(); + Reducers->InvokeInsertCallTimestampWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_call_uuid_v_4")) + { + FInsertCallUuidV4Args Args = ReducerEvent.Reducer.GetAsInsertCallUuidV4(); + Reducers->InvokeInsertCallUuidV4WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_call_uuid_v_7")) + { + FInsertCallUuidV7Args Args = ReducerEvent.Reducer.GetAsInsertCallUuidV7(); + Reducers->InvokeInsertCallUuidV7WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_caller_one_connection_id")) + { + FInsertCallerOneConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertCallerOneConnectionId(); + Reducers->InvokeInsertCallerOneConnectionIdWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_caller_one_identity")) + { + FInsertCallerOneIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertCallerOneIdentity(); + Reducers->InvokeInsertCallerOneIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_caller_pk_connection_id")) + { + FInsertCallerPkConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertCallerPkConnectionId(); + Reducers->InvokeInsertCallerPkConnectionIdWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_caller_pk_identity")) + { + FInsertCallerPkIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertCallerPkIdentity(); + Reducers->InvokeInsertCallerPkIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_caller_unique_connection_id")) + { + FInsertCallerUniqueConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertCallerUniqueConnectionId(); + Reducers->InvokeInsertCallerUniqueConnectionIdWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_caller_unique_identity")) + { + FInsertCallerUniqueIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertCallerUniqueIdentity(); + Reducers->InvokeInsertCallerUniqueIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_caller_vec_connection_id")) + { + FInsertCallerVecConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertCallerVecConnectionId(); + Reducers->InvokeInsertCallerVecConnectionIdWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_caller_vec_identity")) + { + FInsertCallerVecIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertCallerVecIdentity(); + Reducers->InvokeInsertCallerVecIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_into_btree_u_32")) + { + FInsertIntoBtreeU32Args Args = ReducerEvent.Reducer.GetAsInsertIntoBtreeU32(); + Reducers->InvokeInsertIntoBtreeU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_into_indexed_simple_enum")) + { + FInsertIntoIndexedSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsInsertIntoIndexedSimpleEnum(); + Reducers->InvokeInsertIntoIndexedSimpleEnumWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_into_pk_btree_u_32")) + { + FInsertIntoPkBtreeU32Args Args = ReducerEvent.Reducer.GetAsInsertIntoPkBtreeU32(); + Reducers->InvokeInsertIntoPkBtreeU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_large_table")) + { + FInsertLargeTableArgs Args = ReducerEvent.Reducer.GetAsInsertLargeTable(); + Reducers->InvokeInsertLargeTableWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_bool")) + { + FInsertOneBoolArgs Args = ReducerEvent.Reducer.GetAsInsertOneBool(); + Reducers->InvokeInsertOneBoolWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_byte_struct")) + { + FInsertOneByteStructArgs Args = ReducerEvent.Reducer.GetAsInsertOneByteStruct(); + Reducers->InvokeInsertOneByteStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_connection_id")) + { + FInsertOneConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertOneConnectionId(); + Reducers->InvokeInsertOneConnectionIdWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_enum_with_payload")) + { + FInsertOneEnumWithPayloadArgs Args = ReducerEvent.Reducer.GetAsInsertOneEnumWithPayload(); + Reducers->InvokeInsertOneEnumWithPayloadWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_every_primitive_struct")) + { + FInsertOneEveryPrimitiveStructArgs Args = ReducerEvent.Reducer.GetAsInsertOneEveryPrimitiveStruct(); + Reducers->InvokeInsertOneEveryPrimitiveStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_every_vec_struct")) + { + FInsertOneEveryVecStructArgs Args = ReducerEvent.Reducer.GetAsInsertOneEveryVecStruct(); + Reducers->InvokeInsertOneEveryVecStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_f_32")) + { + FInsertOneF32Args Args = ReducerEvent.Reducer.GetAsInsertOneF32(); + Reducers->InvokeInsertOneF32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_f_64")) + { + FInsertOneF64Args Args = ReducerEvent.Reducer.GetAsInsertOneF64(); + Reducers->InvokeInsertOneF64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_i_128")) + { + FInsertOneI128Args Args = ReducerEvent.Reducer.GetAsInsertOneI128(); + Reducers->InvokeInsertOneI128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_i_16")) + { + FInsertOneI16Args Args = ReducerEvent.Reducer.GetAsInsertOneI16(); + Reducers->InvokeInsertOneI16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_i_256")) + { + FInsertOneI256Args Args = ReducerEvent.Reducer.GetAsInsertOneI256(); + Reducers->InvokeInsertOneI256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_i_32")) + { + FInsertOneI32Args Args = ReducerEvent.Reducer.GetAsInsertOneI32(); + Reducers->InvokeInsertOneI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_i_64")) + { + FInsertOneI64Args Args = ReducerEvent.Reducer.GetAsInsertOneI64(); + Reducers->InvokeInsertOneI64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_i_8")) + { + FInsertOneI8Args Args = ReducerEvent.Reducer.GetAsInsertOneI8(); + Reducers->InvokeInsertOneI8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_identity")) + { + FInsertOneIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertOneIdentity(); + Reducers->InvokeInsertOneIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_simple_enum")) + { + FInsertOneSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsInsertOneSimpleEnum(); + Reducers->InvokeInsertOneSimpleEnumWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_string")) + { + FInsertOneStringArgs Args = ReducerEvent.Reducer.GetAsInsertOneString(); + Reducers->InvokeInsertOneStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_timestamp")) + { + FInsertOneTimestampArgs Args = ReducerEvent.Reducer.GetAsInsertOneTimestamp(); + Reducers->InvokeInsertOneTimestampWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_u_128")) + { + FInsertOneU128Args Args = ReducerEvent.Reducer.GetAsInsertOneU128(); + Reducers->InvokeInsertOneU128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_u_16")) + { + FInsertOneU16Args Args = ReducerEvent.Reducer.GetAsInsertOneU16(); + Reducers->InvokeInsertOneU16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_u_256")) + { + FInsertOneU256Args Args = ReducerEvent.Reducer.GetAsInsertOneU256(); + Reducers->InvokeInsertOneU256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_u_32")) + { + FInsertOneU32Args Args = ReducerEvent.Reducer.GetAsInsertOneU32(); + Reducers->InvokeInsertOneU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_u_64")) + { + FInsertOneU64Args Args = ReducerEvent.Reducer.GetAsInsertOneU64(); + Reducers->InvokeInsertOneU64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_u_8")) + { + FInsertOneU8Args Args = ReducerEvent.Reducer.GetAsInsertOneU8(); + Reducers->InvokeInsertOneU8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_unit_struct")) + { + FInsertOneUnitStructArgs Args = ReducerEvent.Reducer.GetAsInsertOneUnitStruct(); + Reducers->InvokeInsertOneUnitStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_one_uuid")) + { + FInsertOneUuidArgs Args = ReducerEvent.Reducer.GetAsInsertOneUuid(); + Reducers->InvokeInsertOneUuidWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_option_every_primitive_struct")) + { + FInsertOptionEveryPrimitiveStructArgs Args = ReducerEvent.Reducer.GetAsInsertOptionEveryPrimitiveStruct(); + Reducers->InvokeInsertOptionEveryPrimitiveStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_option_i_32")) + { + FInsertOptionI32Args Args = ReducerEvent.Reducer.GetAsInsertOptionI32(); + Reducers->InvokeInsertOptionI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_option_identity")) + { + FInsertOptionIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertOptionIdentity(); + Reducers->InvokeInsertOptionIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_option_simple_enum")) + { + FInsertOptionSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsInsertOptionSimpleEnum(); + Reducers->InvokeInsertOptionSimpleEnumWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_option_string")) + { + FInsertOptionStringArgs Args = ReducerEvent.Reducer.GetAsInsertOptionString(); + Reducers->InvokeInsertOptionStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_option_uuid")) + { + FInsertOptionUuidArgs Args = ReducerEvent.Reducer.GetAsInsertOptionUuid(); + Reducers->InvokeInsertOptionUuidWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_option_vec_option_i_32")) + { + FInsertOptionVecOptionI32Args Args = ReducerEvent.Reducer.GetAsInsertOptionVecOptionI32(); + Reducers->InvokeInsertOptionVecOptionI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_bool")) + { + FInsertPkBoolArgs Args = ReducerEvent.Reducer.GetAsInsertPkBool(); + Reducers->InvokeInsertPkBoolWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_connection_id")) + { + FInsertPkConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertPkConnectionId(); + Reducers->InvokeInsertPkConnectionIdWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_i_128")) + { + FInsertPkI128Args Args = ReducerEvent.Reducer.GetAsInsertPkI128(); + Reducers->InvokeInsertPkI128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_i_16")) + { + FInsertPkI16Args Args = ReducerEvent.Reducer.GetAsInsertPkI16(); + Reducers->InvokeInsertPkI16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_i_256")) + { + FInsertPkI256Args Args = ReducerEvent.Reducer.GetAsInsertPkI256(); + Reducers->InvokeInsertPkI256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_i_32")) + { + FInsertPkI32Args Args = ReducerEvent.Reducer.GetAsInsertPkI32(); + Reducers->InvokeInsertPkI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_i_64")) + { + FInsertPkI64Args Args = ReducerEvent.Reducer.GetAsInsertPkI64(); + Reducers->InvokeInsertPkI64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_i_8")) + { + FInsertPkI8Args Args = ReducerEvent.Reducer.GetAsInsertPkI8(); + Reducers->InvokeInsertPkI8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_identity")) + { + FInsertPkIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertPkIdentity(); + Reducers->InvokeInsertPkIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_simple_enum")) + { + FInsertPkSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsInsertPkSimpleEnum(); + Reducers->InvokeInsertPkSimpleEnumWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_string")) + { + FInsertPkStringArgs Args = ReducerEvent.Reducer.GetAsInsertPkString(); + Reducers->InvokeInsertPkStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_u_128")) + { + FInsertPkU128Args Args = ReducerEvent.Reducer.GetAsInsertPkU128(); + Reducers->InvokeInsertPkU128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_u_16")) + { + FInsertPkU16Args Args = ReducerEvent.Reducer.GetAsInsertPkU16(); + Reducers->InvokeInsertPkU16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_u_256")) + { + FInsertPkU256Args Args = ReducerEvent.Reducer.GetAsInsertPkU256(); + Reducers->InvokeInsertPkU256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_u_32")) + { + FInsertPkU32Args Args = ReducerEvent.Reducer.GetAsInsertPkU32(); + Reducers->InvokeInsertPkU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_u_32_two")) + { + FInsertPkU32TwoArgs Args = ReducerEvent.Reducer.GetAsInsertPkU32Two(); + Reducers->InvokeInsertPkU32TwoWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_u_64")) + { + FInsertPkU64Args Args = ReducerEvent.Reducer.GetAsInsertPkU64(); + Reducers->InvokeInsertPkU64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_u_8")) + { + FInsertPkU8Args Args = ReducerEvent.Reducer.GetAsInsertPkU8(); + Reducers->InvokeInsertPkU8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_pk_uuid")) + { + FInsertPkUuidArgs Args = ReducerEvent.Reducer.GetAsInsertPkUuid(); + Reducers->InvokeInsertPkUuidWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_primitives_as_strings")) + { + FInsertPrimitivesAsStringsArgs Args = ReducerEvent.Reducer.GetAsInsertPrimitivesAsStrings(); + Reducers->InvokeInsertPrimitivesAsStringsWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_result_every_primitive_struct_string")) + { + FInsertResultEveryPrimitiveStructStringArgs Args = ReducerEvent.Reducer.GetAsInsertResultEveryPrimitiveStructString(); + Reducers->InvokeInsertResultEveryPrimitiveStructStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_result_i_32_string")) + { + FInsertResultI32StringArgs Args = ReducerEvent.Reducer.GetAsInsertResultI32String(); + Reducers->InvokeInsertResultI32StringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_result_identity_string")) + { + FInsertResultIdentityStringArgs Args = ReducerEvent.Reducer.GetAsInsertResultIdentityString(); + Reducers->InvokeInsertResultIdentityStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_result_simple_enum_i_32")) + { + FInsertResultSimpleEnumI32Args Args = ReducerEvent.Reducer.GetAsInsertResultSimpleEnumI32(); + Reducers->InvokeInsertResultSimpleEnumI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_result_string_i_32")) + { + FInsertResultStringI32Args Args = ReducerEvent.Reducer.GetAsInsertResultStringI32(); + Reducers->InvokeInsertResultStringI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_result_vec_i_32_string")) + { + FInsertResultVecI32StringArgs Args = ReducerEvent.Reducer.GetAsInsertResultVecI32String(); + Reducers->InvokeInsertResultVecI32StringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_table_holds_table")) + { + FInsertTableHoldsTableArgs Args = ReducerEvent.Reducer.GetAsInsertTableHoldsTable(); + Reducers->InvokeInsertTableHoldsTableWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_bool")) + { + FInsertUniqueBoolArgs Args = ReducerEvent.Reducer.GetAsInsertUniqueBool(); + Reducers->InvokeInsertUniqueBoolWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_connection_id")) + { + FInsertUniqueConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertUniqueConnectionId(); + Reducers->InvokeInsertUniqueConnectionIdWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_i_128")) + { + FInsertUniqueI128Args Args = ReducerEvent.Reducer.GetAsInsertUniqueI128(); + Reducers->InvokeInsertUniqueI128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_i_16")) + { + FInsertUniqueI16Args Args = ReducerEvent.Reducer.GetAsInsertUniqueI16(); + Reducers->InvokeInsertUniqueI16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_i_256")) + { + FInsertUniqueI256Args Args = ReducerEvent.Reducer.GetAsInsertUniqueI256(); + Reducers->InvokeInsertUniqueI256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_i_32")) + { + FInsertUniqueI32Args Args = ReducerEvent.Reducer.GetAsInsertUniqueI32(); + Reducers->InvokeInsertUniqueI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_i_64")) + { + FInsertUniqueI64Args Args = ReducerEvent.Reducer.GetAsInsertUniqueI64(); + Reducers->InvokeInsertUniqueI64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_i_8")) + { + FInsertUniqueI8Args Args = ReducerEvent.Reducer.GetAsInsertUniqueI8(); + Reducers->InvokeInsertUniqueI8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_identity")) + { + FInsertUniqueIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertUniqueIdentity(); + Reducers->InvokeInsertUniqueIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_string")) + { + FInsertUniqueStringArgs Args = ReducerEvent.Reducer.GetAsInsertUniqueString(); + Reducers->InvokeInsertUniqueStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_u_128")) + { + FInsertUniqueU128Args Args = ReducerEvent.Reducer.GetAsInsertUniqueU128(); + Reducers->InvokeInsertUniqueU128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_u_16")) + { + FInsertUniqueU16Args Args = ReducerEvent.Reducer.GetAsInsertUniqueU16(); + Reducers->InvokeInsertUniqueU16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_u_256")) + { + FInsertUniqueU256Args Args = ReducerEvent.Reducer.GetAsInsertUniqueU256(); + Reducers->InvokeInsertUniqueU256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_u_32")) + { + FInsertUniqueU32Args Args = ReducerEvent.Reducer.GetAsInsertUniqueU32(); + Reducers->InvokeInsertUniqueU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_u_32_update_pk_u_32")) + { + FInsertUniqueU32UpdatePkU32Args Args = ReducerEvent.Reducer.GetAsInsertUniqueU32UpdatePkU32(); + Reducers->InvokeInsertUniqueU32UpdatePkU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_u_64")) + { + FInsertUniqueU64Args Args = ReducerEvent.Reducer.GetAsInsertUniqueU64(); + Reducers->InvokeInsertUniqueU64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_u_8")) + { + FInsertUniqueU8Args Args = ReducerEvent.Reducer.GetAsInsertUniqueU8(); + Reducers->InvokeInsertUniqueU8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_unique_uuid")) + { + FInsertUniqueUuidArgs Args = ReducerEvent.Reducer.GetAsInsertUniqueUuid(); + Reducers->InvokeInsertUniqueUuidWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_user")) + { + FInsertUserArgs Args = ReducerEvent.Reducer.GetAsInsertUser(); + Reducers->InvokeInsertUserWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_bool")) + { + FInsertVecBoolArgs Args = ReducerEvent.Reducer.GetAsInsertVecBool(); + Reducers->InvokeInsertVecBoolWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_byte_struct")) + { + FInsertVecByteStructArgs Args = ReducerEvent.Reducer.GetAsInsertVecByteStruct(); + Reducers->InvokeInsertVecByteStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_connection_id")) + { + FInsertVecConnectionIdArgs Args = ReducerEvent.Reducer.GetAsInsertVecConnectionId(); + Reducers->InvokeInsertVecConnectionIdWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_enum_with_payload")) + { + FInsertVecEnumWithPayloadArgs Args = ReducerEvent.Reducer.GetAsInsertVecEnumWithPayload(); + Reducers->InvokeInsertVecEnumWithPayloadWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_every_primitive_struct")) + { + FInsertVecEveryPrimitiveStructArgs Args = ReducerEvent.Reducer.GetAsInsertVecEveryPrimitiveStruct(); + Reducers->InvokeInsertVecEveryPrimitiveStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_every_vec_struct")) + { + FInsertVecEveryVecStructArgs Args = ReducerEvent.Reducer.GetAsInsertVecEveryVecStruct(); + Reducers->InvokeInsertVecEveryVecStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_f_32")) + { + FInsertVecF32Args Args = ReducerEvent.Reducer.GetAsInsertVecF32(); + Reducers->InvokeInsertVecF32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_f_64")) + { + FInsertVecF64Args Args = ReducerEvent.Reducer.GetAsInsertVecF64(); + Reducers->InvokeInsertVecF64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_i_128")) + { + FInsertVecI128Args Args = ReducerEvent.Reducer.GetAsInsertVecI128(); + Reducers->InvokeInsertVecI128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_i_16")) + { + FInsertVecI16Args Args = ReducerEvent.Reducer.GetAsInsertVecI16(); + Reducers->InvokeInsertVecI16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_i_256")) + { + FInsertVecI256Args Args = ReducerEvent.Reducer.GetAsInsertVecI256(); + Reducers->InvokeInsertVecI256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_i_32")) + { + FInsertVecI32Args Args = ReducerEvent.Reducer.GetAsInsertVecI32(); + Reducers->InvokeInsertVecI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_i_64")) + { + FInsertVecI64Args Args = ReducerEvent.Reducer.GetAsInsertVecI64(); + Reducers->InvokeInsertVecI64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_i_8")) + { + FInsertVecI8Args Args = ReducerEvent.Reducer.GetAsInsertVecI8(); + Reducers->InvokeInsertVecI8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_identity")) + { + FInsertVecIdentityArgs Args = ReducerEvent.Reducer.GetAsInsertVecIdentity(); + Reducers->InvokeInsertVecIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_simple_enum")) + { + FInsertVecSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsInsertVecSimpleEnum(); + Reducers->InvokeInsertVecSimpleEnumWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_string")) + { + FInsertVecStringArgs Args = ReducerEvent.Reducer.GetAsInsertVecString(); + Reducers->InvokeInsertVecStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_timestamp")) + { + FInsertVecTimestampArgs Args = ReducerEvent.Reducer.GetAsInsertVecTimestamp(); + Reducers->InvokeInsertVecTimestampWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_u_128")) + { + FInsertVecU128Args Args = ReducerEvent.Reducer.GetAsInsertVecU128(); + Reducers->InvokeInsertVecU128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_u_16")) + { + FInsertVecU16Args Args = ReducerEvent.Reducer.GetAsInsertVecU16(); + Reducers->InvokeInsertVecU16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_u_256")) + { + FInsertVecU256Args Args = ReducerEvent.Reducer.GetAsInsertVecU256(); + Reducers->InvokeInsertVecU256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_u_32")) + { + FInsertVecU32Args Args = ReducerEvent.Reducer.GetAsInsertVecU32(); + Reducers->InvokeInsertVecU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_u_64")) + { + FInsertVecU64Args Args = ReducerEvent.Reducer.GetAsInsertVecU64(); + Reducers->InvokeInsertVecU64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_u_8")) + { + FInsertVecU8Args Args = ReducerEvent.Reducer.GetAsInsertVecU8(); + Reducers->InvokeInsertVecU8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_unit_struct")) + { + FInsertVecUnitStructArgs Args = ReducerEvent.Reducer.GetAsInsertVecUnitStruct(); + Reducers->InvokeInsertVecUnitStructWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_vec_uuid")) + { + FInsertVecUuidArgs Args = ReducerEvent.Reducer.GetAsInsertVecUuid(); + Reducers->InvokeInsertVecUuidWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("no_op_succeeds")) + { + FNoOpSucceedsArgs Args = ReducerEvent.Reducer.GetAsNoOpSucceeds(); + Reducers->InvokeNoOpSucceedsWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("sorted_uuids_insert")) + { + FSortedUuidsInsertArgs Args = ReducerEvent.Reducer.GetAsSortedUuidsInsert(); + Reducers->InvokeSortedUuidsInsertWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_indexed_simple_enum")) + { + FUpdateIndexedSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsUpdateIndexedSimpleEnum(); + Reducers->InvokeUpdateIndexedSimpleEnumWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_bool")) + { + FUpdatePkBoolArgs Args = ReducerEvent.Reducer.GetAsUpdatePkBool(); + Reducers->InvokeUpdatePkBoolWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_connection_id")) + { + FUpdatePkConnectionIdArgs Args = ReducerEvent.Reducer.GetAsUpdatePkConnectionId(); + Reducers->InvokeUpdatePkConnectionIdWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_i_128")) + { + FUpdatePkI128Args Args = ReducerEvent.Reducer.GetAsUpdatePkI128(); + Reducers->InvokeUpdatePkI128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_i_16")) + { + FUpdatePkI16Args Args = ReducerEvent.Reducer.GetAsUpdatePkI16(); + Reducers->InvokeUpdatePkI16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_i_256")) + { + FUpdatePkI256Args Args = ReducerEvent.Reducer.GetAsUpdatePkI256(); + Reducers->InvokeUpdatePkI256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_i_32")) + { + FUpdatePkI32Args Args = ReducerEvent.Reducer.GetAsUpdatePkI32(); + Reducers->InvokeUpdatePkI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_i_64")) + { + FUpdatePkI64Args Args = ReducerEvent.Reducer.GetAsUpdatePkI64(); + Reducers->InvokeUpdatePkI64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_i_8")) + { + FUpdatePkI8Args Args = ReducerEvent.Reducer.GetAsUpdatePkI8(); + Reducers->InvokeUpdatePkI8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_identity")) + { + FUpdatePkIdentityArgs Args = ReducerEvent.Reducer.GetAsUpdatePkIdentity(); + Reducers->InvokeUpdatePkIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_simple_enum")) + { + FUpdatePkSimpleEnumArgs Args = ReducerEvent.Reducer.GetAsUpdatePkSimpleEnum(); + Reducers->InvokeUpdatePkSimpleEnumWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_string")) + { + FUpdatePkStringArgs Args = ReducerEvent.Reducer.GetAsUpdatePkString(); + Reducers->InvokeUpdatePkStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_u_128")) + { + FUpdatePkU128Args Args = ReducerEvent.Reducer.GetAsUpdatePkU128(); + Reducers->InvokeUpdatePkU128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_u_16")) + { + FUpdatePkU16Args Args = ReducerEvent.Reducer.GetAsUpdatePkU16(); + Reducers->InvokeUpdatePkU16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_u_256")) + { + FUpdatePkU256Args Args = ReducerEvent.Reducer.GetAsUpdatePkU256(); + Reducers->InvokeUpdatePkU256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_u_32")) + { + FUpdatePkU32Args Args = ReducerEvent.Reducer.GetAsUpdatePkU32(); + Reducers->InvokeUpdatePkU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_u_32_two")) + { + FUpdatePkU32TwoArgs Args = ReducerEvent.Reducer.GetAsUpdatePkU32Two(); + Reducers->InvokeUpdatePkU32TwoWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_u_64")) + { + FUpdatePkU64Args Args = ReducerEvent.Reducer.GetAsUpdatePkU64(); + Reducers->InvokeUpdatePkU64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_u_8")) + { + FUpdatePkU8Args Args = ReducerEvent.Reducer.GetAsUpdatePkU8(); + Reducers->InvokeUpdatePkU8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_pk_uuid")) + { + FUpdatePkUuidArgs Args = ReducerEvent.Reducer.GetAsUpdatePkUuid(); + Reducers->InvokeUpdatePkUuidWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_bool")) + { + FUpdateUniqueBoolArgs Args = ReducerEvent.Reducer.GetAsUpdateUniqueBool(); + Reducers->InvokeUpdateUniqueBoolWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_connection_id")) + { + FUpdateUniqueConnectionIdArgs Args = ReducerEvent.Reducer.GetAsUpdateUniqueConnectionId(); + Reducers->InvokeUpdateUniqueConnectionIdWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_i_128")) + { + FUpdateUniqueI128Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueI128(); + Reducers->InvokeUpdateUniqueI128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_i_16")) + { + FUpdateUniqueI16Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueI16(); + Reducers->InvokeUpdateUniqueI16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_i_256")) + { + FUpdateUniqueI256Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueI256(); + Reducers->InvokeUpdateUniqueI256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_i_32")) + { + FUpdateUniqueI32Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueI32(); + Reducers->InvokeUpdateUniqueI32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_i_64")) + { + FUpdateUniqueI64Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueI64(); + Reducers->InvokeUpdateUniqueI64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_i_8")) + { + FUpdateUniqueI8Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueI8(); + Reducers->InvokeUpdateUniqueI8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_identity")) + { + FUpdateUniqueIdentityArgs Args = ReducerEvent.Reducer.GetAsUpdateUniqueIdentity(); + Reducers->InvokeUpdateUniqueIdentityWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_string")) + { + FUpdateUniqueStringArgs Args = ReducerEvent.Reducer.GetAsUpdateUniqueString(); + Reducers->InvokeUpdateUniqueStringWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_u_128")) + { + FUpdateUniqueU128Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueU128(); + Reducers->InvokeUpdateUniqueU128WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_u_16")) + { + FUpdateUniqueU16Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueU16(); + Reducers->InvokeUpdateUniqueU16WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_u_256")) + { + FUpdateUniqueU256Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueU256(); + Reducers->InvokeUpdateUniqueU256WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_u_32")) + { + FUpdateUniqueU32Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueU32(); + Reducers->InvokeUpdateUniqueU32WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_u_64")) + { + FUpdateUniqueU64Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueU64(); + Reducers->InvokeUpdateUniqueU64WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_u_8")) + { + FUpdateUniqueU8Args Args = ReducerEvent.Reducer.GetAsUpdateUniqueU8(); + Reducers->InvokeUpdateUniqueU8WithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_unique_uuid")) + { + FUpdateUniqueUuidArgs Args = ReducerEvent.Reducer.GetAsUpdateUniqueUuid(); + Reducers->InvokeUpdateUniqueUuidWithArgs(Context, Args); + return; + } + + UE_LOG(LogTemp, Warning, TEXT("Unknown reducer: %s"), *ReducerName); +} + +void UDbConnection::ReducerEventFailed(const FReducerEvent& Event, const FString ErrorMessage) +{ + if (!Reducers) { return; } + + FTestClientReducerEvent ReducerEvent; + ReducerEvent.CallerConnectionId = Event.CallerConnectionId; + ReducerEvent.CallerIdentity = Event.CallerIdentity; + ReducerEvent.EnergyConsumed = Event.EnergyConsumed; + ReducerEvent.Status = Event.Status; + ReducerEvent.Timestamp = Event.Timestamp; + + FReducerEventContext Context(this, ReducerEvent); + + if (Reducers->InternalOnUnhandledReducerError.IsBound()) + { + Reducers->InternalOnUnhandledReducerError.Broadcast(Context, ErrorMessage); + } +} + +void UDbConnection::ProcedureEventFailed(const FProcedureEvent& Event, const FString ErrorMessage) +{ + if (!Procedures) { return; } + + FTestClientProcedureEvent ProcedureEvent; + ProcedureEvent.Status = FSpacetimeDBProcedureStatus::FromStatus(Event.Status); + ProcedureEvent.Timestamp = Event.Timestamp; + + FProcedureEventContext Context(this, ProcedureEvent); + + if (Procedures->InternalOnUnhandledProcedureError.IsBound()) + { + Procedures->InternalOnUnhandledProcedureError.Broadcast(Context, ErrorMessage); + } +} + +UDbConnectionBuilder* UDbConnection::Builder() +{ + return NewObject(); +} +// Added for creating subscriptions +USubscriptionBuilder* UDbConnection::SubscriptionBuilder() +{ + USubscriptionBuilder* Builder = NewObject(this); + Builder->Conn = this; + return Builder; +} +USubscriptionBuilder* USubscriptionBuilder::OnApplied(FOnSubscriptionApplied Callback) +{ + OnAppliedDelegateInternal = Callback; + return this; +} +USubscriptionBuilder* USubscriptionBuilder::OnError(FOnSubscriptionError Callback) +{ + OnErrorDelegateInternal = Callback; + return this; +} +USubscriptionHandle* USubscriptionBuilder::Subscribe() +{ + const TArray SqlQueries = PendingSqlQueries; + PendingSqlQueries.Empty(); + return Subscribe(SqlQueries); +} +USubscriptionHandle* USubscriptionBuilder::Subscribe(const TArray& SQL) +{ + USubscriptionHandle* Handle = NewObject(); + + // Store user callbacks on the handle + Handle->Conn = Conn; + Handle->OnAppliedDelegate = OnAppliedDelegateInternal; + Handle->OnErrorDelegate = OnErrorDelegateInternal; + + // Bind forwarding functions that will convert base contexts + FSubscriptionEventDelegate BaseApplied; + BaseApplied.BindUFunction(Handle, TEXT("ForwardOnApplied")); + OnAppliedBase(BaseApplied); + + FSubscriptionErrorDelegate BaseError; + BaseError.BindUFunction(Handle, TEXT("ForwardOnError")); + OnErrorBase(BaseError); + + SubscribeBase(SQL, Handle); + if (Conn) + { + Conn->StartSubscription(Handle); + } + return Handle; +} +USubscriptionHandle* USubscriptionBuilder::SubscribeToAllTables() +{ + return Subscribe(FQueryBuilder::AllTablesSqlQueries()); +} + +USubscriptionBuilder* USubscriptionBuilder::AddBlueprintQuery(const FBlueprintQuery& Query) +{ + PendingSqlQueries.Add(Query.Sql); + return this; +} + +USubscriptionBuilder* USubscriptionBuilder::AddBtreeU32Query(const FBtreeU32Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddIndexedSimpleEnumQuery(const FIndexedSimpleEnumQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddLargeTableQuery(const FLargeTableQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneBoolQuery(const FOneBoolQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneByteStructQuery(const FOneByteStructQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneConnectionIdQuery(const FOneConnectionIdQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneEnumWithPayloadQuery(const FOneEnumWithPayloadQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneEveryPrimitiveStructQuery(const FOneEveryPrimitiveStructQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneEveryVecStructQuery(const FOneEveryVecStructQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneF32Query(const FOneF32Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneF64Query(const FOneF64Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneI128Query(const FOneI128Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneI16Query(const FOneI16Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneI256Query(const FOneI256Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneI32Query(const FOneI32Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneI64Query(const FOneI64Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneI8Query(const FOneI8Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneIdentityQuery(const FOneIdentityQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneSimpleEnumQuery(const FOneSimpleEnumQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneStringQuery(const FOneStringQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneTimestampQuery(const FOneTimestampQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneU128Query(const FOneU128Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneU16Query(const FOneU16Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneU256Query(const FOneU256Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneU32Query(const FOneU32Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneU64Query(const FOneU64Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneU8Query(const FOneU8Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneUnitStructQuery(const FOneUnitStructQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOneUuidQuery(const FOneUuidQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOptionEveryPrimitiveStructQuery(const FOptionEveryPrimitiveStructQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOptionI32Query(const FOptionI32Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOptionIdentityQuery(const FOptionIdentityQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOptionSimpleEnumQuery(const FOptionSimpleEnumQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOptionStringQuery(const FOptionStringQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOptionUuidQuery(const FOptionUuidQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddOptionVecOptionI32Query(const FOptionVecOptionI32Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkBoolQuery(const FPkBoolQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkConnectionIdQuery(const FPkConnectionIdQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkI128Query(const FPkI128Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkI16Query(const FPkI16Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkI256Query(const FPkI256Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkI32Query(const FPkI32Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkI64Query(const FPkI64Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkI8Query(const FPkI8Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkIdentityQuery(const FPkIdentityQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkSimpleEnumQuery(const FPkSimpleEnumQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkStringQuery(const FPkStringQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkU128Query(const FPkU128Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkU16Query(const FPkU16Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkU256Query(const FPkU256Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkU32Query(const FPkU32Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkU32TwoQuery(const FPkU32TwoQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkU64Query(const FPkU64Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkU8Query(const FPkU8Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkUuidQuery(const FPkUuidQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddResultEveryPrimitiveStructStringQuery(const FResultEveryPrimitiveStructStringQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddResultI32StringQuery(const FResultI32StringQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddResultIdentityStringQuery(const FResultIdentityStringQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddResultSimpleEnumI32Query(const FResultSimpleEnumI32Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddResultStringI32Query(const FResultStringI32Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddResultVecI32StringQuery(const FResultVecI32StringQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddScheduledTableQuery(const FScheduledTableQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddTableHoldsTableQuery(const FTableHoldsTableQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueBoolQuery(const FUniqueBoolQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueConnectionIdQuery(const FUniqueConnectionIdQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueI128Query(const FUniqueI128Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueI16Query(const FUniqueI16Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueI256Query(const FUniqueI256Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueI32Query(const FUniqueI32Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueI64Query(const FUniqueI64Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueI8Query(const FUniqueI8Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueIdentityQuery(const FUniqueIdentityQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueStringQuery(const FUniqueStringQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueU128Query(const FUniqueU128Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueU16Query(const FUniqueU16Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueU256Query(const FUniqueU256Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueU32Query(const FUniqueU32Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueU64Query(const FUniqueU64Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueU8Query(const FUniqueU8Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUniqueUuidQuery(const FUniqueUuidQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddUsersQuery(const FUsersQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecBoolQuery(const FVecBoolQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecByteStructQuery(const FVecByteStructQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecConnectionIdQuery(const FVecConnectionIdQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecEnumWithPayloadQuery(const FVecEnumWithPayloadQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecEveryPrimitiveStructQuery(const FVecEveryPrimitiveStructQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecEveryVecStructQuery(const FVecEveryVecStructQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecF32Query(const FVecF32Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecF64Query(const FVecF64Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecI128Query(const FVecI128Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecI16Query(const FVecI16Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecI256Query(const FVecI256Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecI32Query(const FVecI32Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecI64Query(const FVecI64Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecI8Query(const FVecI8Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecIdentityQuery(const FVecIdentityQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecSimpleEnumQuery(const FVecSimpleEnumQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecStringQuery(const FVecStringQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecTimestampQuery(const FVecTimestampQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecU128Query(const FVecU128Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecU16Query(const FVecU16Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecU256Query(const FVecU256Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecU32Query(const FVecU32Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecU64Query(const FVecU64Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecU8Query(const FVecU8Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecUnitStructQuery(const FVecUnitStructQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddVecUuidQuery(const FVecUuidQuery& Query) { - return Subscribe({ "SELECT * FROM * " }); + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); } USubscriptionHandle::USubscriptionHandle(UDbConnection* InConn) @@ -11031,7 +16683,7 @@ void UDbConnection::ForwardOnConnect(UDbConnectionBase* BaseConnection, FSpaceti { if (OnConnectDelegate.IsBound()) { - OnConnectDelegate.Execute(this, Identity, Token); + OnConnectDelegate.Execute(this, InIdentity, InToken); } } void UDbConnection::ForwardOnDisconnect(UDbConnectionBase* BaseConnection, const FString& Error) diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Private/Tests/CommonTestFunctions.cpp b/sdks/unreal/tests/TestClient/Source/TestClient/Private/Tests/CommonTestFunctions.cpp index a7b5faea2fb..0a28937a849 100644 --- a/sdks/unreal/tests/TestClient/Source/TestClient/Private/Tests/CommonTestFunctions.cpp +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Private/Tests/CommonTestFunctions.cpp @@ -10,11 +10,11 @@ void UTestHelperDelegates::HandleConnect(UDbConnection* Conn, FSpacetimeDBIdenti } } -void UTestHelperDelegates::HandleConnectError(UDbConnection* Conn, const FString& Error) +void UTestHelperDelegates::HandleConnectError(const FString& Error) { if (OnConnectError) { - OnConnectError(Conn, Error); + OnConnectError(Error); } } @@ -95,7 +95,7 @@ UDbConnection* ConnectWithThen(TSharedPtr Counter, Callback(Conn); Counter->MarkSuccess(ConnectTestName); }; - TestHelper->OnConnectError = [Counter, ConnectTestName](UDbConnection*, const FString& Error) + TestHelper->OnConnectError = [Counter, ConnectTestName](const FString& Error) { Counter->MarkFailure(ConnectTestName, FString::Printf(TEXT("Connect error: %s"), *Error)); }; @@ -116,7 +116,7 @@ UDbConnection* ConnectWithThen(TSharedPtr Counter, UDbConnectionBuilder* Builder = UDbConnection::Builder() - ->WithUri(TEXT("localhost:3000")) + ->WithUri(GetServerUrl()) ->WithDatabaseName(DbName) ->OnConnect(ConnectDelegate) ->OnDisconnect(DisconnectDelegate) @@ -332,6 +332,23 @@ bool GetDbName(FString& DBName, FString& Error) return false; } +FString GetServerUrl() +{ + const FString ServerUrlEnv = FPlatformMisc::GetEnvironmentVariable(TEXT("SPACETIME_SDK_TEST_SERVER_URL")); + if (!ServerUrlEnv.IsEmpty()) + { + return ServerUrlEnv; + } + + FString CmdValue; + if (FParse::Value(FCommandLine::Get(), TEXT("-SpacetimeServerUrl="), CmdValue)) + { + return CmdValue; + } + + return TEXT("localhost:3000"); +} + bool ValidateParameterConfig(FAutomationTestBase* Test) { FString DbName; diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Private/Tests/SpacetimeFullClientTests.cpp b/sdks/unreal/tests/TestClient/Source/TestClient/Private/Tests/SpacetimeFullClientTests.cpp index 4d201baeee3..b66fa452282 100644 --- a/sdks/unreal/tests/TestClient/Source/TestClient/Private/Tests/SpacetimeFullClientTests.cpp +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Private/Tests/SpacetimeFullClientTests.cpp @@ -102,6 +102,109 @@ static FString NormalizeDuration(const FSpacetimeDBTimeDuration &Dur) const double Seconds = static_cast(Dur.GetMicroseconds()) / 1'000'000.0; return TrimFloat(Seconds); } + +static void CompileTypedQueryBuilderSmoke(UDbConnection* Conn) +{ + Conn->SubscriptionBuilder() + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.OneU8().Where([](const FOneU8Cols& Cols) + { + return Cols.N.Eq(static_cast(1)); + }); + }) + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.OneString().Where([](const FOneStringCols& Cols) + { + return Cols.S.Eq(TEXT("typed-query-builder")); + }); + }) + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.OneTimestamp().Where([](const FOneTimestampCols& Cols) + { + return Cols.T.Gte(FSpacetimeDBTimestamp(1)); + }); + }) + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.PkU32().LeftSemijoin(Q.From.UniqueU32(), [](const FPkU32IxCols& Left, const FUniqueU32IxCols& Right) + { + return Left.N.Eq(Right.N); + }); + }) + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.UniqueU32().Where([](const FUniqueU32Cols&, const FUniqueU32IxCols& Ix) + { + return Ix.N.Eq(static_cast(7)); + }); + }); +} + +bool FBlueprintQueryBuilderBasicFlowTest::RunTest(const FString& Parameters) +{ + FOneU8Query Query = UQueryBuilderBlueprintLibrary::FromOneU8(); + TestEqual(TEXT("blueprint one_u_8 base sql"), Query.Sql, TEXT("SELECT * FROM \"one_u_8\"")); + + const FBlueprintPredicate Predicate = UQueryBuilderBlueprintLibrary::UInt8Equal( + UQueryBuilderBlueprintLibrary::OneU8N(Query), + static_cast(1)); + Query = UQueryBuilderBlueprintLibrary::OneU8Where(Query, Predicate); + TestEqual( + TEXT("blueprint one_u_8 filtered sql"), + Query.Sql, + TEXT("SELECT * FROM \"one_u_8\" WHERE (\"one_u_8\".\"n\" = 1)") + ); + + USubscriptionBuilder* Builder = NewObject(); + USubscriptionHandle* Handle = Builder->AddOneU8Query(Query)->Subscribe(); + TestNotNull(TEXT("blueprint one_u_8 handle"), Handle); + TestEqual(TEXT("blueprint one_u_8 builder sql count"), Handle->GetQuerySqls().Num(), 1); + TestEqual(TEXT("blueprint one_u_8 builder sql"), Handle->GetQuerySqls()[0], Query.Sql); + + const FString TypedDoubleSql = FString( + UTF8_TO_TCHAR( + FQueryBuilder() + .From.OneF64() + .Where([](const FOneF64Cols& Cols) + { + return Cols.F.Eq(0.123456789); + }) + .into_sql() + .c_str())); + TestEqual( + TEXT("typed one_f_64 precise sql"), + TypedDoubleSql, + TEXT("SELECT * FROM \"one_f_64\" WHERE (\"one_f_64\".\"f\" = 0.123456789)") + ); + + FOneF64Query DoubleQuery = UQueryBuilderBlueprintLibrary::FromOneF64(); + DoubleQuery = UQueryBuilderBlueprintLibrary::OneF64Where( + DoubleQuery, + UQueryBuilderBlueprintLibrary::DoubleEqual( + UQueryBuilderBlueprintLibrary::OneF64F(DoubleQuery), + 0.123456789)); + TestEqual( + TEXT("blueprint one_f_64 precise sql"), + DoubleQuery.Sql, + TEXT("SELECT * FROM \"one_f_64\" WHERE (\"one_f_64\".\"f\" = 0.123456789)") + ); + + FOneStringQuery StringQuery = UQueryBuilderBlueprintLibrary::FromOneString(); + StringQuery = UQueryBuilderBlueprintLibrary::OneStringWhere( + StringQuery, + UQueryBuilderBlueprintLibrary::StringEqual( + UQueryBuilderBlueprintLibrary::OneStringS(StringQuery), + TEXT("reuse-check"))); + USubscriptionHandle* SecondHandle = Builder->AddOneStringQuery(StringQuery)->Subscribe(); + TestNotNull(TEXT("second subscribe handle"), SecondHandle); + TestEqual(TEXT("second subscribe builder sql count"), SecondHandle->GetQuerySqls().Num(), 1); + TestEqual(TEXT("second subscribe builder sql"), SecondHandle->GetQuerySqls()[0], StringQuery.Sql); + + return true; +} // bool FInsertPrimitiveTest::RunTest(const FString &Parameters) @@ -1706,7 +1809,7 @@ static FString GetReauthTokenPath() return FPaths::Combine(Dir, TEXT("reauth_token.txt")); } -bool FReauth1Test::RunTest(const FString &Parameters) +bool FReauthTest::RunTest(const FString &Parameters) { TestName = "Reauth"; @@ -1718,81 +1821,49 @@ bool FReauth1Test::RunTest(const FString &Parameters) // Create and register a test counter to track completion. UTestHandler *Handler = CreateTestHandler(); Handler->Counter->Register(TEXT("ReauthPart1")); + Handler->Counter->Register(TEXT("ReauthPart2")); - UDbConnection *Connection = ConnectThen(Handler->Counter, TestName, [this, Handler](UDbConnection *Conn) - { - UCredentials::Init(TestName); + ConnectThen(Handler->Counter, TEXT("ReauthPart1"), [this, Handler](UDbConnection *Conn) + { const FString Token = UCredentials::LoadToken(); UE_LOG(LogTemp, Display, TEXT("[Reauth1] Loaded token: '%s'"), *Token); if (!Token.IsEmpty()) { const FString TokenFilePath = GetReauthTokenPath(); const bool bOK = FFileHelper::SaveStringToFile(Token, *TokenFilePath); - UE_LOG(LogTemp, Display, TEXT("[Reauth1] Save token -> %s (ok=%d)"), *TokenFilePath, bOK); + UE_LOG(LogTemp, Display, TEXT("[Reauth1] Save token -> %s (ok=%d)"), *TokenFilePath, bOK); UCredentials::SaveToken(Token); Handler->Counter->MarkSuccess("ReauthPart1"); - } - else - { - Handler->Counter->MarkFailure("ReauthPart1", TEXT("Token was not saved")); - } }); - // Wait for the test counter to signal completion. - ADD_LATENT_AUTOMATION_COMMAND(FWaitForTestCounter(*this, TestName, Handler->Counter, FPlatformTime::Seconds())); - - return true; -} - -bool FReauth2Test::RunTest(const FString &Parameters) -{ - TestName = "Reauth"; - - if (!ValidateParameterConfig(this)) - { - return false; - } - - // Create and register a test counter to track completion. - UTestHandler *Handler = CreateTestHandler(); - Handler->Counter->Register(TEXT("ReauthPart2")); - - UCredentials::Init(TestName); - const FString TokenFilePath = GetReauthTokenPath(); - //const FString OldToken = UCredentials::LoadToken(); - FString OldToken; - const bool bRead = FFileHelper::LoadFileToString(OldToken, *TokenFilePath); - - UE_LOG(LogTemp, Display, TEXT("[Reauth2] Read token (ok=%d) from %s: '%s'"), - bRead, *TokenFilePath, *OldToken); - if (!bRead || OldToken.IsEmpty()) - { - Handler->Counter->MarkFailure("ReauthPart2", TEXT("Missing/empty token file")); - ADD_LATENT_AUTOMATION_COMMAND(FWaitForTestCounter(*this, TestName, Handler->Counter, FPlatformTime::Seconds())); - return true; - } - - UDbConnection *Connection = ConnectWithThen( - Handler->Counter, - TestName, - [OldToken](UDbConnectionBuilder *Builder) - { - return Builder->WithToken(OldToken); - }, - [this, Handler, OldToken](UDbConnection *Conn) - { - const FString CurrentToken = UCredentials::LoadToken(); - UE_LOG(LogTemp, Display, TEXT("[Reauth2] CurrentToken='%s' OldToken='%s'"), - *CurrentToken, *OldToken); - if (CurrentToken == OldToken) - { - Handler->Counter->MarkSuccess("ReauthPart2"); + ConnectWithThen( + Handler->Counter, + TEXT("ReauthPart2"), + [Token](UDbConnectionBuilder *Builder) + { + return Builder->WithToken(Token); + }, + [Handler, Token](UDbConnection *Conn) + { + const FString CurrentToken = UCredentials::LoadToken(); + UE_LOG(LogTemp, Display, TEXT("[Reauth2] CurrentToken='%s' OldToken='%s'"), + *CurrentToken, *Token); + if (CurrentToken == Token) + { + Handler->Counter->MarkSuccess("ReauthPart2"); + } + else + { + Handler->Counter->MarkFailure("ReauthPart2", FString(TEXT("Unexpected Token: ")) + CurrentToken); + } + }); } else { - Handler->Counter->MarkFailure("ReauthPart2", FString(TEXT("Unexpected Token: ")) + CurrentToken); + Handler->Counter->MarkFailure("ReauthPart1", TEXT("Token was not saved")); + Handler->Counter->MarkFailure("ReauthPart2", TEXT("Skipped because part 1 did not save a token")); } - }); + }); // Wait for the test counter to signal completion. ADD_LATENT_AUTOMATION_COMMAND(FWaitForTestCounter(*this, TestName, Handler->Counter, FPlatformTime::Seconds())); diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneBool.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneBool.g.h new file mode 100644 index 00000000000..9f97202d43a --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneBool.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllOneBool.g.generated.h" + +// Reducer arguments struct for DeleteAllOneBool +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneBoolArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + bool B = false; + + FDeleteAllOneBoolArgs() = default; + + FDeleteAllOneBoolArgs(const bool& InB) + : B(InB) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneBoolArgs& Other) const + { + return B == Other.B; + } + FORCEINLINE bool operator!=(const FDeleteAllOneBoolArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneBoolArgs, B); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneBoolReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + bool B = false; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneByteStruct.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneByteStruct.g.h new file mode 100644 index 00000000000..58f7ac02870 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneByteStruct.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Types/ByteStructType.g.h" +#include "DeleteAllOneByteStruct.g.generated.h" + +// Reducer arguments struct for DeleteAllOneByteStruct +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneByteStructArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FByteStructType S; + + FDeleteAllOneByteStructArgs() = default; + + FDeleteAllOneByteStructArgs(const FByteStructType& InS) + : S(InS) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneByteStructArgs& Other) const + { + return S == Other.S; + } + FORCEINLINE bool operator!=(const FDeleteAllOneByteStructArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneByteStructArgs, S); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneByteStructReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FByteStructType S; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneEnumWithPayload.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneEnumWithPayload.g.h new file mode 100644 index 00000000000..228f42ad8f5 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneEnumWithPayload.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Types/EnumWithPayloadType.g.h" +#include "DeleteAllOneEnumWithPayload.g.generated.h" + +// Reducer arguments struct for DeleteAllOneEnumWithPayload +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneEnumWithPayloadArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FEnumWithPayloadType E; + + FDeleteAllOneEnumWithPayloadArgs() = default; + + FDeleteAllOneEnumWithPayloadArgs(const FEnumWithPayloadType& InE) + : E(InE) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneEnumWithPayloadArgs& Other) const + { + return E == Other.E; + } + FORCEINLINE bool operator!=(const FDeleteAllOneEnumWithPayloadArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneEnumWithPayloadArgs, E); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneEnumWithPayloadReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FEnumWithPayloadType E; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneEveryPrimitiveStruct.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneEveryPrimitiveStruct.g.h new file mode 100644 index 00000000000..7eb23ebf75e --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneEveryPrimitiveStruct.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Types/EveryPrimitiveStructType.g.h" +#include "DeleteAllOneEveryPrimitiveStruct.g.generated.h" + +// Reducer arguments struct for DeleteAllOneEveryPrimitiveStruct +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneEveryPrimitiveStructArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FEveryPrimitiveStructType S; + + FDeleteAllOneEveryPrimitiveStructArgs() = default; + + FDeleteAllOneEveryPrimitiveStructArgs(const FEveryPrimitiveStructType& InS) + : S(InS) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneEveryPrimitiveStructArgs& Other) const + { + return S == Other.S; + } + FORCEINLINE bool operator!=(const FDeleteAllOneEveryPrimitiveStructArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneEveryPrimitiveStructArgs, S); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneEveryPrimitiveStructReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FEveryPrimitiveStructType S; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneEveryVecStruct.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneEveryVecStruct.g.h new file mode 100644 index 00000000000..7d9bf710bae --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneEveryVecStruct.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Types/EveryVecStructType.g.h" +#include "DeleteAllOneEveryVecStruct.g.generated.h" + +// Reducer arguments struct for DeleteAllOneEveryVecStruct +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneEveryVecStructArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FEveryVecStructType S; + + FDeleteAllOneEveryVecStructArgs() = default; + + FDeleteAllOneEveryVecStructArgs(const FEveryVecStructType& InS) + : S(InS) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneEveryVecStructArgs& Other) const + { + return S == Other.S; + } + FORCEINLINE bool operator!=(const FDeleteAllOneEveryVecStructArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneEveryVecStructArgs, S); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneEveryVecStructReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FEveryVecStructType S; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneF32.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneF32.g.h new file mode 100644 index 00000000000..d9c4af1b8ae --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneF32.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllOneF32.g.generated.h" + +// Reducer arguments struct for DeleteAllOneF32 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneF32Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + float F = 0.0f; + + FDeleteAllOneF32Args() = default; + + FDeleteAllOneF32Args(const float& InF) + : F(InF) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneF32Args& Other) const + { + return F == Other.F; + } + FORCEINLINE bool operator!=(const FDeleteAllOneF32Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneF32Args, F); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneF32Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + float F = 0.0f; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneF64.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneF64.g.h new file mode 100644 index 00000000000..0bb2f72d18c --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneF64.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllOneF64.g.generated.h" + +// Reducer arguments struct for DeleteAllOneF64 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneF64Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + double F = 0.0; + + FDeleteAllOneF64Args() = default; + + FDeleteAllOneF64Args(const double& InF) + : F(InF) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneF64Args& Other) const + { + return F == Other.F; + } + FORCEINLINE bool operator!=(const FDeleteAllOneF64Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneF64Args, F); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneF64Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + double F = 0.0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI128.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI128.g.h new file mode 100644 index 00000000000..8a09a00c336 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI128.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllOneI128.g.generated.h" + +// Reducer arguments struct for DeleteAllOneI128 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneI128Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBInt128 N; + + FDeleteAllOneI128Args() = default; + + FDeleteAllOneI128Args(const FSpacetimeDBInt128& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneI128Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllOneI128Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneI128Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneI128Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBInt128 N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI16.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI16.g.h new file mode 100644 index 00000000000..4df5110121e --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI16.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllOneI16.g.generated.h" + +// Reducer arguments struct for DeleteAllOneI16 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneI16Args +{ + GENERATED_BODY() + + // NOTE: int16 field not exposed to Blueprint due to non-blueprintable elements + int16 N = 0; + + FDeleteAllOneI16Args() = default; + + FDeleteAllOneI16Args(const int16& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneI16Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllOneI16Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneI16Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneI16Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: int16 field not exposed to Blueprint due to non-blueprintable elements + int16 N = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI256.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI256.g.h new file mode 100644 index 00000000000..1139f9faf19 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI256.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllOneI256.g.generated.h" + +// Reducer arguments struct for DeleteAllOneI256 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneI256Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBInt256 N; + + FDeleteAllOneI256Args() = default; + + FDeleteAllOneI256Args(const FSpacetimeDBInt256& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneI256Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllOneI256Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneI256Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneI256Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBInt256 N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI32.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI32.g.h new file mode 100644 index 00000000000..2eab3a2e002 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI32.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllOneI32.g.generated.h" + +// Reducer arguments struct for DeleteAllOneI32 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneI32Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 N = 0; + + FDeleteAllOneI32Args() = default; + + FDeleteAllOneI32Args(const int32& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneI32Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllOneI32Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneI32Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneI32Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 N = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI64.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI64.g.h new file mode 100644 index 00000000000..c396713cc2e --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI64.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllOneI64.g.generated.h" + +// Reducer arguments struct for DeleteAllOneI64 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneI64Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int64 N = 0; + + FDeleteAllOneI64Args() = default; + + FDeleteAllOneI64Args(const int64& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneI64Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllOneI64Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneI64Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneI64Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int64 N = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI8.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI8.g.h new file mode 100644 index 00000000000..a22440d4a28 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneI8.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllOneI8.g.generated.h" + +// Reducer arguments struct for DeleteAllOneI8 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneI8Args +{ + GENERATED_BODY() + + // NOTE: int8 field not exposed to Blueprint due to non-blueprintable elements + int8 N = 0; + + FDeleteAllOneI8Args() = default; + + FDeleteAllOneI8Args(const int8& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneI8Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllOneI8Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneI8Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneI8Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: int8 field not exposed to Blueprint due to non-blueprintable elements + int8 N = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneIdentity.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneIdentity.g.h new file mode 100644 index 00000000000..e4bfb0afd05 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneIdentity.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllOneIdentity.g.generated.h" + +// Reducer arguments struct for DeleteAllOneIdentity +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneIdentityArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBIdentity I; + + FDeleteAllOneIdentityArgs() = default; + + FDeleteAllOneIdentityArgs(const FSpacetimeDBIdentity& InI) + : I(InI) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneIdentityArgs& Other) const + { + return I == Other.I; + } + FORCEINLINE bool operator!=(const FDeleteAllOneIdentityArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneIdentityArgs, I); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneIdentityReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBIdentity I; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneSimpleEnum.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneSimpleEnum.g.h new file mode 100644 index 00000000000..0a51261fe7b --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneSimpleEnum.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Types/SimpleEnumType.g.h" +#include "DeleteAllOneSimpleEnum.g.generated.h" + +// Reducer arguments struct for DeleteAllOneSimpleEnum +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneSimpleEnumArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + ESimpleEnumType E = ESimpleEnumType::Zero; + + FDeleteAllOneSimpleEnumArgs() = default; + + FDeleteAllOneSimpleEnumArgs(const ESimpleEnumType& InE) + : E(InE) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneSimpleEnumArgs& Other) const + { + return E == Other.E; + } + FORCEINLINE bool operator!=(const FDeleteAllOneSimpleEnumArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneSimpleEnumArgs, E); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneSimpleEnumReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + ESimpleEnumType E = ESimpleEnumType::Zero; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneString.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneString.g.h new file mode 100644 index 00000000000..476fa7306e3 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneString.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllOneString.g.generated.h" + +// Reducer arguments struct for DeleteAllOneString +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneStringArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FString S; + + FDeleteAllOneStringArgs() = default; + + FDeleteAllOneStringArgs(const FString& InS) + : S(InS) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneStringArgs& Other) const + { + return S == Other.S; + } + FORCEINLINE bool operator!=(const FDeleteAllOneStringArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneStringArgs, S); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneStringReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FString S; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneTimestamp.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneTimestamp.g.h new file mode 100644 index 00000000000..e9967fa21c2 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneTimestamp.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllOneTimestamp.g.generated.h" + +// Reducer arguments struct for DeleteAllOneTimestamp +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneTimestampArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBTimestamp T; + + FDeleteAllOneTimestampArgs() = default; + + FDeleteAllOneTimestampArgs(const FSpacetimeDBTimestamp& InT) + : T(InT) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneTimestampArgs& Other) const + { + return T == Other.T; + } + FORCEINLINE bool operator!=(const FDeleteAllOneTimestampArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneTimestampArgs, T); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneTimestampReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBTimestamp T; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU128.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU128.g.h new file mode 100644 index 00000000000..e9d714f2b82 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU128.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllOneU128.g.generated.h" + +// Reducer arguments struct for DeleteAllOneU128 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneU128Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBUInt128 N; + + FDeleteAllOneU128Args() = default; + + FDeleteAllOneU128Args(const FSpacetimeDBUInt128& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneU128Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllOneU128Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneU128Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneU128Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBUInt128 N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU16.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU16.g.h new file mode 100644 index 00000000000..1f377235ec2 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU16.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllOneU16.g.generated.h" + +// Reducer arguments struct for DeleteAllOneU16 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneU16Args +{ + GENERATED_BODY() + + // NOTE: uint16 field not exposed to Blueprint due to non-blueprintable elements + uint16 N = 0; + + FDeleteAllOneU16Args() = default; + + FDeleteAllOneU16Args(const uint16& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneU16Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllOneU16Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneU16Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneU16Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: uint16 field not exposed to Blueprint due to non-blueprintable elements + uint16 N = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU256.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU256.g.h new file mode 100644 index 00000000000..f37852da031 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU256.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllOneU256.g.generated.h" + +// Reducer arguments struct for DeleteAllOneU256 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneU256Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBUInt256 N; + + FDeleteAllOneU256Args() = default; + + FDeleteAllOneU256Args(const FSpacetimeDBUInt256& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneU256Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllOneU256Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneU256Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneU256Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBUInt256 N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU32.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU32.g.h new file mode 100644 index 00000000000..832f10ed889 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU32.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllOneU32.g.generated.h" + +// Reducer arguments struct for DeleteAllOneU32 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneU32Args +{ + GENERATED_BODY() + + // NOTE: uint32 field not exposed to Blueprint due to non-blueprintable elements + uint32 N = 0; + + FDeleteAllOneU32Args() = default; + + FDeleteAllOneU32Args(const uint32& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneU32Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllOneU32Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneU32Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneU32Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: uint32 field not exposed to Blueprint due to non-blueprintable elements + uint32 N = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU64.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU64.g.h new file mode 100644 index 00000000000..437ff75b07d --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU64.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllOneU64.g.generated.h" + +// Reducer arguments struct for DeleteAllOneU64 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneU64Args +{ + GENERATED_BODY() + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 N = 0; + + FDeleteAllOneU64Args() = default; + + FDeleteAllOneU64Args(const uint64& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneU64Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllOneU64Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneU64Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneU64Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 N = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU8.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU8.g.h new file mode 100644 index 00000000000..739c1e7255b --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneU8.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllOneU8.g.generated.h" + +// Reducer arguments struct for DeleteAllOneU8 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneU8Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + uint8 N = 0; + + FDeleteAllOneU8Args() = default; + + FDeleteAllOneU8Args(const uint8& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneU8Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllOneU8Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneU8Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneU8Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + uint8 N = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneUnitStruct.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneUnitStruct.g.h new file mode 100644 index 00000000000..aa4348e8499 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneUnitStruct.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Types/UnitStructType.g.h" +#include "DeleteAllOneUnitStruct.g.generated.h" + +// Reducer arguments struct for DeleteAllOneUnitStruct +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneUnitStructArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FUnitStructType S; + + FDeleteAllOneUnitStructArgs() = default; + + FDeleteAllOneUnitStructArgs(const FUnitStructType& InS) + : S(InS) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneUnitStructArgs& Other) const + { + return S == Other.S; + } + FORCEINLINE bool operator!=(const FDeleteAllOneUnitStructArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneUnitStructArgs, S); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneUnitStructReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FUnitStructType S; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneUuid.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneUuid.g.h new file mode 100644 index 00000000000..43a9caa3e25 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOneUuid.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllOneUuid.g.generated.h" + +// Reducer arguments struct for DeleteAllOneUuid +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOneUuidArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBUuid U; + + FDeleteAllOneUuidArgs() = default; + + FDeleteAllOneUuidArgs(const FSpacetimeDBUuid& InU) + : U(InU) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOneUuidArgs& Other) const + { + return U == Other.U; + } + FORCEINLINE bool operator!=(const FDeleteAllOneUuidArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOneUuidArgs, U); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOneUuidReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBUuid U; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionEveryPrimitiveStruct.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionEveryPrimitiveStruct.g.h new file mode 100644 index 00000000000..697cae255dd --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionEveryPrimitiveStruct.g.h @@ -0,0 +1,55 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/Optionals/TestClientOptionalEveryPrimitiveStruct.g.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Types/EveryPrimitiveStructType.g.h" +#include "DeleteAllOptionEveryPrimitiveStruct.g.generated.h" + +// Reducer arguments struct for DeleteAllOptionEveryPrimitiveStruct +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOptionEveryPrimitiveStructArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FTestClientOptionalEveryPrimitiveStruct S; + + FDeleteAllOptionEveryPrimitiveStructArgs() = default; + + FDeleteAllOptionEveryPrimitiveStructArgs(const FTestClientOptionalEveryPrimitiveStruct& InS) + : S(InS) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOptionEveryPrimitiveStructArgs& Other) const + { + return S == Other.S; + } + FORCEINLINE bool operator!=(const FDeleteAllOptionEveryPrimitiveStructArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOptionEveryPrimitiveStructArgs, S); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOptionEveryPrimitiveStructReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestClientOptionalEveryPrimitiveStruct S; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionI32.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionI32.g.h new file mode 100644 index 00000000000..e133f237c15 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionI32.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/Optionals/TestClientOptionalInt32.g.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllOptionI32.g.generated.h" + +// Reducer arguments struct for DeleteAllOptionI32 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOptionI32Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FTestClientOptionalInt32 N; + + FDeleteAllOptionI32Args() = default; + + FDeleteAllOptionI32Args(const FTestClientOptionalInt32& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOptionI32Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllOptionI32Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOptionI32Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOptionI32Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestClientOptionalInt32 N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionIdentity.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionIdentity.g.h new file mode 100644 index 00000000000..aae07729d75 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionIdentity.g.h @@ -0,0 +1,55 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/Optionals/TestClientOptionalIdentity.g.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllOptionIdentity.g.generated.h" + +// Reducer arguments struct for DeleteAllOptionIdentity +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOptionIdentityArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FTestClientOptionalIdentity I; + + FDeleteAllOptionIdentityArgs() = default; + + FDeleteAllOptionIdentityArgs(const FTestClientOptionalIdentity& InI) + : I(InI) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOptionIdentityArgs& Other) const + { + return I == Other.I; + } + FORCEINLINE bool operator!=(const FDeleteAllOptionIdentityArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOptionIdentityArgs, I); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOptionIdentityReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestClientOptionalIdentity I; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionSimpleEnum.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionSimpleEnum.g.h new file mode 100644 index 00000000000..0f11a98d062 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionSimpleEnum.g.h @@ -0,0 +1,55 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/Optionals/TestClientOptionalSimpleEnum.g.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Types/SimpleEnumType.g.h" +#include "DeleteAllOptionSimpleEnum.g.generated.h" + +// Reducer arguments struct for DeleteAllOptionSimpleEnum +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOptionSimpleEnumArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FTestClientOptionalSimpleEnum E; + + FDeleteAllOptionSimpleEnumArgs() = default; + + FDeleteAllOptionSimpleEnumArgs(const FTestClientOptionalSimpleEnum& InE) + : E(InE) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOptionSimpleEnumArgs& Other) const + { + return E == Other.E; + } + FORCEINLINE bool operator!=(const FDeleteAllOptionSimpleEnumArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOptionSimpleEnumArgs, E); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOptionSimpleEnumReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestClientOptionalSimpleEnum E; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionString.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionString.g.h new file mode 100644 index 00000000000..f950d3ab664 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionString.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/Optionals/TestClientOptionalString.g.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllOptionString.g.generated.h" + +// Reducer arguments struct for DeleteAllOptionString +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOptionStringArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FTestClientOptionalString S; + + FDeleteAllOptionStringArgs() = default; + + FDeleteAllOptionStringArgs(const FTestClientOptionalString& InS) + : S(InS) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOptionStringArgs& Other) const + { + return S == Other.S; + } + FORCEINLINE bool operator!=(const FDeleteAllOptionStringArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOptionStringArgs, S); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOptionStringReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestClientOptionalString S; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionUuid.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionUuid.g.h new file mode 100644 index 00000000000..76883ee7f76 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionUuid.g.h @@ -0,0 +1,55 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/Optionals/TestClientOptionalUuid.g.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllOptionUuid.g.generated.h" + +// Reducer arguments struct for DeleteAllOptionUuid +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOptionUuidArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FTestClientOptionalUuid U; + + FDeleteAllOptionUuidArgs() = default; + + FDeleteAllOptionUuidArgs(const FTestClientOptionalUuid& InU) + : U(InU) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOptionUuidArgs& Other) const + { + return U == Other.U; + } + FORCEINLINE bool operator!=(const FDeleteAllOptionUuidArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOptionUuidArgs, U); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOptionUuidReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestClientOptionalUuid U; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionVecOptionI32.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionVecOptionI32.g.h new file mode 100644 index 00000000000..470ccf46fa2 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllOptionVecOptionI32.g.h @@ -0,0 +1,55 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/Optionals/TestClientOptionalInt32.g.h" +#include "ModuleBindings/Optionals/TestClientOptionalVecOptionalInt32.g.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllOptionVecOptionI32.g.generated.h" + +// Reducer arguments struct for DeleteAllOptionVecOptionI32 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllOptionVecOptionI32Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FTestClientOptionalVecOptionalInt32 V; + + FDeleteAllOptionVecOptionI32Args() = default; + + FDeleteAllOptionVecOptionI32Args(const FTestClientOptionalVecOptionalInt32& InV) + : V(InV) + {} + + + FORCEINLINE bool operator==(const FDeleteAllOptionVecOptionI32Args& Other) const + { + return V == Other.V; + } + FORCEINLINE bool operator!=(const FDeleteAllOptionVecOptionI32Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllOptionVecOptionI32Args, V); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllOptionVecOptionI32Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestClientOptionalVecOptionalInt32 V; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkBool.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkBool.g.h new file mode 100644 index 00000000000..38ff7ac3a1f --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkBool.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllPkBool.g.generated.h" + +// Reducer arguments struct for DeleteAllPkBool +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkBoolArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + bool B = false; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkBoolArgs() = default; + + FDeleteAllPkBoolArgs(const bool& InB, const int32& InData) + : B(InB), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkBoolArgs& Other) const + { + return B == Other.B && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkBoolArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkBoolArgs, B, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkBoolReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + bool B = false; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkConnectionId.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkConnectionId.g.h new file mode 100644 index 00000000000..1f9c6adb5fc --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkConnectionId.g.h @@ -0,0 +1,59 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllPkConnectionId.g.generated.h" + +// Reducer arguments struct for DeleteAllPkConnectionId +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkConnectionIdArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBConnectionId A; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkConnectionIdArgs() = default; + + FDeleteAllPkConnectionIdArgs(const FSpacetimeDBConnectionId& InA, const int32& InData) + : A(InA), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkConnectionIdArgs& Other) const + { + return A == Other.A && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkConnectionIdArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkConnectionIdArgs, A, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkConnectionIdReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBConnectionId A; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI128.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI128.g.h new file mode 100644 index 00000000000..7ee2ac7a38e --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI128.g.h @@ -0,0 +1,59 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllPkI128.g.generated.h" + +// Reducer arguments struct for DeleteAllPkI128 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkI128Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBInt128 N; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkI128Args() = default; + + FDeleteAllPkI128Args(const FSpacetimeDBInt128& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkI128Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkI128Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkI128Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkI128Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBInt128 N; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI16.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI16.g.h new file mode 100644 index 00000000000..84a159c93a8 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI16.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllPkI16.g.generated.h" + +// Reducer arguments struct for DeleteAllPkI16 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkI16Args +{ + GENERATED_BODY() + + // NOTE: int16 field not exposed to Blueprint due to non-blueprintable elements + int16 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkI16Args() = default; + + FDeleteAllPkI16Args(const int16& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkI16Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkI16Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkI16Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkI16Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: int16 field not exposed to Blueprint due to non-blueprintable elements + int16 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI256.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI256.g.h new file mode 100644 index 00000000000..c0b0a6c1054 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI256.g.h @@ -0,0 +1,59 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllPkI256.g.generated.h" + +// Reducer arguments struct for DeleteAllPkI256 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkI256Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBInt256 N; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkI256Args() = default; + + FDeleteAllPkI256Args(const FSpacetimeDBInt256& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkI256Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkI256Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkI256Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkI256Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBInt256 N; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI32.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI32.g.h new file mode 100644 index 00000000000..753df41bd0b --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI32.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllPkI32.g.generated.h" + +// Reducer arguments struct for DeleteAllPkI32 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkI32Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkI32Args() = default; + + FDeleteAllPkI32Args(const int32& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkI32Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkI32Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkI32Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkI32Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI64.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI64.g.h new file mode 100644 index 00000000000..63cbdc80844 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI64.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllPkI64.g.generated.h" + +// Reducer arguments struct for DeleteAllPkI64 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkI64Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int64 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkI64Args() = default; + + FDeleteAllPkI64Args(const int64& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkI64Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkI64Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkI64Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkI64Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int64 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI8.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI8.g.h new file mode 100644 index 00000000000..cf854b9e5b3 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkI8.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllPkI8.g.generated.h" + +// Reducer arguments struct for DeleteAllPkI8 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkI8Args +{ + GENERATED_BODY() + + // NOTE: int8 field not exposed to Blueprint due to non-blueprintable elements + int8 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkI8Args() = default; + + FDeleteAllPkI8Args(const int8& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkI8Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkI8Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkI8Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkI8Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: int8 field not exposed to Blueprint due to non-blueprintable elements + int8 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkIdentity.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkIdentity.g.h new file mode 100644 index 00000000000..8d2c8b7ba6b --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkIdentity.g.h @@ -0,0 +1,59 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllPkIdentity.g.generated.h" + +// Reducer arguments struct for DeleteAllPkIdentity +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkIdentityArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBIdentity I; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkIdentityArgs() = default; + + FDeleteAllPkIdentityArgs(const FSpacetimeDBIdentity& InI, const int32& InData) + : I(InI), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkIdentityArgs& Other) const + { + return I == Other.I && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkIdentityArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkIdentityArgs, I, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkIdentityReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBIdentity I; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkString.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkString.g.h new file mode 100644 index 00000000000..e95f91b4a65 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkString.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllPkString.g.generated.h" + +// Reducer arguments struct for DeleteAllPkString +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkStringArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FString S; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkStringArgs() = default; + + FDeleteAllPkStringArgs(const FString& InS, const int32& InData) + : S(InS), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkStringArgs& Other) const + { + return S == Other.S && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkStringArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkStringArgs, S, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkStringReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FString S; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU128.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU128.g.h new file mode 100644 index 00000000000..52cf35552d6 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU128.g.h @@ -0,0 +1,59 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllPkU128.g.generated.h" + +// Reducer arguments struct for DeleteAllPkU128 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkU128Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBUInt128 N; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkU128Args() = default; + + FDeleteAllPkU128Args(const FSpacetimeDBUInt128& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkU128Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkU128Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkU128Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkU128Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBUInt128 N; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU16.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU16.g.h new file mode 100644 index 00000000000..c4238754d39 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU16.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllPkU16.g.generated.h" + +// Reducer arguments struct for DeleteAllPkU16 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkU16Args +{ + GENERATED_BODY() + + // NOTE: uint16 field not exposed to Blueprint due to non-blueprintable elements + uint16 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkU16Args() = default; + + FDeleteAllPkU16Args(const uint16& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkU16Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkU16Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkU16Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkU16Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: uint16 field not exposed to Blueprint due to non-blueprintable elements + uint16 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU256.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU256.g.h new file mode 100644 index 00000000000..e2cd88f7f63 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU256.g.h @@ -0,0 +1,59 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllPkU256.g.generated.h" + +// Reducer arguments struct for DeleteAllPkU256 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkU256Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBUInt256 N; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkU256Args() = default; + + FDeleteAllPkU256Args(const FSpacetimeDBUInt256& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkU256Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkU256Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkU256Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkU256Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBUInt256 N; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU32.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU32.g.h new file mode 100644 index 00000000000..6407898769c --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU32.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllPkU32.g.generated.h" + +// Reducer arguments struct for DeleteAllPkU32 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkU32Args +{ + GENERATED_BODY() + + // NOTE: uint32 field not exposed to Blueprint due to non-blueprintable elements + uint32 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkU32Args() = default; + + FDeleteAllPkU32Args(const uint32& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkU32Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkU32Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkU32Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkU32Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: uint32 field not exposed to Blueprint due to non-blueprintable elements + uint32 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU32Two.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU32Two.g.h new file mode 100644 index 00000000000..777fe0eac98 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU32Two.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllPkU32Two.g.generated.h" + +// Reducer arguments struct for DeleteAllPkU32Two +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkU32TwoArgs +{ + GENERATED_BODY() + + // NOTE: uint32 field not exposed to Blueprint due to non-blueprintable elements + uint32 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkU32TwoArgs() = default; + + FDeleteAllPkU32TwoArgs(const uint32& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkU32TwoArgs& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkU32TwoArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkU32TwoArgs, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkU32TwoReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: uint32 field not exposed to Blueprint due to non-blueprintable elements + uint32 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU64.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU64.g.h new file mode 100644 index 00000000000..561f84096db --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU64.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllPkU64.g.generated.h" + +// Reducer arguments struct for DeleteAllPkU64 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkU64Args +{ + GENERATED_BODY() + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkU64Args() = default; + + FDeleteAllPkU64Args(const uint64& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkU64Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkU64Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkU64Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkU64Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU8.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU8.g.h new file mode 100644 index 00000000000..cdd2087e7ce --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkU8.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllPkU8.g.generated.h" + +// Reducer arguments struct for DeleteAllPkU8 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkU8Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + uint8 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkU8Args() = default; + + FDeleteAllPkU8Args(const uint8& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkU8Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkU8Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkU8Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkU8Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + uint8 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkUuid.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkUuid.g.h new file mode 100644 index 00000000000..c3ba120b046 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllPkUuid.g.h @@ -0,0 +1,59 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllPkUuid.g.generated.h" + +// Reducer arguments struct for DeleteAllPkUuid +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllPkUuidArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBUuid U; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllPkUuidArgs() = default; + + FDeleteAllPkUuidArgs(const FSpacetimeDBUuid& InU, const int32& InData) + : U(InU), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllPkUuidArgs& Other) const + { + return U == Other.U && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllPkUuidArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllPkUuidArgs, U, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllPkUuidReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBUuid U; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueBool.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueBool.g.h new file mode 100644 index 00000000000..ec5f355905c --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueBool.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllUniqueBool.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueBool +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueBoolArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + bool B = false; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueBoolArgs() = default; + + FDeleteAllUniqueBoolArgs(const bool& InB, const int32& InData) + : B(InB), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueBoolArgs& Other) const + { + return B == Other.B && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueBoolArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueBoolArgs, B, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueBoolReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + bool B = false; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueConnectionId.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueConnectionId.g.h new file mode 100644 index 00000000000..d1bbf83060b --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueConnectionId.g.h @@ -0,0 +1,59 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllUniqueConnectionId.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueConnectionId +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueConnectionIdArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBConnectionId A; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueConnectionIdArgs() = default; + + FDeleteAllUniqueConnectionIdArgs(const FSpacetimeDBConnectionId& InA, const int32& InData) + : A(InA), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueConnectionIdArgs& Other) const + { + return A == Other.A && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueConnectionIdArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueConnectionIdArgs, A, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueConnectionIdReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBConnectionId A; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI128.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI128.g.h new file mode 100644 index 00000000000..ee09e5002db --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI128.g.h @@ -0,0 +1,59 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllUniqueI128.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueI128 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueI128Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBInt128 N; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueI128Args() = default; + + FDeleteAllUniqueI128Args(const FSpacetimeDBInt128& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueI128Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueI128Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueI128Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueI128Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBInt128 N; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI16.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI16.g.h new file mode 100644 index 00000000000..b46545aca1a --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI16.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllUniqueI16.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueI16 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueI16Args +{ + GENERATED_BODY() + + // NOTE: int16 field not exposed to Blueprint due to non-blueprintable elements + int16 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueI16Args() = default; + + FDeleteAllUniqueI16Args(const int16& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueI16Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueI16Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueI16Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueI16Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: int16 field not exposed to Blueprint due to non-blueprintable elements + int16 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI256.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI256.g.h new file mode 100644 index 00000000000..dd3e92b7ce1 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI256.g.h @@ -0,0 +1,59 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllUniqueI256.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueI256 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueI256Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBInt256 N; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueI256Args() = default; + + FDeleteAllUniqueI256Args(const FSpacetimeDBInt256& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueI256Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueI256Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueI256Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueI256Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBInt256 N; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI32.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI32.g.h new file mode 100644 index 00000000000..bfa29ce47e7 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI32.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllUniqueI32.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueI32 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueI32Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueI32Args() = default; + + FDeleteAllUniqueI32Args(const int32& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueI32Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueI32Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueI32Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueI32Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI64.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI64.g.h new file mode 100644 index 00000000000..945fcb8d6a2 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI64.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllUniqueI64.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueI64 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueI64Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int64 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueI64Args() = default; + + FDeleteAllUniqueI64Args(const int64& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueI64Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueI64Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueI64Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueI64Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int64 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI8.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI8.g.h new file mode 100644 index 00000000000..9adf98d2515 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueI8.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllUniqueI8.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueI8 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueI8Args +{ + GENERATED_BODY() + + // NOTE: int8 field not exposed to Blueprint due to non-blueprintable elements + int8 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueI8Args() = default; + + FDeleteAllUniqueI8Args(const int8& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueI8Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueI8Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueI8Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueI8Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: int8 field not exposed to Blueprint due to non-blueprintable elements + int8 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueIdentity.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueIdentity.g.h new file mode 100644 index 00000000000..9cc8ecc583f --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueIdentity.g.h @@ -0,0 +1,59 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllUniqueIdentity.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueIdentity +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueIdentityArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBIdentity I; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueIdentityArgs() = default; + + FDeleteAllUniqueIdentityArgs(const FSpacetimeDBIdentity& InI, const int32& InData) + : I(InI), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueIdentityArgs& Other) const + { + return I == Other.I && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueIdentityArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueIdentityArgs, I, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueIdentityReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBIdentity I; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueString.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueString.g.h new file mode 100644 index 00000000000..dcd65fc27f7 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueString.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllUniqueString.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueString +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueStringArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FString S; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueStringArgs() = default; + + FDeleteAllUniqueStringArgs(const FString& InS, const int32& InData) + : S(InS), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueStringArgs& Other) const + { + return S == Other.S && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueStringArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueStringArgs, S, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueStringReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FString S; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU128.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU128.g.h new file mode 100644 index 00000000000..83395dcdcae --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU128.g.h @@ -0,0 +1,59 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllUniqueU128.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueU128 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueU128Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBUInt128 N; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueU128Args() = default; + + FDeleteAllUniqueU128Args(const FSpacetimeDBUInt128& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueU128Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueU128Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueU128Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueU128Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBUInt128 N; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU16.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU16.g.h new file mode 100644 index 00000000000..9c0401c5cde --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU16.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllUniqueU16.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueU16 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueU16Args +{ + GENERATED_BODY() + + // NOTE: uint16 field not exposed to Blueprint due to non-blueprintable elements + uint16 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueU16Args() = default; + + FDeleteAllUniqueU16Args(const uint16& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueU16Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueU16Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueU16Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueU16Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: uint16 field not exposed to Blueprint due to non-blueprintable elements + uint16 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU256.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU256.g.h new file mode 100644 index 00000000000..8a29da21b52 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU256.g.h @@ -0,0 +1,59 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllUniqueU256.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueU256 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueU256Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBUInt256 N; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueU256Args() = default; + + FDeleteAllUniqueU256Args(const FSpacetimeDBUInt256& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueU256Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueU256Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueU256Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueU256Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBUInt256 N; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU32.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU32.g.h new file mode 100644 index 00000000000..4094c545fdd --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU32.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllUniqueU32.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueU32 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueU32Args +{ + GENERATED_BODY() + + // NOTE: uint32 field not exposed to Blueprint due to non-blueprintable elements + uint32 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueU32Args() = default; + + FDeleteAllUniqueU32Args(const uint32& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueU32Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueU32Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueU32Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueU32Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: uint32 field not exposed to Blueprint due to non-blueprintable elements + uint32 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU64.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU64.g.h new file mode 100644 index 00000000000..8ea7a9b75fa --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU64.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllUniqueU64.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueU64 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueU64Args +{ + GENERATED_BODY() + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueU64Args() = default; + + FDeleteAllUniqueU64Args(const uint64& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueU64Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueU64Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueU64Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueU64Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU8.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU8.g.h new file mode 100644 index 00000000000..a173ea26340 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueU8.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllUniqueU8.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueU8 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueU8Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + uint8 N = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueU8Args() = default; + + FDeleteAllUniqueU8Args(const uint8& InN, const int32& InData) + : N(InN), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueU8Args& Other) const + { + return N == Other.N && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueU8Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueU8Args, N, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueU8Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + uint8 N = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueUuid.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueUuid.g.h new file mode 100644 index 00000000000..7150029b655 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllUniqueUuid.g.h @@ -0,0 +1,59 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllUniqueUuid.g.generated.h" + +// Reducer arguments struct for DeleteAllUniqueUuid +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllUniqueUuidArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBUuid U; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Data = 0; + + FDeleteAllUniqueUuidArgs() = default; + + FDeleteAllUniqueUuidArgs(const FSpacetimeDBUuid& InU, const int32& InData) + : U(InU), Data(InData) + {} + + + FORCEINLINE bool operator==(const FDeleteAllUniqueUuidArgs& Other) const + { + return U == Other.U && Data == Other.Data; + } + FORCEINLINE bool operator!=(const FDeleteAllUniqueUuidArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllUniqueUuidArgs, U, Data); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllUniqueUuidReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBUuid U; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Data = 0; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecBool.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecBool.g.h new file mode 100644 index 00000000000..3115779daa2 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecBool.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllVecBool.g.generated.h" + +// Reducer arguments struct for DeleteAllVecBool +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecBoolArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray B; + + FDeleteAllVecBoolArgs() = default; + + FDeleteAllVecBoolArgs(const TArray& InB) + : B(InB) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecBoolArgs& Other) const + { + return B == Other.B; + } + FORCEINLINE bool operator!=(const FDeleteAllVecBoolArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecBoolArgs, B); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecBoolReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray B; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecByteStruct.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecByteStruct.g.h new file mode 100644 index 00000000000..68e871a5d46 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecByteStruct.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Types/ByteStructType.g.h" +#include "DeleteAllVecByteStruct.g.generated.h" + +// Reducer arguments struct for DeleteAllVecByteStruct +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecByteStructArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray S; + + FDeleteAllVecByteStructArgs() = default; + + FDeleteAllVecByteStructArgs(const TArray& InS) + : S(InS) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecByteStructArgs& Other) const + { + return S == Other.S; + } + FORCEINLINE bool operator!=(const FDeleteAllVecByteStructArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecByteStructArgs, S); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecByteStructReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray S; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecEnumWithPayload.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecEnumWithPayload.g.h new file mode 100644 index 00000000000..992f09664ef --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecEnumWithPayload.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Types/EnumWithPayloadType.g.h" +#include "DeleteAllVecEnumWithPayload.g.generated.h" + +// Reducer arguments struct for DeleteAllVecEnumWithPayload +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecEnumWithPayloadArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray E; + + FDeleteAllVecEnumWithPayloadArgs() = default; + + FDeleteAllVecEnumWithPayloadArgs(const TArray& InE) + : E(InE) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecEnumWithPayloadArgs& Other) const + { + return E == Other.E; + } + FORCEINLINE bool operator!=(const FDeleteAllVecEnumWithPayloadArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecEnumWithPayloadArgs, E); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecEnumWithPayloadReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray E; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecEveryPrimitiveStruct.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecEveryPrimitiveStruct.g.h new file mode 100644 index 00000000000..185ad3b2393 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecEveryPrimitiveStruct.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Types/EveryPrimitiveStructType.g.h" +#include "DeleteAllVecEveryPrimitiveStruct.g.generated.h" + +// Reducer arguments struct for DeleteAllVecEveryPrimitiveStruct +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecEveryPrimitiveStructArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray S; + + FDeleteAllVecEveryPrimitiveStructArgs() = default; + + FDeleteAllVecEveryPrimitiveStructArgs(const TArray& InS) + : S(InS) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecEveryPrimitiveStructArgs& Other) const + { + return S == Other.S; + } + FORCEINLINE bool operator!=(const FDeleteAllVecEveryPrimitiveStructArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecEveryPrimitiveStructArgs, S); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecEveryPrimitiveStructReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray S; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecEveryVecStruct.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecEveryVecStruct.g.h new file mode 100644 index 00000000000..841089ca45c --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecEveryVecStruct.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Types/EveryVecStructType.g.h" +#include "DeleteAllVecEveryVecStruct.g.generated.h" + +// Reducer arguments struct for DeleteAllVecEveryVecStruct +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecEveryVecStructArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray S; + + FDeleteAllVecEveryVecStructArgs() = default; + + FDeleteAllVecEveryVecStructArgs(const TArray& InS) + : S(InS) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecEveryVecStructArgs& Other) const + { + return S == Other.S; + } + FORCEINLINE bool operator!=(const FDeleteAllVecEveryVecStructArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecEveryVecStructArgs, S); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecEveryVecStructReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray S; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecF32.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecF32.g.h new file mode 100644 index 00000000000..cbc745f8a49 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecF32.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllVecF32.g.generated.h" + +// Reducer arguments struct for DeleteAllVecF32 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecF32Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray F; + + FDeleteAllVecF32Args() = default; + + FDeleteAllVecF32Args(const TArray& InF) + : F(InF) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecF32Args& Other) const + { + return F == Other.F; + } + FORCEINLINE bool operator!=(const FDeleteAllVecF32Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecF32Args, F); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecF32Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray F; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecF64.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecF64.g.h new file mode 100644 index 00000000000..5ca19ccd9e8 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecF64.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllVecF64.g.generated.h" + +// Reducer arguments struct for DeleteAllVecF64 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecF64Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray F; + + FDeleteAllVecF64Args() = default; + + FDeleteAllVecF64Args(const TArray& InF) + : F(InF) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecF64Args& Other) const + { + return F == Other.F; + } + FORCEINLINE bool operator!=(const FDeleteAllVecF64Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecF64Args, F); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecF64Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray F; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI128.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI128.g.h new file mode 100644 index 00000000000..6479a1175a6 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI128.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllVecI128.g.generated.h" + +// Reducer arguments struct for DeleteAllVecI128 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecI128Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray N; + + FDeleteAllVecI128Args() = default; + + FDeleteAllVecI128Args(const TArray& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecI128Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllVecI128Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecI128Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecI128Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI16.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI16.g.h new file mode 100644 index 00000000000..c1f3865c2ba --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI16.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllVecI16.g.generated.h" + +// Reducer arguments struct for DeleteAllVecI16 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecI16Args +{ + GENERATED_BODY() + + // NOTE: TArray field not exposed to Blueprint due to non-blueprintable elements + TArray N; + + FDeleteAllVecI16Args() = default; + + FDeleteAllVecI16Args(const TArray& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecI16Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllVecI16Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecI16Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecI16Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: TArray field not exposed to Blueprint due to non-blueprintable elements + TArray N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI256.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI256.g.h new file mode 100644 index 00000000000..17e900d6d7a --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI256.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllVecI256.g.generated.h" + +// Reducer arguments struct for DeleteAllVecI256 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecI256Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray N; + + FDeleteAllVecI256Args() = default; + + FDeleteAllVecI256Args(const TArray& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecI256Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllVecI256Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecI256Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecI256Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI32.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI32.g.h new file mode 100644 index 00000000000..c16acb841a0 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI32.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllVecI32.g.generated.h" + +// Reducer arguments struct for DeleteAllVecI32 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecI32Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray N; + + FDeleteAllVecI32Args() = default; + + FDeleteAllVecI32Args(const TArray& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecI32Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllVecI32Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecI32Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecI32Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI64.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI64.g.h new file mode 100644 index 00000000000..3d0fa733537 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI64.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllVecI64.g.generated.h" + +// Reducer arguments struct for DeleteAllVecI64 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecI64Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray N; + + FDeleteAllVecI64Args() = default; + + FDeleteAllVecI64Args(const TArray& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecI64Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllVecI64Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecI64Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecI64Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI8.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI8.g.h new file mode 100644 index 00000000000..59d8ad6d096 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecI8.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllVecI8.g.generated.h" + +// Reducer arguments struct for DeleteAllVecI8 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecI8Args +{ + GENERATED_BODY() + + // NOTE: TArray field not exposed to Blueprint due to non-blueprintable elements + TArray N; + + FDeleteAllVecI8Args() = default; + + FDeleteAllVecI8Args(const TArray& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecI8Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllVecI8Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecI8Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecI8Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: TArray field not exposed to Blueprint due to non-blueprintable elements + TArray N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecIdentity.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecIdentity.g.h new file mode 100644 index 00000000000..9d4ee5efe45 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecIdentity.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllVecIdentity.g.generated.h" + +// Reducer arguments struct for DeleteAllVecIdentity +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecIdentityArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray I; + + FDeleteAllVecIdentityArgs() = default; + + FDeleteAllVecIdentityArgs(const TArray& InI) + : I(InI) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecIdentityArgs& Other) const + { + return I == Other.I; + } + FORCEINLINE bool operator!=(const FDeleteAllVecIdentityArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecIdentityArgs, I); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecIdentityReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray I; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecSimpleEnum.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecSimpleEnum.g.h new file mode 100644 index 00000000000..96c045b0268 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecSimpleEnum.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Types/SimpleEnumType.g.h" +#include "DeleteAllVecSimpleEnum.g.generated.h" + +// Reducer arguments struct for DeleteAllVecSimpleEnum +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecSimpleEnumArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray E; + + FDeleteAllVecSimpleEnumArgs() = default; + + FDeleteAllVecSimpleEnumArgs(const TArray& InE) + : E(InE) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecSimpleEnumArgs& Other) const + { + return E == Other.E; + } + FORCEINLINE bool operator!=(const FDeleteAllVecSimpleEnumArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecSimpleEnumArgs, E); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecSimpleEnumReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray E; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecString.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecString.g.h new file mode 100644 index 00000000000..4ec3466dd76 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecString.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllVecString.g.generated.h" + +// Reducer arguments struct for DeleteAllVecString +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecStringArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray S; + + FDeleteAllVecStringArgs() = default; + + FDeleteAllVecStringArgs(const TArray& InS) + : S(InS) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecStringArgs& Other) const + { + return S == Other.S; + } + FORCEINLINE bool operator!=(const FDeleteAllVecStringArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecStringArgs, S); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecStringReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray S; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecTimestamp.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecTimestamp.g.h new file mode 100644 index 00000000000..59f015738ba --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecTimestamp.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllVecTimestamp.g.generated.h" + +// Reducer arguments struct for DeleteAllVecTimestamp +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecTimestampArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray T; + + FDeleteAllVecTimestampArgs() = default; + + FDeleteAllVecTimestampArgs(const TArray& InT) + : T(InT) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecTimestampArgs& Other) const + { + return T == Other.T; + } + FORCEINLINE bool operator!=(const FDeleteAllVecTimestampArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecTimestampArgs, T); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecTimestampReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray T; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU128.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU128.g.h new file mode 100644 index 00000000000..f42a63908c8 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU128.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllVecU128.g.generated.h" + +// Reducer arguments struct for DeleteAllVecU128 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecU128Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray N; + + FDeleteAllVecU128Args() = default; + + FDeleteAllVecU128Args(const TArray& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecU128Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllVecU128Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecU128Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecU128Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU16.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU16.g.h new file mode 100644 index 00000000000..44eac3b2914 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU16.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllVecU16.g.generated.h" + +// Reducer arguments struct for DeleteAllVecU16 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecU16Args +{ + GENERATED_BODY() + + // NOTE: TArray field not exposed to Blueprint due to non-blueprintable elements + TArray N; + + FDeleteAllVecU16Args() = default; + + FDeleteAllVecU16Args(const TArray& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecU16Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllVecU16Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecU16Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecU16Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: TArray field not exposed to Blueprint due to non-blueprintable elements + TArray N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU256.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU256.g.h new file mode 100644 index 00000000000..09b99da527c --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU256.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllVecU256.g.generated.h" + +// Reducer arguments struct for DeleteAllVecU256 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecU256Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray N; + + FDeleteAllVecU256Args() = default; + + FDeleteAllVecU256Args(const TArray& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecU256Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllVecU256Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecU256Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecU256Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU32.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU32.g.h new file mode 100644 index 00000000000..c24ef162979 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU32.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllVecU32.g.generated.h" + +// Reducer arguments struct for DeleteAllVecU32 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecU32Args +{ + GENERATED_BODY() + + // NOTE: TArray field not exposed to Blueprint due to non-blueprintable elements + TArray N; + + FDeleteAllVecU32Args() = default; + + FDeleteAllVecU32Args(const TArray& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecU32Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllVecU32Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecU32Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecU32Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: TArray field not exposed to Blueprint due to non-blueprintable elements + TArray N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU64.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU64.g.h new file mode 100644 index 00000000000..4c512c3a1fe --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU64.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllVecU64.g.generated.h" + +// Reducer arguments struct for DeleteAllVecU64 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecU64Args +{ + GENERATED_BODY() + + // NOTE: TArray field not exposed to Blueprint due to non-blueprintable elements + TArray N; + + FDeleteAllVecU64Args() = default; + + FDeleteAllVecU64Args(const TArray& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecU64Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllVecU64Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecU64Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecU64Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: TArray field not exposed to Blueprint due to non-blueprintable elements + TArray N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU8.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU8.g.h new file mode 100644 index 00000000000..76986604b78 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecU8.g.h @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "DeleteAllVecU8.g.generated.h" + +// Reducer arguments struct for DeleteAllVecU8 +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecU8Args +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray N; + + FDeleteAllVecU8Args() = default; + + FDeleteAllVecU8Args(const TArray& InN) + : N(InN) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecU8Args& Other) const + { + return N == Other.N; + } + FORCEINLINE bool operator!=(const FDeleteAllVecU8Args& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecU8Args, N); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecU8Reducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray N; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecUnitStruct.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecUnitStruct.g.h new file mode 100644 index 00000000000..a266ebcc1d1 --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecUnitStruct.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Types/UnitStructType.g.h" +#include "DeleteAllVecUnitStruct.g.generated.h" + +// Reducer arguments struct for DeleteAllVecUnitStruct +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecUnitStructArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray S; + + FDeleteAllVecUnitStructArgs() = default; + + FDeleteAllVecUnitStructArgs(const TArray& InS) + : S(InS) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecUnitStructArgs& Other) const + { + return S == Other.S; + } + FORCEINLINE bool operator!=(const FDeleteAllVecUnitStructArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecUnitStructArgs, S); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecUnitStructReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray S; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecUuid.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecUuid.g.h new file mode 100644 index 00000000000..7303f29e3fd --- /dev/null +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Reducers/DeleteAllVecUuid.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeleteAllVecUuid.g.generated.h" + +// Reducer arguments struct for DeleteAllVecUuid +USTRUCT(BlueprintType) +struct TESTCLIENT_API FDeleteAllVecUuidArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + TArray U; + + FDeleteAllVecUuidArgs() = default; + + FDeleteAllVecUuidArgs(const TArray& InU) + : U(InU) + {} + + + FORCEINLINE bool operator==(const FDeleteAllVecUuidArgs& Other) const + { + return U == Other.U; + } + FORCEINLINE bool operator!=(const FDeleteAllVecUuidArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeleteAllVecUuidArgs, U); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTCLIENT_API UDeleteAllVecUuidReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + TArray U; + +}; + + diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/SpacetimeDBClient.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/SpacetimeDBClient.g.h index 1fb7d093579..94104a05455 100644 --- a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/SpacetimeDBClient.g.h +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/SpacetimeDBClient.g.h @@ -1,7 +1,7 @@ // THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE // WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. -// This was generated using spacetimedb cli version 2.0.3 (commit b6045fcc908d2846f8fb26570c2f300f5d685996). +// This was generated using spacetimedb cli version 2.6.0 (commit d8a2be99ffd985b539bf111ec0214639e2b81e41). #pragma once #include "CoreMinimal.h" @@ -19,6 +19,98 @@ #include "ModuleBindings/Optionals/TestClientOptionalUuid.g.h" #include "ModuleBindings/Optionals/TestClientOptionalVecOptionalInt32.g.h" #include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneBool.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneByteStruct.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneEnumWithPayload.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneEveryPrimitiveStruct.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneEveryVecStruct.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneF32.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneF64.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneI128.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneI16.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneI256.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneI32.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneI64.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneI8.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneIdentity.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneSimpleEnum.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneString.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneTimestamp.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneU128.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneU16.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneU256.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneU32.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneU64.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneU8.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneUnitStruct.g.h" +#include "ModuleBindings/Reducers/DeleteAllOneUuid.g.h" +#include "ModuleBindings/Reducers/DeleteAllOptionEveryPrimitiveStruct.g.h" +#include "ModuleBindings/Reducers/DeleteAllOptionI32.g.h" +#include "ModuleBindings/Reducers/DeleteAllOptionIdentity.g.h" +#include "ModuleBindings/Reducers/DeleteAllOptionSimpleEnum.g.h" +#include "ModuleBindings/Reducers/DeleteAllOptionString.g.h" +#include "ModuleBindings/Reducers/DeleteAllOptionUuid.g.h" +#include "ModuleBindings/Reducers/DeleteAllOptionVecOptionI32.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkBool.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkConnectionId.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkI128.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkI16.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkI256.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkI32.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkI64.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkI8.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkIdentity.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkString.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkU128.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkU16.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkU256.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkU32.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkU32Two.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkU64.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkU8.g.h" +#include "ModuleBindings/Reducers/DeleteAllPkUuid.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueBool.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueConnectionId.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueI128.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueI16.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueI256.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueI32.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueI64.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueI8.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueIdentity.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueString.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueU128.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueU16.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueU256.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueU32.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueU64.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueU8.g.h" +#include "ModuleBindings/Reducers/DeleteAllUniqueUuid.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecBool.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecByteStruct.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecEnumWithPayload.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecEveryPrimitiveStruct.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecEveryVecStruct.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecF32.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecF64.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecI128.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecI16.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecI256.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecI32.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecI64.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecI8.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecIdentity.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecSimpleEnum.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecString.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecTimestamp.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecU128.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecU16.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecU256.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecU32.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecU64.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecU8.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecUnitStruct.g.h" +#include "ModuleBindings/Reducers/DeleteAllVecUuid.g.h" #include "ModuleBindings/Reducers/DeleteFromBtreeU32.g.h" #include "ModuleBindings/Reducers/DeleteLargeTable.g.h" #include "ModuleBindings/Reducers/DeletePkBool.g.h" @@ -227,11 +319,115 @@ #include "ModuleBindings/Types/EnumWithPayloadType.g.h" #include "ModuleBindings/Types/EveryPrimitiveStructType.g.h" #include "ModuleBindings/Types/EveryVecStructType.g.h" +#include "ModuleBindings/Types/IndexedSimpleEnumType.g.h" +#include "ModuleBindings/Types/LargeTableType.g.h" +#include "ModuleBindings/Types/OneBoolType.g.h" +#include "ModuleBindings/Types/OneByteStructType.g.h" +#include "ModuleBindings/Types/OneConnectionIdType.g.h" +#include "ModuleBindings/Types/OneEnumWithPayloadType.g.h" +#include "ModuleBindings/Types/OneEveryPrimitiveStructType.g.h" +#include "ModuleBindings/Types/OneEveryVecStructType.g.h" +#include "ModuleBindings/Types/OneF32Type.g.h" +#include "ModuleBindings/Types/OneF64Type.g.h" +#include "ModuleBindings/Types/OneI128Type.g.h" +#include "ModuleBindings/Types/OneI16Type.g.h" +#include "ModuleBindings/Types/OneI256Type.g.h" +#include "ModuleBindings/Types/OneI32Type.g.h" +#include "ModuleBindings/Types/OneI64Type.g.h" +#include "ModuleBindings/Types/OneI8Type.g.h" +#include "ModuleBindings/Types/OneIdentityType.g.h" +#include "ModuleBindings/Types/OneSimpleEnumType.g.h" +#include "ModuleBindings/Types/OneStringType.g.h" +#include "ModuleBindings/Types/OneTimestampType.g.h" +#include "ModuleBindings/Types/OneU128Type.g.h" +#include "ModuleBindings/Types/OneU16Type.g.h" +#include "ModuleBindings/Types/OneU256Type.g.h" +#include "ModuleBindings/Types/OneU32Type.g.h" +#include "ModuleBindings/Types/OneU64Type.g.h" #include "ModuleBindings/Types/OneU8Type.g.h" +#include "ModuleBindings/Types/OneUnitStructType.g.h" +#include "ModuleBindings/Types/OneUuidType.g.h" +#include "ModuleBindings/Types/OptionEveryPrimitiveStructType.g.h" +#include "ModuleBindings/Types/OptionI32Type.g.h" +#include "ModuleBindings/Types/OptionIdentityType.g.h" +#include "ModuleBindings/Types/OptionSimpleEnumType.g.h" +#include "ModuleBindings/Types/OptionStringType.g.h" +#include "ModuleBindings/Types/OptionUuidType.g.h" +#include "ModuleBindings/Types/OptionVecOptionI32Type.g.h" +#include "ModuleBindings/Types/PkBoolType.g.h" +#include "ModuleBindings/Types/PkConnectionIdType.g.h" +#include "ModuleBindings/Types/PkI128Type.g.h" +#include "ModuleBindings/Types/PkI16Type.g.h" +#include "ModuleBindings/Types/PkI256Type.g.h" +#include "ModuleBindings/Types/PkI32Type.g.h" +#include "ModuleBindings/Types/PkI64Type.g.h" +#include "ModuleBindings/Types/PkI8Type.g.h" +#include "ModuleBindings/Types/PkIdentityType.g.h" +#include "ModuleBindings/Types/PkSimpleEnumType.g.h" +#include "ModuleBindings/Types/PkStringType.g.h" +#include "ModuleBindings/Types/PkU128Type.g.h" +#include "ModuleBindings/Types/PkU16Type.g.h" +#include "ModuleBindings/Types/PkU256Type.g.h" +#include "ModuleBindings/Types/PkU32TwoType.g.h" #include "ModuleBindings/Types/PkU32Type.g.h" +#include "ModuleBindings/Types/PkU64Type.g.h" +#include "ModuleBindings/Types/PkU8Type.g.h" +#include "ModuleBindings/Types/PkUuidType.g.h" +#include "ModuleBindings/Types/ResultEveryPrimitiveStructStringType.g.h" +#include "ModuleBindings/Types/ResultI32StringType.g.h" +#include "ModuleBindings/Types/ResultIdentityStringType.g.h" +#include "ModuleBindings/Types/ResultSimpleEnumI32Type.g.h" +#include "ModuleBindings/Types/ResultStringI32Type.g.h" +#include "ModuleBindings/Types/ResultVecI32StringType.g.h" +#include "ModuleBindings/Types/ScheduledTableType.g.h" #include "ModuleBindings/Types/SimpleEnumType.g.h" +#include "ModuleBindings/Types/TableHoldsTableType.g.h" +#include "ModuleBindings/Types/UniqueBoolType.g.h" +#include "ModuleBindings/Types/UniqueConnectionIdType.g.h" +#include "ModuleBindings/Types/UniqueI128Type.g.h" +#include "ModuleBindings/Types/UniqueI16Type.g.h" +#include "ModuleBindings/Types/UniqueI256Type.g.h" +#include "ModuleBindings/Types/UniqueI32Type.g.h" +#include "ModuleBindings/Types/UniqueI64Type.g.h" +#include "ModuleBindings/Types/UniqueI8Type.g.h" +#include "ModuleBindings/Types/UniqueIdentityType.g.h" +#include "ModuleBindings/Types/UniqueStringType.g.h" +#include "ModuleBindings/Types/UniqueU128Type.g.h" +#include "ModuleBindings/Types/UniqueU16Type.g.h" +#include "ModuleBindings/Types/UniqueU256Type.g.h" +#include "ModuleBindings/Types/UniqueU32Type.g.h" +#include "ModuleBindings/Types/UniqueU64Type.g.h" +#include "ModuleBindings/Types/UniqueU8Type.g.h" +#include "ModuleBindings/Types/UniqueUuidType.g.h" #include "ModuleBindings/Types/UnitStructType.g.h" +#include "ModuleBindings/Types/UsersType.g.h" +#include "ModuleBindings/Types/VecBoolType.g.h" +#include "ModuleBindings/Types/VecByteStructType.g.h" +#include "ModuleBindings/Types/VecConnectionIdType.g.h" +#include "ModuleBindings/Types/VecEnumWithPayloadType.g.h" +#include "ModuleBindings/Types/VecEveryPrimitiveStructType.g.h" +#include "ModuleBindings/Types/VecEveryVecStructType.g.h" +#include "ModuleBindings/Types/VecF32Type.g.h" +#include "ModuleBindings/Types/VecF64Type.g.h" +#include "ModuleBindings/Types/VecI128Type.g.h" +#include "ModuleBindings/Types/VecI16Type.g.h" +#include "ModuleBindings/Types/VecI256Type.g.h" +#include "ModuleBindings/Types/VecI32Type.g.h" +#include "ModuleBindings/Types/VecI64Type.g.h" +#include "ModuleBindings/Types/VecI8Type.g.h" +#include "ModuleBindings/Types/VecIdentityType.g.h" +#include "ModuleBindings/Types/VecSimpleEnumType.g.h" +#include "ModuleBindings/Types/VecStringType.g.h" +#include "ModuleBindings/Types/VecTimestampType.g.h" +#include "ModuleBindings/Types/VecU128Type.g.h" +#include "ModuleBindings/Types/VecU16Type.g.h" +#include "ModuleBindings/Types/VecU256Type.g.h" +#include "ModuleBindings/Types/VecU32Type.g.h" +#include "ModuleBindings/Types/VecU64Type.g.h" #include "ModuleBindings/Types/VecU8Type.g.h" +#include "ModuleBindings/Types/VecUnitStructType.g.h" +#include "ModuleBindings/Types/VecUuidType.g.h" +#include "QueryBuilder/query_builder.h" #include "Types/Builtins.h" #include "SpacetimeDBClient.g.generated.h" @@ -417,9 +613,100 @@ class TESTCLIENT_API UContextBaseBpLib : public UBlueprintFunctionLibrary static bool IsActive(const FContextBase& Ctx) { return Ctx.IsActive(); } }; -UENUM(BlueprintType, Category = "SpacetimeDB") -enum class EReducerTag : uint8 +enum class EReducerTag : int32 { + DeleteAllOneBool, + DeleteAllOneByteStruct, + DeleteAllOneEnumWithPayload, + DeleteAllOneEveryPrimitiveStruct, + DeleteAllOneEveryVecStruct, + DeleteAllOneF32, + DeleteAllOneF64, + DeleteAllOneI128, + DeleteAllOneI16, + DeleteAllOneI256, + DeleteAllOneI32, + DeleteAllOneI64, + DeleteAllOneI8, + DeleteAllOneIdentity, + DeleteAllOneSimpleEnum, + DeleteAllOneString, + DeleteAllOneTimestamp, + DeleteAllOneU128, + DeleteAllOneU16, + DeleteAllOneU256, + DeleteAllOneU32, + DeleteAllOneU64, + DeleteAllOneU8, + DeleteAllOneUnitStruct, + DeleteAllOneUuid, + DeleteAllOptionEveryPrimitiveStruct, + DeleteAllOptionI32, + DeleteAllOptionIdentity, + DeleteAllOptionSimpleEnum, + DeleteAllOptionString, + DeleteAllOptionUuid, + DeleteAllOptionVecOptionI32, + DeleteAllPkBool, + DeleteAllPkConnectionId, + DeleteAllPkI128, + DeleteAllPkI16, + DeleteAllPkI256, + DeleteAllPkI32, + DeleteAllPkI64, + DeleteAllPkI8, + DeleteAllPkIdentity, + DeleteAllPkString, + DeleteAllPkU128, + DeleteAllPkU16, + DeleteAllPkU256, + DeleteAllPkU32, + DeleteAllPkU32Two, + DeleteAllPkU64, + DeleteAllPkU8, + DeleteAllPkUuid, + DeleteAllUniqueBool, + DeleteAllUniqueConnectionId, + DeleteAllUniqueI128, + DeleteAllUniqueI16, + DeleteAllUniqueI256, + DeleteAllUniqueI32, + DeleteAllUniqueI64, + DeleteAllUniqueI8, + DeleteAllUniqueIdentity, + DeleteAllUniqueString, + DeleteAllUniqueU128, + DeleteAllUniqueU16, + DeleteAllUniqueU256, + DeleteAllUniqueU32, + DeleteAllUniqueU64, + DeleteAllUniqueU8, + DeleteAllUniqueUuid, + DeleteAllVecBool, + DeleteAllVecByteStruct, + DeleteAllVecEnumWithPayload, + DeleteAllVecEveryPrimitiveStruct, + DeleteAllVecEveryVecStruct, + DeleteAllVecF32, + DeleteAllVecF64, + DeleteAllVecI128, + DeleteAllVecI16, + DeleteAllVecI256, + DeleteAllVecI32, + DeleteAllVecI64, + DeleteAllVecI8, + DeleteAllVecIdentity, + DeleteAllVecSimpleEnum, + DeleteAllVecString, + DeleteAllVecTimestamp, + DeleteAllVecU128, + DeleteAllVecU16, + DeleteAllVecU256, + DeleteAllVecU32, + DeleteAllVecU64, + DeleteAllVecU8, + DeleteAllVecUnitStruct, + DeleteAllVecUuid, DeleteFromBtreeU32, DeleteLargeTable, DeletePkBool, @@ -619,6 +906,18 @@ enum class EReducerTag : uint8 UpdateUniqueUuid }; +struct FReducerArgsStorageBase +{ + virtual ~FReducerArgsStorageBase() = default; +}; + +template +struct TReducerArgsStorage final : FReducerArgsStorageBase +{ + explicit TReducerArgsStorage(const T& InValue) : Value(InValue) {} + T Value; +}; + USTRUCT(BlueprintType) struct TESTCLIENT_API FReducer { @@ -626,9 +925,9 @@ struct TESTCLIENT_API FReducer public: UPROPERTY(BlueprintReadOnly, Category = "SpacetimeDB") - EReducerTag Tag = static_cast(0); + int32 Tag = 0; - TVariant Data; + TSharedPtr Data; // Optional metadata UPROPERTY(BlueprintReadOnly, Category = "SpacetimeDB") @@ -636,9753 +935,23099 @@ struct TESTCLIENT_API FReducer uint32 ReducerId = 0; uint32 RequestId = 0; - static FReducer DeleteFromBtreeU32(const FDeleteFromBtreeU32Args& Value) + static FReducer DeleteAllOneBool(const FDeleteAllOneBoolArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteFromBtreeU32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_from_btree_u_32"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneBool); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_bool"); return Out; } - FORCEINLINE bool IsDeleteFromBtreeU32() const { return Tag == EReducerTag::DeleteFromBtreeU32; } - FORCEINLINE FDeleteFromBtreeU32Args GetAsDeleteFromBtreeU32() const + FORCEINLINE bool IsDeleteAllOneBool() const { return Tag == static_cast(EReducerTag::DeleteAllOneBool); } + FORCEINLINE FDeleteAllOneBoolArgs GetAsDeleteAllOneBool() const { - ensureMsgf(IsDeleteFromBtreeU32(), TEXT("Reducer does not hold DeleteFromBtreeU32!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneBool(), TEXT("Reducer does not hold DeleteAllOneBool!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneBool!")); + return TypedData ? TypedData->Value : FDeleteAllOneBoolArgs(); } - static FReducer DeleteLargeTable(const FDeleteLargeTableArgs& Value) + static FReducer DeleteAllOneByteStruct(const FDeleteAllOneByteStructArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteLargeTable; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_large_table"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneByteStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_byte_struct"); return Out; } - FORCEINLINE bool IsDeleteLargeTable() const { return Tag == EReducerTag::DeleteLargeTable; } - FORCEINLINE FDeleteLargeTableArgs GetAsDeleteLargeTable() const + FORCEINLINE bool IsDeleteAllOneByteStruct() const { return Tag == static_cast(EReducerTag::DeleteAllOneByteStruct); } + FORCEINLINE FDeleteAllOneByteStructArgs GetAsDeleteAllOneByteStruct() const { - ensureMsgf(IsDeleteLargeTable(), TEXT("Reducer does not hold DeleteLargeTable!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneByteStruct(), TEXT("Reducer does not hold DeleteAllOneByteStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneByteStruct!")); + return TypedData ? TypedData->Value : FDeleteAllOneByteStructArgs(); } - static FReducer DeletePkBool(const FDeletePkBoolArgs& Value) + static FReducer DeleteAllOneEnumWithPayload(const FDeleteAllOneEnumWithPayloadArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkBool; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_bool"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneEnumWithPayload); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_enum_with_payload"); return Out; } - FORCEINLINE bool IsDeletePkBool() const { return Tag == EReducerTag::DeletePkBool; } - FORCEINLINE FDeletePkBoolArgs GetAsDeletePkBool() const + FORCEINLINE bool IsDeleteAllOneEnumWithPayload() const { return Tag == static_cast(EReducerTag::DeleteAllOneEnumWithPayload); } + FORCEINLINE FDeleteAllOneEnumWithPayloadArgs GetAsDeleteAllOneEnumWithPayload() const { - ensureMsgf(IsDeletePkBool(), TEXT("Reducer does not hold DeletePkBool!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneEnumWithPayload(), TEXT("Reducer does not hold DeleteAllOneEnumWithPayload!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneEnumWithPayload!")); + return TypedData ? TypedData->Value : FDeleteAllOneEnumWithPayloadArgs(); } - static FReducer DeletePkConnectionId(const FDeletePkConnectionIdArgs& Value) + static FReducer DeleteAllOneEveryPrimitiveStruct(const FDeleteAllOneEveryPrimitiveStructArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkConnectionId; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_connection_id"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneEveryPrimitiveStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_every_primitive_struct"); return Out; } - FORCEINLINE bool IsDeletePkConnectionId() const { return Tag == EReducerTag::DeletePkConnectionId; } - FORCEINLINE FDeletePkConnectionIdArgs GetAsDeletePkConnectionId() const + FORCEINLINE bool IsDeleteAllOneEveryPrimitiveStruct() const { return Tag == static_cast(EReducerTag::DeleteAllOneEveryPrimitiveStruct); } + FORCEINLINE FDeleteAllOneEveryPrimitiveStructArgs GetAsDeleteAllOneEveryPrimitiveStruct() const { - ensureMsgf(IsDeletePkConnectionId(), TEXT("Reducer does not hold DeletePkConnectionId!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneEveryPrimitiveStruct(), TEXT("Reducer does not hold DeleteAllOneEveryPrimitiveStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneEveryPrimitiveStruct!")); + return TypedData ? TypedData->Value : FDeleteAllOneEveryPrimitiveStructArgs(); } - static FReducer DeletePkI128(const FDeletePkI128Args& Value) + static FReducer DeleteAllOneEveryVecStruct(const FDeleteAllOneEveryVecStructArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkI128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_i_128"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneEveryVecStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_every_vec_struct"); return Out; } - FORCEINLINE bool IsDeletePkI128() const { return Tag == EReducerTag::DeletePkI128; } - FORCEINLINE FDeletePkI128Args GetAsDeletePkI128() const + FORCEINLINE bool IsDeleteAllOneEveryVecStruct() const { return Tag == static_cast(EReducerTag::DeleteAllOneEveryVecStruct); } + FORCEINLINE FDeleteAllOneEveryVecStructArgs GetAsDeleteAllOneEveryVecStruct() const { - ensureMsgf(IsDeletePkI128(), TEXT("Reducer does not hold DeletePkI128!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneEveryVecStruct(), TEXT("Reducer does not hold DeleteAllOneEveryVecStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneEveryVecStruct!")); + return TypedData ? TypedData->Value : FDeleteAllOneEveryVecStructArgs(); } - static FReducer DeletePkI16(const FDeletePkI16Args& Value) + static FReducer DeleteAllOneF32(const FDeleteAllOneF32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkI16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_i_16"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneF32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_f_32"); return Out; } - FORCEINLINE bool IsDeletePkI16() const { return Tag == EReducerTag::DeletePkI16; } - FORCEINLINE FDeletePkI16Args GetAsDeletePkI16() const + FORCEINLINE bool IsDeleteAllOneF32() const { return Tag == static_cast(EReducerTag::DeleteAllOneF32); } + FORCEINLINE FDeleteAllOneF32Args GetAsDeleteAllOneF32() const { - ensureMsgf(IsDeletePkI16(), TEXT("Reducer does not hold DeletePkI16!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneF32(), TEXT("Reducer does not hold DeleteAllOneF32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneF32!")); + return TypedData ? TypedData->Value : FDeleteAllOneF32Args(); } - static FReducer DeletePkI256(const FDeletePkI256Args& Value) + static FReducer DeleteAllOneF64(const FDeleteAllOneF64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkI256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_i_256"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneF64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_f_64"); return Out; } - FORCEINLINE bool IsDeletePkI256() const { return Tag == EReducerTag::DeletePkI256; } - FORCEINLINE FDeletePkI256Args GetAsDeletePkI256() const + FORCEINLINE bool IsDeleteAllOneF64() const { return Tag == static_cast(EReducerTag::DeleteAllOneF64); } + FORCEINLINE FDeleteAllOneF64Args GetAsDeleteAllOneF64() const { - ensureMsgf(IsDeletePkI256(), TEXT("Reducer does not hold DeletePkI256!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneF64(), TEXT("Reducer does not hold DeleteAllOneF64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneF64!")); + return TypedData ? TypedData->Value : FDeleteAllOneF64Args(); } - static FReducer DeletePkI32(const FDeletePkI32Args& Value) + static FReducer DeleteAllOneI128(const FDeleteAllOneI128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkI32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_i_32"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneI128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_i_128"); return Out; } - FORCEINLINE bool IsDeletePkI32() const { return Tag == EReducerTag::DeletePkI32; } - FORCEINLINE FDeletePkI32Args GetAsDeletePkI32() const + FORCEINLINE bool IsDeleteAllOneI128() const { return Tag == static_cast(EReducerTag::DeleteAllOneI128); } + FORCEINLINE FDeleteAllOneI128Args GetAsDeleteAllOneI128() const { - ensureMsgf(IsDeletePkI32(), TEXT("Reducer does not hold DeletePkI32!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneI128(), TEXT("Reducer does not hold DeleteAllOneI128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneI128!")); + return TypedData ? TypedData->Value : FDeleteAllOneI128Args(); } - static FReducer DeletePkI64(const FDeletePkI64Args& Value) + static FReducer DeleteAllOneI16(const FDeleteAllOneI16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkI64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_i_64"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneI16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_i_16"); return Out; } - FORCEINLINE bool IsDeletePkI64() const { return Tag == EReducerTag::DeletePkI64; } - FORCEINLINE FDeletePkI64Args GetAsDeletePkI64() const + FORCEINLINE bool IsDeleteAllOneI16() const { return Tag == static_cast(EReducerTag::DeleteAllOneI16); } + FORCEINLINE FDeleteAllOneI16Args GetAsDeleteAllOneI16() const { - ensureMsgf(IsDeletePkI64(), TEXT("Reducer does not hold DeletePkI64!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneI16(), TEXT("Reducer does not hold DeleteAllOneI16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneI16!")); + return TypedData ? TypedData->Value : FDeleteAllOneI16Args(); } - static FReducer DeletePkI8(const FDeletePkI8Args& Value) + static FReducer DeleteAllOneI256(const FDeleteAllOneI256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkI8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_i_8"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneI256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_i_256"); return Out; } - FORCEINLINE bool IsDeletePkI8() const { return Tag == EReducerTag::DeletePkI8; } - FORCEINLINE FDeletePkI8Args GetAsDeletePkI8() const + FORCEINLINE bool IsDeleteAllOneI256() const { return Tag == static_cast(EReducerTag::DeleteAllOneI256); } + FORCEINLINE FDeleteAllOneI256Args GetAsDeleteAllOneI256() const { - ensureMsgf(IsDeletePkI8(), TEXT("Reducer does not hold DeletePkI8!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneI256(), TEXT("Reducer does not hold DeleteAllOneI256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneI256!")); + return TypedData ? TypedData->Value : FDeleteAllOneI256Args(); } - static FReducer DeletePkIdentity(const FDeletePkIdentityArgs& Value) + static FReducer DeleteAllOneI32(const FDeleteAllOneI32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkIdentity; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_identity"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_i_32"); return Out; } - FORCEINLINE bool IsDeletePkIdentity() const { return Tag == EReducerTag::DeletePkIdentity; } - FORCEINLINE FDeletePkIdentityArgs GetAsDeletePkIdentity() const + FORCEINLINE bool IsDeleteAllOneI32() const { return Tag == static_cast(EReducerTag::DeleteAllOneI32); } + FORCEINLINE FDeleteAllOneI32Args GetAsDeleteAllOneI32() const { - ensureMsgf(IsDeletePkIdentity(), TEXT("Reducer does not hold DeletePkIdentity!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneI32(), TEXT("Reducer does not hold DeleteAllOneI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneI32!")); + return TypedData ? TypedData->Value : FDeleteAllOneI32Args(); } - static FReducer DeletePkString(const FDeletePkStringArgs& Value) + static FReducer DeleteAllOneI64(const FDeleteAllOneI64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkString; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_string"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneI64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_i_64"); return Out; } - FORCEINLINE bool IsDeletePkString() const { return Tag == EReducerTag::DeletePkString; } - FORCEINLINE FDeletePkStringArgs GetAsDeletePkString() const + FORCEINLINE bool IsDeleteAllOneI64() const { return Tag == static_cast(EReducerTag::DeleteAllOneI64); } + FORCEINLINE FDeleteAllOneI64Args GetAsDeleteAllOneI64() const { - ensureMsgf(IsDeletePkString(), TEXT("Reducer does not hold DeletePkString!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneI64(), TEXT("Reducer does not hold DeleteAllOneI64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneI64!")); + return TypedData ? TypedData->Value : FDeleteAllOneI64Args(); } - static FReducer DeletePkU128(const FDeletePkU128Args& Value) + static FReducer DeleteAllOneI8(const FDeleteAllOneI8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkU128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_u_128"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneI8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_i_8"); return Out; } - FORCEINLINE bool IsDeletePkU128() const { return Tag == EReducerTag::DeletePkU128; } - FORCEINLINE FDeletePkU128Args GetAsDeletePkU128() const + FORCEINLINE bool IsDeleteAllOneI8() const { return Tag == static_cast(EReducerTag::DeleteAllOneI8); } + FORCEINLINE FDeleteAllOneI8Args GetAsDeleteAllOneI8() const { - ensureMsgf(IsDeletePkU128(), TEXT("Reducer does not hold DeletePkU128!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneI8(), TEXT("Reducer does not hold DeleteAllOneI8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneI8!")); + return TypedData ? TypedData->Value : FDeleteAllOneI8Args(); } - static FReducer DeletePkU16(const FDeletePkU16Args& Value) + static FReducer DeleteAllOneIdentity(const FDeleteAllOneIdentityArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkU16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_u_16"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_identity"); return Out; } - FORCEINLINE bool IsDeletePkU16() const { return Tag == EReducerTag::DeletePkU16; } - FORCEINLINE FDeletePkU16Args GetAsDeletePkU16() const + FORCEINLINE bool IsDeleteAllOneIdentity() const { return Tag == static_cast(EReducerTag::DeleteAllOneIdentity); } + FORCEINLINE FDeleteAllOneIdentityArgs GetAsDeleteAllOneIdentity() const { - ensureMsgf(IsDeletePkU16(), TEXT("Reducer does not hold DeletePkU16!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneIdentity(), TEXT("Reducer does not hold DeleteAllOneIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneIdentity!")); + return TypedData ? TypedData->Value : FDeleteAllOneIdentityArgs(); } - static FReducer DeletePkU256(const FDeletePkU256Args& Value) + static FReducer DeleteAllOneSimpleEnum(const FDeleteAllOneSimpleEnumArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkU256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_u_256"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneSimpleEnum); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_simple_enum"); return Out; } - FORCEINLINE bool IsDeletePkU256() const { return Tag == EReducerTag::DeletePkU256; } - FORCEINLINE FDeletePkU256Args GetAsDeletePkU256() const + FORCEINLINE bool IsDeleteAllOneSimpleEnum() const { return Tag == static_cast(EReducerTag::DeleteAllOneSimpleEnum); } + FORCEINLINE FDeleteAllOneSimpleEnumArgs GetAsDeleteAllOneSimpleEnum() const { - ensureMsgf(IsDeletePkU256(), TEXT("Reducer does not hold DeletePkU256!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneSimpleEnum(), TEXT("Reducer does not hold DeleteAllOneSimpleEnum!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneSimpleEnum!")); + return TypedData ? TypedData->Value : FDeleteAllOneSimpleEnumArgs(); } - static FReducer DeletePkU32(const FDeletePkU32Args& Value) + static FReducer DeleteAllOneString(const FDeleteAllOneStringArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkU32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_u_32"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_string"); return Out; } - FORCEINLINE bool IsDeletePkU32() const { return Tag == EReducerTag::DeletePkU32; } - FORCEINLINE FDeletePkU32Args GetAsDeletePkU32() const + FORCEINLINE bool IsDeleteAllOneString() const { return Tag == static_cast(EReducerTag::DeleteAllOneString); } + FORCEINLINE FDeleteAllOneStringArgs GetAsDeleteAllOneString() const { - ensureMsgf(IsDeletePkU32(), TEXT("Reducer does not hold DeletePkU32!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneString(), TEXT("Reducer does not hold DeleteAllOneString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneString!")); + return TypedData ? TypedData->Value : FDeleteAllOneStringArgs(); } - static FReducer DeletePkU32InsertPkU32Two(const FDeletePkU32InsertPkU32TwoArgs& Value) + static FReducer DeleteAllOneTimestamp(const FDeleteAllOneTimestampArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkU32InsertPkU32Two; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_u_32_insert_pk_u_32_two"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneTimestamp); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_timestamp"); return Out; } - FORCEINLINE bool IsDeletePkU32InsertPkU32Two() const { return Tag == EReducerTag::DeletePkU32InsertPkU32Two; } - FORCEINLINE FDeletePkU32InsertPkU32TwoArgs GetAsDeletePkU32InsertPkU32Two() const + FORCEINLINE bool IsDeleteAllOneTimestamp() const { return Tag == static_cast(EReducerTag::DeleteAllOneTimestamp); } + FORCEINLINE FDeleteAllOneTimestampArgs GetAsDeleteAllOneTimestamp() const { - ensureMsgf(IsDeletePkU32InsertPkU32Two(), TEXT("Reducer does not hold DeletePkU32InsertPkU32Two!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneTimestamp(), TEXT("Reducer does not hold DeleteAllOneTimestamp!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneTimestamp!")); + return TypedData ? TypedData->Value : FDeleteAllOneTimestampArgs(); } - static FReducer DeletePkU32Two(const FDeletePkU32TwoArgs& Value) + static FReducer DeleteAllOneU128(const FDeleteAllOneU128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkU32Two; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_u_32_two"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneU128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_u_128"); return Out; } - FORCEINLINE bool IsDeletePkU32Two() const { return Tag == EReducerTag::DeletePkU32Two; } - FORCEINLINE FDeletePkU32TwoArgs GetAsDeletePkU32Two() const + FORCEINLINE bool IsDeleteAllOneU128() const { return Tag == static_cast(EReducerTag::DeleteAllOneU128); } + FORCEINLINE FDeleteAllOneU128Args GetAsDeleteAllOneU128() const { - ensureMsgf(IsDeletePkU32Two(), TEXT("Reducer does not hold DeletePkU32Two!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneU128(), TEXT("Reducer does not hold DeleteAllOneU128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneU128!")); + return TypedData ? TypedData->Value : FDeleteAllOneU128Args(); } - static FReducer DeletePkU64(const FDeletePkU64Args& Value) + static FReducer DeleteAllOneU16(const FDeleteAllOneU16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkU64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_u_64"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneU16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_u_16"); return Out; } - FORCEINLINE bool IsDeletePkU64() const { return Tag == EReducerTag::DeletePkU64; } - FORCEINLINE FDeletePkU64Args GetAsDeletePkU64() const + FORCEINLINE bool IsDeleteAllOneU16() const { return Tag == static_cast(EReducerTag::DeleteAllOneU16); } + FORCEINLINE FDeleteAllOneU16Args GetAsDeleteAllOneU16() const { - ensureMsgf(IsDeletePkU64(), TEXT("Reducer does not hold DeletePkU64!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneU16(), TEXT("Reducer does not hold DeleteAllOneU16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneU16!")); + return TypedData ? TypedData->Value : FDeleteAllOneU16Args(); } - static FReducer DeletePkU8(const FDeletePkU8Args& Value) + static FReducer DeleteAllOneU256(const FDeleteAllOneU256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkU8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_u_8"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneU256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_u_256"); return Out; } - FORCEINLINE bool IsDeletePkU8() const { return Tag == EReducerTag::DeletePkU8; } - FORCEINLINE FDeletePkU8Args GetAsDeletePkU8() const + FORCEINLINE bool IsDeleteAllOneU256() const { return Tag == static_cast(EReducerTag::DeleteAllOneU256); } + FORCEINLINE FDeleteAllOneU256Args GetAsDeleteAllOneU256() const { - ensureMsgf(IsDeletePkU8(), TEXT("Reducer does not hold DeletePkU8!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneU256(), TEXT("Reducer does not hold DeleteAllOneU256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneU256!")); + return TypedData ? TypedData->Value : FDeleteAllOneU256Args(); } - static FReducer DeletePkUuid(const FDeletePkUuidArgs& Value) + static FReducer DeleteAllOneU32(const FDeleteAllOneU32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeletePkUuid; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_pk_uuid"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_u_32"); return Out; } - FORCEINLINE bool IsDeletePkUuid() const { return Tag == EReducerTag::DeletePkUuid; } - FORCEINLINE FDeletePkUuidArgs GetAsDeletePkUuid() const + FORCEINLINE bool IsDeleteAllOneU32() const { return Tag == static_cast(EReducerTag::DeleteAllOneU32); } + FORCEINLINE FDeleteAllOneU32Args GetAsDeleteAllOneU32() const { - ensureMsgf(IsDeletePkUuid(), TEXT("Reducer does not hold DeletePkUuid!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneU32(), TEXT("Reducer does not hold DeleteAllOneU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneU32!")); + return TypedData ? TypedData->Value : FDeleteAllOneU32Args(); } - static FReducer DeleteUniqueBool(const FDeleteUniqueBoolArgs& Value) + static FReducer DeleteAllOneU64(const FDeleteAllOneU64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueBool; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_bool"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneU64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_u_64"); return Out; } - FORCEINLINE bool IsDeleteUniqueBool() const { return Tag == EReducerTag::DeleteUniqueBool; } - FORCEINLINE FDeleteUniqueBoolArgs GetAsDeleteUniqueBool() const + FORCEINLINE bool IsDeleteAllOneU64() const { return Tag == static_cast(EReducerTag::DeleteAllOneU64); } + FORCEINLINE FDeleteAllOneU64Args GetAsDeleteAllOneU64() const { - ensureMsgf(IsDeleteUniqueBool(), TEXT("Reducer does not hold DeleteUniqueBool!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneU64(), TEXT("Reducer does not hold DeleteAllOneU64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneU64!")); + return TypedData ? TypedData->Value : FDeleteAllOneU64Args(); } - static FReducer DeleteUniqueConnectionId(const FDeleteUniqueConnectionIdArgs& Value) + static FReducer DeleteAllOneU8(const FDeleteAllOneU8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueConnectionId; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_connection_id"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneU8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_u_8"); return Out; } - FORCEINLINE bool IsDeleteUniqueConnectionId() const { return Tag == EReducerTag::DeleteUniqueConnectionId; } - FORCEINLINE FDeleteUniqueConnectionIdArgs GetAsDeleteUniqueConnectionId() const + FORCEINLINE bool IsDeleteAllOneU8() const { return Tag == static_cast(EReducerTag::DeleteAllOneU8); } + FORCEINLINE FDeleteAllOneU8Args GetAsDeleteAllOneU8() const { - ensureMsgf(IsDeleteUniqueConnectionId(), TEXT("Reducer does not hold DeleteUniqueConnectionId!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneU8(), TEXT("Reducer does not hold DeleteAllOneU8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneU8!")); + return TypedData ? TypedData->Value : FDeleteAllOneU8Args(); } - static FReducer DeleteUniqueI128(const FDeleteUniqueI128Args& Value) + static FReducer DeleteAllOneUnitStruct(const FDeleteAllOneUnitStructArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueI128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_i_128"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneUnitStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_unit_struct"); return Out; } - FORCEINLINE bool IsDeleteUniqueI128() const { return Tag == EReducerTag::DeleteUniqueI128; } - FORCEINLINE FDeleteUniqueI128Args GetAsDeleteUniqueI128() const + FORCEINLINE bool IsDeleteAllOneUnitStruct() const { return Tag == static_cast(EReducerTag::DeleteAllOneUnitStruct); } + FORCEINLINE FDeleteAllOneUnitStructArgs GetAsDeleteAllOneUnitStruct() const { - ensureMsgf(IsDeleteUniqueI128(), TEXT("Reducer does not hold DeleteUniqueI128!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneUnitStruct(), TEXT("Reducer does not hold DeleteAllOneUnitStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneUnitStruct!")); + return TypedData ? TypedData->Value : FDeleteAllOneUnitStructArgs(); } - static FReducer DeleteUniqueI16(const FDeleteUniqueI16Args& Value) + static FReducer DeleteAllOneUuid(const FDeleteAllOneUuidArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueI16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_i_16"); + Out.Tag = static_cast(EReducerTag::DeleteAllOneUuid); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_one_uuid"); return Out; } - FORCEINLINE bool IsDeleteUniqueI16() const { return Tag == EReducerTag::DeleteUniqueI16; } - FORCEINLINE FDeleteUniqueI16Args GetAsDeleteUniqueI16() const + FORCEINLINE bool IsDeleteAllOneUuid() const { return Tag == static_cast(EReducerTag::DeleteAllOneUuid); } + FORCEINLINE FDeleteAllOneUuidArgs GetAsDeleteAllOneUuid() const { - ensureMsgf(IsDeleteUniqueI16(), TEXT("Reducer does not hold DeleteUniqueI16!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOneUuid(), TEXT("Reducer does not hold DeleteAllOneUuid!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOneUuid!")); + return TypedData ? TypedData->Value : FDeleteAllOneUuidArgs(); } - static FReducer DeleteUniqueI256(const FDeleteUniqueI256Args& Value) + static FReducer DeleteAllOptionEveryPrimitiveStruct(const FDeleteAllOptionEveryPrimitiveStructArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueI256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_i_256"); + Out.Tag = static_cast(EReducerTag::DeleteAllOptionEveryPrimitiveStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_option_every_primitive_struct"); return Out; } - FORCEINLINE bool IsDeleteUniqueI256() const { return Tag == EReducerTag::DeleteUniqueI256; } - FORCEINLINE FDeleteUniqueI256Args GetAsDeleteUniqueI256() const + FORCEINLINE bool IsDeleteAllOptionEveryPrimitiveStruct() const { return Tag == static_cast(EReducerTag::DeleteAllOptionEveryPrimitiveStruct); } + FORCEINLINE FDeleteAllOptionEveryPrimitiveStructArgs GetAsDeleteAllOptionEveryPrimitiveStruct() const { - ensureMsgf(IsDeleteUniqueI256(), TEXT("Reducer does not hold DeleteUniqueI256!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOptionEveryPrimitiveStruct(), TEXT("Reducer does not hold DeleteAllOptionEveryPrimitiveStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOptionEveryPrimitiveStruct!")); + return TypedData ? TypedData->Value : FDeleteAllOptionEveryPrimitiveStructArgs(); } - static FReducer DeleteUniqueI32(const FDeleteUniqueI32Args& Value) + static FReducer DeleteAllOptionI32(const FDeleteAllOptionI32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueI32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_i_32"); + Out.Tag = static_cast(EReducerTag::DeleteAllOptionI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_option_i_32"); return Out; } - FORCEINLINE bool IsDeleteUniqueI32() const { return Tag == EReducerTag::DeleteUniqueI32; } - FORCEINLINE FDeleteUniqueI32Args GetAsDeleteUniqueI32() const + FORCEINLINE bool IsDeleteAllOptionI32() const { return Tag == static_cast(EReducerTag::DeleteAllOptionI32); } + FORCEINLINE FDeleteAllOptionI32Args GetAsDeleteAllOptionI32() const { - ensureMsgf(IsDeleteUniqueI32(), TEXT("Reducer does not hold DeleteUniqueI32!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOptionI32(), TEXT("Reducer does not hold DeleteAllOptionI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOptionI32!")); + return TypedData ? TypedData->Value : FDeleteAllOptionI32Args(); } - static FReducer DeleteUniqueI64(const FDeleteUniqueI64Args& Value) + static FReducer DeleteAllOptionIdentity(const FDeleteAllOptionIdentityArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueI64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_i_64"); + Out.Tag = static_cast(EReducerTag::DeleteAllOptionIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_option_identity"); return Out; } - FORCEINLINE bool IsDeleteUniqueI64() const { return Tag == EReducerTag::DeleteUniqueI64; } - FORCEINLINE FDeleteUniqueI64Args GetAsDeleteUniqueI64() const + FORCEINLINE bool IsDeleteAllOptionIdentity() const { return Tag == static_cast(EReducerTag::DeleteAllOptionIdentity); } + FORCEINLINE FDeleteAllOptionIdentityArgs GetAsDeleteAllOptionIdentity() const { - ensureMsgf(IsDeleteUniqueI64(), TEXT("Reducer does not hold DeleteUniqueI64!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOptionIdentity(), TEXT("Reducer does not hold DeleteAllOptionIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOptionIdentity!")); + return TypedData ? TypedData->Value : FDeleteAllOptionIdentityArgs(); } - static FReducer DeleteUniqueI8(const FDeleteUniqueI8Args& Value) + static FReducer DeleteAllOptionSimpleEnum(const FDeleteAllOptionSimpleEnumArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueI8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_i_8"); + Out.Tag = static_cast(EReducerTag::DeleteAllOptionSimpleEnum); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_option_simple_enum"); return Out; } - FORCEINLINE bool IsDeleteUniqueI8() const { return Tag == EReducerTag::DeleteUniqueI8; } - FORCEINLINE FDeleteUniqueI8Args GetAsDeleteUniqueI8() const + FORCEINLINE bool IsDeleteAllOptionSimpleEnum() const { return Tag == static_cast(EReducerTag::DeleteAllOptionSimpleEnum); } + FORCEINLINE FDeleteAllOptionSimpleEnumArgs GetAsDeleteAllOptionSimpleEnum() const { - ensureMsgf(IsDeleteUniqueI8(), TEXT("Reducer does not hold DeleteUniqueI8!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOptionSimpleEnum(), TEXT("Reducer does not hold DeleteAllOptionSimpleEnum!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOptionSimpleEnum!")); + return TypedData ? TypedData->Value : FDeleteAllOptionSimpleEnumArgs(); } - static FReducer DeleteUniqueIdentity(const FDeleteUniqueIdentityArgs& Value) + static FReducer DeleteAllOptionString(const FDeleteAllOptionStringArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueIdentity; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_identity"); + Out.Tag = static_cast(EReducerTag::DeleteAllOptionString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_option_string"); return Out; } - FORCEINLINE bool IsDeleteUniqueIdentity() const { return Tag == EReducerTag::DeleteUniqueIdentity; } - FORCEINLINE FDeleteUniqueIdentityArgs GetAsDeleteUniqueIdentity() const + FORCEINLINE bool IsDeleteAllOptionString() const { return Tag == static_cast(EReducerTag::DeleteAllOptionString); } + FORCEINLINE FDeleteAllOptionStringArgs GetAsDeleteAllOptionString() const { - ensureMsgf(IsDeleteUniqueIdentity(), TEXT("Reducer does not hold DeleteUniqueIdentity!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOptionString(), TEXT("Reducer does not hold DeleteAllOptionString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOptionString!")); + return TypedData ? TypedData->Value : FDeleteAllOptionStringArgs(); } - static FReducer DeleteUniqueString(const FDeleteUniqueStringArgs& Value) + static FReducer DeleteAllOptionUuid(const FDeleteAllOptionUuidArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueString; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_string"); + Out.Tag = static_cast(EReducerTag::DeleteAllOptionUuid); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_option_uuid"); return Out; } - FORCEINLINE bool IsDeleteUniqueString() const { return Tag == EReducerTag::DeleteUniqueString; } - FORCEINLINE FDeleteUniqueStringArgs GetAsDeleteUniqueString() const + FORCEINLINE bool IsDeleteAllOptionUuid() const { return Tag == static_cast(EReducerTag::DeleteAllOptionUuid); } + FORCEINLINE FDeleteAllOptionUuidArgs GetAsDeleteAllOptionUuid() const { - ensureMsgf(IsDeleteUniqueString(), TEXT("Reducer does not hold DeleteUniqueString!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOptionUuid(), TEXT("Reducer does not hold DeleteAllOptionUuid!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOptionUuid!")); + return TypedData ? TypedData->Value : FDeleteAllOptionUuidArgs(); } - static FReducer DeleteUniqueU128(const FDeleteUniqueU128Args& Value) + static FReducer DeleteAllOptionVecOptionI32(const FDeleteAllOptionVecOptionI32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueU128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_u_128"); + Out.Tag = static_cast(EReducerTag::DeleteAllOptionVecOptionI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_option_vec_option_i_32"); return Out; } - FORCEINLINE bool IsDeleteUniqueU128() const { return Tag == EReducerTag::DeleteUniqueU128; } - FORCEINLINE FDeleteUniqueU128Args GetAsDeleteUniqueU128() const + FORCEINLINE bool IsDeleteAllOptionVecOptionI32() const { return Tag == static_cast(EReducerTag::DeleteAllOptionVecOptionI32); } + FORCEINLINE FDeleteAllOptionVecOptionI32Args GetAsDeleteAllOptionVecOptionI32() const { - ensureMsgf(IsDeleteUniqueU128(), TEXT("Reducer does not hold DeleteUniqueU128!")); - return Data.Get(); + ensureMsgf(IsDeleteAllOptionVecOptionI32(), TEXT("Reducer does not hold DeleteAllOptionVecOptionI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllOptionVecOptionI32!")); + return TypedData ? TypedData->Value : FDeleteAllOptionVecOptionI32Args(); } - static FReducer DeleteUniqueU16(const FDeleteUniqueU16Args& Value) + static FReducer DeleteAllPkBool(const FDeleteAllPkBoolArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueU16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_u_16"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkBool); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_bool"); return Out; } - FORCEINLINE bool IsDeleteUniqueU16() const { return Tag == EReducerTag::DeleteUniqueU16; } - FORCEINLINE FDeleteUniqueU16Args GetAsDeleteUniqueU16() const + FORCEINLINE bool IsDeleteAllPkBool() const { return Tag == static_cast(EReducerTag::DeleteAllPkBool); } + FORCEINLINE FDeleteAllPkBoolArgs GetAsDeleteAllPkBool() const { - ensureMsgf(IsDeleteUniqueU16(), TEXT("Reducer does not hold DeleteUniqueU16!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkBool(), TEXT("Reducer does not hold DeleteAllPkBool!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkBool!")); + return TypedData ? TypedData->Value : FDeleteAllPkBoolArgs(); } - static FReducer DeleteUniqueU256(const FDeleteUniqueU256Args& Value) + static FReducer DeleteAllPkConnectionId(const FDeleteAllPkConnectionIdArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueU256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_u_256"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkConnectionId); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_connection_id"); return Out; } - FORCEINLINE bool IsDeleteUniqueU256() const { return Tag == EReducerTag::DeleteUniqueU256; } - FORCEINLINE FDeleteUniqueU256Args GetAsDeleteUniqueU256() const + FORCEINLINE bool IsDeleteAllPkConnectionId() const { return Tag == static_cast(EReducerTag::DeleteAllPkConnectionId); } + FORCEINLINE FDeleteAllPkConnectionIdArgs GetAsDeleteAllPkConnectionId() const { - ensureMsgf(IsDeleteUniqueU256(), TEXT("Reducer does not hold DeleteUniqueU256!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkConnectionId(), TEXT("Reducer does not hold DeleteAllPkConnectionId!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkConnectionId!")); + return TypedData ? TypedData->Value : FDeleteAllPkConnectionIdArgs(); } - static FReducer DeleteUniqueU32(const FDeleteUniqueU32Args& Value) + static FReducer DeleteAllPkI128(const FDeleteAllPkI128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueU32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_u_32"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkI128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_i_128"); return Out; } - FORCEINLINE bool IsDeleteUniqueU32() const { return Tag == EReducerTag::DeleteUniqueU32; } - FORCEINLINE FDeleteUniqueU32Args GetAsDeleteUniqueU32() const + FORCEINLINE bool IsDeleteAllPkI128() const { return Tag == static_cast(EReducerTag::DeleteAllPkI128); } + FORCEINLINE FDeleteAllPkI128Args GetAsDeleteAllPkI128() const { - ensureMsgf(IsDeleteUniqueU32(), TEXT("Reducer does not hold DeleteUniqueU32!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkI128(), TEXT("Reducer does not hold DeleteAllPkI128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkI128!")); + return TypedData ? TypedData->Value : FDeleteAllPkI128Args(); } - static FReducer DeleteUniqueU64(const FDeleteUniqueU64Args& Value) + static FReducer DeleteAllPkI16(const FDeleteAllPkI16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueU64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_u_64"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkI16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_i_16"); return Out; } - FORCEINLINE bool IsDeleteUniqueU64() const { return Tag == EReducerTag::DeleteUniqueU64; } - FORCEINLINE FDeleteUniqueU64Args GetAsDeleteUniqueU64() const + FORCEINLINE bool IsDeleteAllPkI16() const { return Tag == static_cast(EReducerTag::DeleteAllPkI16); } + FORCEINLINE FDeleteAllPkI16Args GetAsDeleteAllPkI16() const { - ensureMsgf(IsDeleteUniqueU64(), TEXT("Reducer does not hold DeleteUniqueU64!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkI16(), TEXT("Reducer does not hold DeleteAllPkI16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkI16!")); + return TypedData ? TypedData->Value : FDeleteAllPkI16Args(); } - static FReducer DeleteUniqueU8(const FDeleteUniqueU8Args& Value) + static FReducer DeleteAllPkI256(const FDeleteAllPkI256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueU8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_u_8"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkI256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_i_256"); return Out; } - FORCEINLINE bool IsDeleteUniqueU8() const { return Tag == EReducerTag::DeleteUniqueU8; } - FORCEINLINE FDeleteUniqueU8Args GetAsDeleteUniqueU8() const + FORCEINLINE bool IsDeleteAllPkI256() const { return Tag == static_cast(EReducerTag::DeleteAllPkI256); } + FORCEINLINE FDeleteAllPkI256Args GetAsDeleteAllPkI256() const { - ensureMsgf(IsDeleteUniqueU8(), TEXT("Reducer does not hold DeleteUniqueU8!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkI256(), TEXT("Reducer does not hold DeleteAllPkI256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkI256!")); + return TypedData ? TypedData->Value : FDeleteAllPkI256Args(); } - static FReducer DeleteUniqueUuid(const FDeleteUniqueUuidArgs& Value) + static FReducer DeleteAllPkI32(const FDeleteAllPkI32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::DeleteUniqueUuid; - Out.Data.Set(Value); - Out.ReducerName = TEXT("delete_unique_uuid"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_i_32"); return Out; } - FORCEINLINE bool IsDeleteUniqueUuid() const { return Tag == EReducerTag::DeleteUniqueUuid; } - FORCEINLINE FDeleteUniqueUuidArgs GetAsDeleteUniqueUuid() const + FORCEINLINE bool IsDeleteAllPkI32() const { return Tag == static_cast(EReducerTag::DeleteAllPkI32); } + FORCEINLINE FDeleteAllPkI32Args GetAsDeleteAllPkI32() const { - ensureMsgf(IsDeleteUniqueUuid(), TEXT("Reducer does not hold DeleteUniqueUuid!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkI32(), TEXT("Reducer does not hold DeleteAllPkI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkI32!")); + return TypedData ? TypedData->Value : FDeleteAllPkI32Args(); } - static FReducer InsertCallTimestamp(const FInsertCallTimestampArgs& Value) + static FReducer DeleteAllPkI64(const FDeleteAllPkI64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertCallTimestamp; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_call_timestamp"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkI64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_i_64"); return Out; } - FORCEINLINE bool IsInsertCallTimestamp() const { return Tag == EReducerTag::InsertCallTimestamp; } - FORCEINLINE FInsertCallTimestampArgs GetAsInsertCallTimestamp() const + FORCEINLINE bool IsDeleteAllPkI64() const { return Tag == static_cast(EReducerTag::DeleteAllPkI64); } + FORCEINLINE FDeleteAllPkI64Args GetAsDeleteAllPkI64() const { - ensureMsgf(IsInsertCallTimestamp(), TEXT("Reducer does not hold InsertCallTimestamp!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkI64(), TEXT("Reducer does not hold DeleteAllPkI64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkI64!")); + return TypedData ? TypedData->Value : FDeleteAllPkI64Args(); } - static FReducer InsertCallUuidV4(const FInsertCallUuidV4Args& Value) + static FReducer DeleteAllPkI8(const FDeleteAllPkI8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertCallUuidV4; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_call_uuid_v_4"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkI8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_i_8"); return Out; } - FORCEINLINE bool IsInsertCallUuidV4() const { return Tag == EReducerTag::InsertCallUuidV4; } - FORCEINLINE FInsertCallUuidV4Args GetAsInsertCallUuidV4() const + FORCEINLINE bool IsDeleteAllPkI8() const { return Tag == static_cast(EReducerTag::DeleteAllPkI8); } + FORCEINLINE FDeleteAllPkI8Args GetAsDeleteAllPkI8() const { - ensureMsgf(IsInsertCallUuidV4(), TEXT("Reducer does not hold InsertCallUuidV4!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkI8(), TEXT("Reducer does not hold DeleteAllPkI8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkI8!")); + return TypedData ? TypedData->Value : FDeleteAllPkI8Args(); } - static FReducer InsertCallUuidV7(const FInsertCallUuidV7Args& Value) + static FReducer DeleteAllPkIdentity(const FDeleteAllPkIdentityArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertCallUuidV7; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_call_uuid_v_7"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_identity"); return Out; } - FORCEINLINE bool IsInsertCallUuidV7() const { return Tag == EReducerTag::InsertCallUuidV7; } - FORCEINLINE FInsertCallUuidV7Args GetAsInsertCallUuidV7() const + FORCEINLINE bool IsDeleteAllPkIdentity() const { return Tag == static_cast(EReducerTag::DeleteAllPkIdentity); } + FORCEINLINE FDeleteAllPkIdentityArgs GetAsDeleteAllPkIdentity() const { - ensureMsgf(IsInsertCallUuidV7(), TEXT("Reducer does not hold InsertCallUuidV7!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkIdentity(), TEXT("Reducer does not hold DeleteAllPkIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkIdentity!")); + return TypedData ? TypedData->Value : FDeleteAllPkIdentityArgs(); } - static FReducer InsertCallerOneConnectionId(const FInsertCallerOneConnectionIdArgs& Value) + static FReducer DeleteAllPkString(const FDeleteAllPkStringArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertCallerOneConnectionId; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_caller_one_connection_id"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_string"); return Out; } - FORCEINLINE bool IsInsertCallerOneConnectionId() const { return Tag == EReducerTag::InsertCallerOneConnectionId; } - FORCEINLINE FInsertCallerOneConnectionIdArgs GetAsInsertCallerOneConnectionId() const + FORCEINLINE bool IsDeleteAllPkString() const { return Tag == static_cast(EReducerTag::DeleteAllPkString); } + FORCEINLINE FDeleteAllPkStringArgs GetAsDeleteAllPkString() const { - ensureMsgf(IsInsertCallerOneConnectionId(), TEXT("Reducer does not hold InsertCallerOneConnectionId!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkString(), TEXT("Reducer does not hold DeleteAllPkString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkString!")); + return TypedData ? TypedData->Value : FDeleteAllPkStringArgs(); } - static FReducer InsertCallerOneIdentity(const FInsertCallerOneIdentityArgs& Value) + static FReducer DeleteAllPkU128(const FDeleteAllPkU128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertCallerOneIdentity; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_caller_one_identity"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkU128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_u_128"); return Out; } - FORCEINLINE bool IsInsertCallerOneIdentity() const { return Tag == EReducerTag::InsertCallerOneIdentity; } - FORCEINLINE FInsertCallerOneIdentityArgs GetAsInsertCallerOneIdentity() const + FORCEINLINE bool IsDeleteAllPkU128() const { return Tag == static_cast(EReducerTag::DeleteAllPkU128); } + FORCEINLINE FDeleteAllPkU128Args GetAsDeleteAllPkU128() const { - ensureMsgf(IsInsertCallerOneIdentity(), TEXT("Reducer does not hold InsertCallerOneIdentity!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkU128(), TEXT("Reducer does not hold DeleteAllPkU128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkU128!")); + return TypedData ? TypedData->Value : FDeleteAllPkU128Args(); } - static FReducer InsertCallerPkConnectionId(const FInsertCallerPkConnectionIdArgs& Value) + static FReducer DeleteAllPkU16(const FDeleteAllPkU16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertCallerPkConnectionId; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_caller_pk_connection_id"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkU16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_u_16"); return Out; } - FORCEINLINE bool IsInsertCallerPkConnectionId() const { return Tag == EReducerTag::InsertCallerPkConnectionId; } - FORCEINLINE FInsertCallerPkConnectionIdArgs GetAsInsertCallerPkConnectionId() const + FORCEINLINE bool IsDeleteAllPkU16() const { return Tag == static_cast(EReducerTag::DeleteAllPkU16); } + FORCEINLINE FDeleteAllPkU16Args GetAsDeleteAllPkU16() const { - ensureMsgf(IsInsertCallerPkConnectionId(), TEXT("Reducer does not hold InsertCallerPkConnectionId!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkU16(), TEXT("Reducer does not hold DeleteAllPkU16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkU16!")); + return TypedData ? TypedData->Value : FDeleteAllPkU16Args(); } - static FReducer InsertCallerPkIdentity(const FInsertCallerPkIdentityArgs& Value) + static FReducer DeleteAllPkU256(const FDeleteAllPkU256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertCallerPkIdentity; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_caller_pk_identity"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkU256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_u_256"); return Out; } - FORCEINLINE bool IsInsertCallerPkIdentity() const { return Tag == EReducerTag::InsertCallerPkIdentity; } - FORCEINLINE FInsertCallerPkIdentityArgs GetAsInsertCallerPkIdentity() const + FORCEINLINE bool IsDeleteAllPkU256() const { return Tag == static_cast(EReducerTag::DeleteAllPkU256); } + FORCEINLINE FDeleteAllPkU256Args GetAsDeleteAllPkU256() const { - ensureMsgf(IsInsertCallerPkIdentity(), TEXT("Reducer does not hold InsertCallerPkIdentity!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkU256(), TEXT("Reducer does not hold DeleteAllPkU256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkU256!")); + return TypedData ? TypedData->Value : FDeleteAllPkU256Args(); } - static FReducer InsertCallerUniqueConnectionId(const FInsertCallerUniqueConnectionIdArgs& Value) + static FReducer DeleteAllPkU32(const FDeleteAllPkU32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertCallerUniqueConnectionId; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_caller_unique_connection_id"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_u_32"); return Out; } - FORCEINLINE bool IsInsertCallerUniqueConnectionId() const { return Tag == EReducerTag::InsertCallerUniqueConnectionId; } - FORCEINLINE FInsertCallerUniqueConnectionIdArgs GetAsInsertCallerUniqueConnectionId() const + FORCEINLINE bool IsDeleteAllPkU32() const { return Tag == static_cast(EReducerTag::DeleteAllPkU32); } + FORCEINLINE FDeleteAllPkU32Args GetAsDeleteAllPkU32() const { - ensureMsgf(IsInsertCallerUniqueConnectionId(), TEXT("Reducer does not hold InsertCallerUniqueConnectionId!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkU32(), TEXT("Reducer does not hold DeleteAllPkU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkU32!")); + return TypedData ? TypedData->Value : FDeleteAllPkU32Args(); } - static FReducer InsertCallerUniqueIdentity(const FInsertCallerUniqueIdentityArgs& Value) + static FReducer DeleteAllPkU32Two(const FDeleteAllPkU32TwoArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertCallerUniqueIdentity; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_caller_unique_identity"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkU32Two); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_u_32_two"); return Out; } - FORCEINLINE bool IsInsertCallerUniqueIdentity() const { return Tag == EReducerTag::InsertCallerUniqueIdentity; } - FORCEINLINE FInsertCallerUniqueIdentityArgs GetAsInsertCallerUniqueIdentity() const + FORCEINLINE bool IsDeleteAllPkU32Two() const { return Tag == static_cast(EReducerTag::DeleteAllPkU32Two); } + FORCEINLINE FDeleteAllPkU32TwoArgs GetAsDeleteAllPkU32Two() const { - ensureMsgf(IsInsertCallerUniqueIdentity(), TEXT("Reducer does not hold InsertCallerUniqueIdentity!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkU32Two(), TEXT("Reducer does not hold DeleteAllPkU32Two!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkU32Two!")); + return TypedData ? TypedData->Value : FDeleteAllPkU32TwoArgs(); } - static FReducer InsertCallerVecConnectionId(const FInsertCallerVecConnectionIdArgs& Value) + static FReducer DeleteAllPkU64(const FDeleteAllPkU64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertCallerVecConnectionId; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_caller_vec_connection_id"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkU64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_u_64"); return Out; } - FORCEINLINE bool IsInsertCallerVecConnectionId() const { return Tag == EReducerTag::InsertCallerVecConnectionId; } - FORCEINLINE FInsertCallerVecConnectionIdArgs GetAsInsertCallerVecConnectionId() const + FORCEINLINE bool IsDeleteAllPkU64() const { return Tag == static_cast(EReducerTag::DeleteAllPkU64); } + FORCEINLINE FDeleteAllPkU64Args GetAsDeleteAllPkU64() const { - ensureMsgf(IsInsertCallerVecConnectionId(), TEXT("Reducer does not hold InsertCallerVecConnectionId!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkU64(), TEXT("Reducer does not hold DeleteAllPkU64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkU64!")); + return TypedData ? TypedData->Value : FDeleteAllPkU64Args(); } - static FReducer InsertCallerVecIdentity(const FInsertCallerVecIdentityArgs& Value) + static FReducer DeleteAllPkU8(const FDeleteAllPkU8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertCallerVecIdentity; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_caller_vec_identity"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkU8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_u_8"); return Out; } - FORCEINLINE bool IsInsertCallerVecIdentity() const { return Tag == EReducerTag::InsertCallerVecIdentity; } - FORCEINLINE FInsertCallerVecIdentityArgs GetAsInsertCallerVecIdentity() const + FORCEINLINE bool IsDeleteAllPkU8() const { return Tag == static_cast(EReducerTag::DeleteAllPkU8); } + FORCEINLINE FDeleteAllPkU8Args GetAsDeleteAllPkU8() const { - ensureMsgf(IsInsertCallerVecIdentity(), TEXT("Reducer does not hold InsertCallerVecIdentity!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkU8(), TEXT("Reducer does not hold DeleteAllPkU8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkU8!")); + return TypedData ? TypedData->Value : FDeleteAllPkU8Args(); } - static FReducer InsertIntoBtreeU32(const FInsertIntoBtreeU32Args& Value) + static FReducer DeleteAllPkUuid(const FDeleteAllPkUuidArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertIntoBtreeU32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_into_btree_u_32"); + Out.Tag = static_cast(EReducerTag::DeleteAllPkUuid); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_pk_uuid"); return Out; } - FORCEINLINE bool IsInsertIntoBtreeU32() const { return Tag == EReducerTag::InsertIntoBtreeU32; } - FORCEINLINE FInsertIntoBtreeU32Args GetAsInsertIntoBtreeU32() const + FORCEINLINE bool IsDeleteAllPkUuid() const { return Tag == static_cast(EReducerTag::DeleteAllPkUuid); } + FORCEINLINE FDeleteAllPkUuidArgs GetAsDeleteAllPkUuid() const { - ensureMsgf(IsInsertIntoBtreeU32(), TEXT("Reducer does not hold InsertIntoBtreeU32!")); - return Data.Get(); + ensureMsgf(IsDeleteAllPkUuid(), TEXT("Reducer does not hold DeleteAllPkUuid!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllPkUuid!")); + return TypedData ? TypedData->Value : FDeleteAllPkUuidArgs(); } - static FReducer InsertIntoIndexedSimpleEnum(const FInsertIntoIndexedSimpleEnumArgs& Value) + static FReducer DeleteAllUniqueBool(const FDeleteAllUniqueBoolArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertIntoIndexedSimpleEnum; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_into_indexed_simple_enum"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueBool); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_bool"); return Out; } - FORCEINLINE bool IsInsertIntoIndexedSimpleEnum() const { return Tag == EReducerTag::InsertIntoIndexedSimpleEnum; } - FORCEINLINE FInsertIntoIndexedSimpleEnumArgs GetAsInsertIntoIndexedSimpleEnum() const + FORCEINLINE bool IsDeleteAllUniqueBool() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueBool); } + FORCEINLINE FDeleteAllUniqueBoolArgs GetAsDeleteAllUniqueBool() const { - ensureMsgf(IsInsertIntoIndexedSimpleEnum(), TEXT("Reducer does not hold InsertIntoIndexedSimpleEnum!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueBool(), TEXT("Reducer does not hold DeleteAllUniqueBool!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueBool!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueBoolArgs(); } - static FReducer InsertIntoPkBtreeU32(const FInsertIntoPkBtreeU32Args& Value) + static FReducer DeleteAllUniqueConnectionId(const FDeleteAllUniqueConnectionIdArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertIntoPkBtreeU32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_into_pk_btree_u_32"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueConnectionId); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_connection_id"); return Out; } - FORCEINLINE bool IsInsertIntoPkBtreeU32() const { return Tag == EReducerTag::InsertIntoPkBtreeU32; } - FORCEINLINE FInsertIntoPkBtreeU32Args GetAsInsertIntoPkBtreeU32() const + FORCEINLINE bool IsDeleteAllUniqueConnectionId() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueConnectionId); } + FORCEINLINE FDeleteAllUniqueConnectionIdArgs GetAsDeleteAllUniqueConnectionId() const { - ensureMsgf(IsInsertIntoPkBtreeU32(), TEXT("Reducer does not hold InsertIntoPkBtreeU32!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueConnectionId(), TEXT("Reducer does not hold DeleteAllUniqueConnectionId!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueConnectionId!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueConnectionIdArgs(); } - static FReducer InsertLargeTable(const FInsertLargeTableArgs& Value) + static FReducer DeleteAllUniqueI128(const FDeleteAllUniqueI128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertLargeTable; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_large_table"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueI128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_i_128"); return Out; } - FORCEINLINE bool IsInsertLargeTable() const { return Tag == EReducerTag::InsertLargeTable; } - FORCEINLINE FInsertLargeTableArgs GetAsInsertLargeTable() const + FORCEINLINE bool IsDeleteAllUniqueI128() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueI128); } + FORCEINLINE FDeleteAllUniqueI128Args GetAsDeleteAllUniqueI128() const { - ensureMsgf(IsInsertLargeTable(), TEXT("Reducer does not hold InsertLargeTable!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueI128(), TEXT("Reducer does not hold DeleteAllUniqueI128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueI128!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueI128Args(); } - static FReducer InsertOneBool(const FInsertOneBoolArgs& Value) + static FReducer DeleteAllUniqueI16(const FDeleteAllUniqueI16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneBool; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_bool"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueI16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_i_16"); return Out; } - FORCEINLINE bool IsInsertOneBool() const { return Tag == EReducerTag::InsertOneBool; } - FORCEINLINE FInsertOneBoolArgs GetAsInsertOneBool() const + FORCEINLINE bool IsDeleteAllUniqueI16() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueI16); } + FORCEINLINE FDeleteAllUniqueI16Args GetAsDeleteAllUniqueI16() const { - ensureMsgf(IsInsertOneBool(), TEXT("Reducer does not hold InsertOneBool!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueI16(), TEXT("Reducer does not hold DeleteAllUniqueI16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueI16!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueI16Args(); } - static FReducer InsertOneByteStruct(const FInsertOneByteStructArgs& Value) + static FReducer DeleteAllUniqueI256(const FDeleteAllUniqueI256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneByteStruct; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_byte_struct"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueI256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_i_256"); return Out; } - FORCEINLINE bool IsInsertOneByteStruct() const { return Tag == EReducerTag::InsertOneByteStruct; } - FORCEINLINE FInsertOneByteStructArgs GetAsInsertOneByteStruct() const + FORCEINLINE bool IsDeleteAllUniqueI256() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueI256); } + FORCEINLINE FDeleteAllUniqueI256Args GetAsDeleteAllUniqueI256() const { - ensureMsgf(IsInsertOneByteStruct(), TEXT("Reducer does not hold InsertOneByteStruct!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueI256(), TEXT("Reducer does not hold DeleteAllUniqueI256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueI256!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueI256Args(); } - static FReducer InsertOneConnectionId(const FInsertOneConnectionIdArgs& Value) + static FReducer DeleteAllUniqueI32(const FDeleteAllUniqueI32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneConnectionId; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_connection_id"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_i_32"); return Out; } - FORCEINLINE bool IsInsertOneConnectionId() const { return Tag == EReducerTag::InsertOneConnectionId; } - FORCEINLINE FInsertOneConnectionIdArgs GetAsInsertOneConnectionId() const + FORCEINLINE bool IsDeleteAllUniqueI32() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueI32); } + FORCEINLINE FDeleteAllUniqueI32Args GetAsDeleteAllUniqueI32() const { - ensureMsgf(IsInsertOneConnectionId(), TEXT("Reducer does not hold InsertOneConnectionId!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueI32(), TEXT("Reducer does not hold DeleteAllUniqueI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueI32!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueI32Args(); } - static FReducer InsertOneEnumWithPayload(const FInsertOneEnumWithPayloadArgs& Value) + static FReducer DeleteAllUniqueI64(const FDeleteAllUniqueI64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneEnumWithPayload; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_enum_with_payload"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueI64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_i_64"); return Out; } - FORCEINLINE bool IsInsertOneEnumWithPayload() const { return Tag == EReducerTag::InsertOneEnumWithPayload; } - FORCEINLINE FInsertOneEnumWithPayloadArgs GetAsInsertOneEnumWithPayload() const + FORCEINLINE bool IsDeleteAllUniqueI64() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueI64); } + FORCEINLINE FDeleteAllUniqueI64Args GetAsDeleteAllUniqueI64() const { - ensureMsgf(IsInsertOneEnumWithPayload(), TEXT("Reducer does not hold InsertOneEnumWithPayload!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueI64(), TEXT("Reducer does not hold DeleteAllUniqueI64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueI64!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueI64Args(); } - static FReducer InsertOneEveryPrimitiveStruct(const FInsertOneEveryPrimitiveStructArgs& Value) + static FReducer DeleteAllUniqueI8(const FDeleteAllUniqueI8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneEveryPrimitiveStruct; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_every_primitive_struct"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueI8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_i_8"); return Out; } - FORCEINLINE bool IsInsertOneEveryPrimitiveStruct() const { return Tag == EReducerTag::InsertOneEveryPrimitiveStruct; } - FORCEINLINE FInsertOneEveryPrimitiveStructArgs GetAsInsertOneEveryPrimitiveStruct() const + FORCEINLINE bool IsDeleteAllUniqueI8() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueI8); } + FORCEINLINE FDeleteAllUniqueI8Args GetAsDeleteAllUniqueI8() const { - ensureMsgf(IsInsertOneEveryPrimitiveStruct(), TEXT("Reducer does not hold InsertOneEveryPrimitiveStruct!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueI8(), TEXT("Reducer does not hold DeleteAllUniqueI8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueI8!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueI8Args(); } - static FReducer InsertOneEveryVecStruct(const FInsertOneEveryVecStructArgs& Value) + static FReducer DeleteAllUniqueIdentity(const FDeleteAllUniqueIdentityArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneEveryVecStruct; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_every_vec_struct"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_identity"); return Out; } - FORCEINLINE bool IsInsertOneEveryVecStruct() const { return Tag == EReducerTag::InsertOneEveryVecStruct; } - FORCEINLINE FInsertOneEveryVecStructArgs GetAsInsertOneEveryVecStruct() const + FORCEINLINE bool IsDeleteAllUniqueIdentity() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueIdentity); } + FORCEINLINE FDeleteAllUniqueIdentityArgs GetAsDeleteAllUniqueIdentity() const { - ensureMsgf(IsInsertOneEveryVecStruct(), TEXT("Reducer does not hold InsertOneEveryVecStruct!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueIdentity(), TEXT("Reducer does not hold DeleteAllUniqueIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueIdentity!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueIdentityArgs(); } - static FReducer InsertOneF32(const FInsertOneF32Args& Value) + static FReducer DeleteAllUniqueString(const FDeleteAllUniqueStringArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneF32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_f_32"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_string"); return Out; } - FORCEINLINE bool IsInsertOneF32() const { return Tag == EReducerTag::InsertOneF32; } - FORCEINLINE FInsertOneF32Args GetAsInsertOneF32() const + FORCEINLINE bool IsDeleteAllUniqueString() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueString); } + FORCEINLINE FDeleteAllUniqueStringArgs GetAsDeleteAllUniqueString() const { - ensureMsgf(IsInsertOneF32(), TEXT("Reducer does not hold InsertOneF32!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueString(), TEXT("Reducer does not hold DeleteAllUniqueString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueString!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueStringArgs(); } - static FReducer InsertOneF64(const FInsertOneF64Args& Value) + static FReducer DeleteAllUniqueU128(const FDeleteAllUniqueU128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneF64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_f_64"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueU128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_u_128"); return Out; } - FORCEINLINE bool IsInsertOneF64() const { return Tag == EReducerTag::InsertOneF64; } - FORCEINLINE FInsertOneF64Args GetAsInsertOneF64() const + FORCEINLINE bool IsDeleteAllUniqueU128() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueU128); } + FORCEINLINE FDeleteAllUniqueU128Args GetAsDeleteAllUniqueU128() const { - ensureMsgf(IsInsertOneF64(), TEXT("Reducer does not hold InsertOneF64!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueU128(), TEXT("Reducer does not hold DeleteAllUniqueU128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueU128!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueU128Args(); } - static FReducer InsertOneI128(const FInsertOneI128Args& Value) + static FReducer DeleteAllUniqueU16(const FDeleteAllUniqueU16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneI128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_i_128"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueU16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_u_16"); return Out; } - FORCEINLINE bool IsInsertOneI128() const { return Tag == EReducerTag::InsertOneI128; } - FORCEINLINE FInsertOneI128Args GetAsInsertOneI128() const + FORCEINLINE bool IsDeleteAllUniqueU16() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueU16); } + FORCEINLINE FDeleteAllUniqueU16Args GetAsDeleteAllUniqueU16() const { - ensureMsgf(IsInsertOneI128(), TEXT("Reducer does not hold InsertOneI128!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueU16(), TEXT("Reducer does not hold DeleteAllUniqueU16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueU16!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueU16Args(); } - static FReducer InsertOneI16(const FInsertOneI16Args& Value) + static FReducer DeleteAllUniqueU256(const FDeleteAllUniqueU256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneI16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_i_16"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueU256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_u_256"); return Out; } - FORCEINLINE bool IsInsertOneI16() const { return Tag == EReducerTag::InsertOneI16; } - FORCEINLINE FInsertOneI16Args GetAsInsertOneI16() const + FORCEINLINE bool IsDeleteAllUniqueU256() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueU256); } + FORCEINLINE FDeleteAllUniqueU256Args GetAsDeleteAllUniqueU256() const { - ensureMsgf(IsInsertOneI16(), TEXT("Reducer does not hold InsertOneI16!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueU256(), TEXT("Reducer does not hold DeleteAllUniqueU256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueU256!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueU256Args(); } - static FReducer InsertOneI256(const FInsertOneI256Args& Value) + static FReducer DeleteAllUniqueU32(const FDeleteAllUniqueU32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneI256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_i_256"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_u_32"); return Out; } - FORCEINLINE bool IsInsertOneI256() const { return Tag == EReducerTag::InsertOneI256; } - FORCEINLINE FInsertOneI256Args GetAsInsertOneI256() const + FORCEINLINE bool IsDeleteAllUniqueU32() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueU32); } + FORCEINLINE FDeleteAllUniqueU32Args GetAsDeleteAllUniqueU32() const { - ensureMsgf(IsInsertOneI256(), TEXT("Reducer does not hold InsertOneI256!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueU32(), TEXT("Reducer does not hold DeleteAllUniqueU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueU32!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueU32Args(); } - static FReducer InsertOneI32(const FInsertOneI32Args& Value) + static FReducer DeleteAllUniqueU64(const FDeleteAllUniqueU64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneI32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_i_32"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueU64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_u_64"); return Out; } - FORCEINLINE bool IsInsertOneI32() const { return Tag == EReducerTag::InsertOneI32; } - FORCEINLINE FInsertOneI32Args GetAsInsertOneI32() const + FORCEINLINE bool IsDeleteAllUniqueU64() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueU64); } + FORCEINLINE FDeleteAllUniqueU64Args GetAsDeleteAllUniqueU64() const { - ensureMsgf(IsInsertOneI32(), TEXT("Reducer does not hold InsertOneI32!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueU64(), TEXT("Reducer does not hold DeleteAllUniqueU64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueU64!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueU64Args(); } - static FReducer InsertOneI64(const FInsertOneI64Args& Value) + static FReducer DeleteAllUniqueU8(const FDeleteAllUniqueU8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneI64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_i_64"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueU8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_u_8"); return Out; } - FORCEINLINE bool IsInsertOneI64() const { return Tag == EReducerTag::InsertOneI64; } - FORCEINLINE FInsertOneI64Args GetAsInsertOneI64() const + FORCEINLINE bool IsDeleteAllUniqueU8() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueU8); } + FORCEINLINE FDeleteAllUniqueU8Args GetAsDeleteAllUniqueU8() const { - ensureMsgf(IsInsertOneI64(), TEXT("Reducer does not hold InsertOneI64!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueU8(), TEXT("Reducer does not hold DeleteAllUniqueU8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueU8!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueU8Args(); } - static FReducer InsertOneI8(const FInsertOneI8Args& Value) + static FReducer DeleteAllUniqueUuid(const FDeleteAllUniqueUuidArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneI8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_i_8"); + Out.Tag = static_cast(EReducerTag::DeleteAllUniqueUuid); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_unique_uuid"); return Out; } - FORCEINLINE bool IsInsertOneI8() const { return Tag == EReducerTag::InsertOneI8; } - FORCEINLINE FInsertOneI8Args GetAsInsertOneI8() const + FORCEINLINE bool IsDeleteAllUniqueUuid() const { return Tag == static_cast(EReducerTag::DeleteAllUniqueUuid); } + FORCEINLINE FDeleteAllUniqueUuidArgs GetAsDeleteAllUniqueUuid() const { - ensureMsgf(IsInsertOneI8(), TEXT("Reducer does not hold InsertOneI8!")); - return Data.Get(); + ensureMsgf(IsDeleteAllUniqueUuid(), TEXT("Reducer does not hold DeleteAllUniqueUuid!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllUniqueUuid!")); + return TypedData ? TypedData->Value : FDeleteAllUniqueUuidArgs(); } - static FReducer InsertOneIdentity(const FInsertOneIdentityArgs& Value) + static FReducer DeleteAllVecBool(const FDeleteAllVecBoolArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneIdentity; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_identity"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecBool); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_bool"); return Out; } - FORCEINLINE bool IsInsertOneIdentity() const { return Tag == EReducerTag::InsertOneIdentity; } - FORCEINLINE FInsertOneIdentityArgs GetAsInsertOneIdentity() const + FORCEINLINE bool IsDeleteAllVecBool() const { return Tag == static_cast(EReducerTag::DeleteAllVecBool); } + FORCEINLINE FDeleteAllVecBoolArgs GetAsDeleteAllVecBool() const { - ensureMsgf(IsInsertOneIdentity(), TEXT("Reducer does not hold InsertOneIdentity!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecBool(), TEXT("Reducer does not hold DeleteAllVecBool!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecBool!")); + return TypedData ? TypedData->Value : FDeleteAllVecBoolArgs(); } - static FReducer InsertOneSimpleEnum(const FInsertOneSimpleEnumArgs& Value) + static FReducer DeleteAllVecByteStruct(const FDeleteAllVecByteStructArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneSimpleEnum; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_simple_enum"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecByteStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_byte_struct"); return Out; } - FORCEINLINE bool IsInsertOneSimpleEnum() const { return Tag == EReducerTag::InsertOneSimpleEnum; } - FORCEINLINE FInsertOneSimpleEnumArgs GetAsInsertOneSimpleEnum() const + FORCEINLINE bool IsDeleteAllVecByteStruct() const { return Tag == static_cast(EReducerTag::DeleteAllVecByteStruct); } + FORCEINLINE FDeleteAllVecByteStructArgs GetAsDeleteAllVecByteStruct() const { - ensureMsgf(IsInsertOneSimpleEnum(), TEXT("Reducer does not hold InsertOneSimpleEnum!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecByteStruct(), TEXT("Reducer does not hold DeleteAllVecByteStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecByteStruct!")); + return TypedData ? TypedData->Value : FDeleteAllVecByteStructArgs(); } - static FReducer InsertOneString(const FInsertOneStringArgs& Value) + static FReducer DeleteAllVecEnumWithPayload(const FDeleteAllVecEnumWithPayloadArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneString; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_string"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecEnumWithPayload); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_enum_with_payload"); return Out; } - FORCEINLINE bool IsInsertOneString() const { return Tag == EReducerTag::InsertOneString; } - FORCEINLINE FInsertOneStringArgs GetAsInsertOneString() const + FORCEINLINE bool IsDeleteAllVecEnumWithPayload() const { return Tag == static_cast(EReducerTag::DeleteAllVecEnumWithPayload); } + FORCEINLINE FDeleteAllVecEnumWithPayloadArgs GetAsDeleteAllVecEnumWithPayload() const { - ensureMsgf(IsInsertOneString(), TEXT("Reducer does not hold InsertOneString!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecEnumWithPayload(), TEXT("Reducer does not hold DeleteAllVecEnumWithPayload!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecEnumWithPayload!")); + return TypedData ? TypedData->Value : FDeleteAllVecEnumWithPayloadArgs(); } - static FReducer InsertOneTimestamp(const FInsertOneTimestampArgs& Value) + static FReducer DeleteAllVecEveryPrimitiveStruct(const FDeleteAllVecEveryPrimitiveStructArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneTimestamp; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_timestamp"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecEveryPrimitiveStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_every_primitive_struct"); return Out; } - FORCEINLINE bool IsInsertOneTimestamp() const { return Tag == EReducerTag::InsertOneTimestamp; } - FORCEINLINE FInsertOneTimestampArgs GetAsInsertOneTimestamp() const + FORCEINLINE bool IsDeleteAllVecEveryPrimitiveStruct() const { return Tag == static_cast(EReducerTag::DeleteAllVecEveryPrimitiveStruct); } + FORCEINLINE FDeleteAllVecEveryPrimitiveStructArgs GetAsDeleteAllVecEveryPrimitiveStruct() const { - ensureMsgf(IsInsertOneTimestamp(), TEXT("Reducer does not hold InsertOneTimestamp!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecEveryPrimitiveStruct(), TEXT("Reducer does not hold DeleteAllVecEveryPrimitiveStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecEveryPrimitiveStruct!")); + return TypedData ? TypedData->Value : FDeleteAllVecEveryPrimitiveStructArgs(); } - static FReducer InsertOneU128(const FInsertOneU128Args& Value) + static FReducer DeleteAllVecEveryVecStruct(const FDeleteAllVecEveryVecStructArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneU128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_u_128"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecEveryVecStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_every_vec_struct"); return Out; } - FORCEINLINE bool IsInsertOneU128() const { return Tag == EReducerTag::InsertOneU128; } - FORCEINLINE FInsertOneU128Args GetAsInsertOneU128() const + FORCEINLINE bool IsDeleteAllVecEveryVecStruct() const { return Tag == static_cast(EReducerTag::DeleteAllVecEveryVecStruct); } + FORCEINLINE FDeleteAllVecEveryVecStructArgs GetAsDeleteAllVecEveryVecStruct() const { - ensureMsgf(IsInsertOneU128(), TEXT("Reducer does not hold InsertOneU128!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecEveryVecStruct(), TEXT("Reducer does not hold DeleteAllVecEveryVecStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecEveryVecStruct!")); + return TypedData ? TypedData->Value : FDeleteAllVecEveryVecStructArgs(); } - static FReducer InsertOneU16(const FInsertOneU16Args& Value) + static FReducer DeleteAllVecF32(const FDeleteAllVecF32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneU16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_u_16"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecF32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_f_32"); return Out; } - FORCEINLINE bool IsInsertOneU16() const { return Tag == EReducerTag::InsertOneU16; } - FORCEINLINE FInsertOneU16Args GetAsInsertOneU16() const + FORCEINLINE bool IsDeleteAllVecF32() const { return Tag == static_cast(EReducerTag::DeleteAllVecF32); } + FORCEINLINE FDeleteAllVecF32Args GetAsDeleteAllVecF32() const { - ensureMsgf(IsInsertOneU16(), TEXT("Reducer does not hold InsertOneU16!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecF32(), TEXT("Reducer does not hold DeleteAllVecF32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecF32!")); + return TypedData ? TypedData->Value : FDeleteAllVecF32Args(); } - static FReducer InsertOneU256(const FInsertOneU256Args& Value) + static FReducer DeleteAllVecF64(const FDeleteAllVecF64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneU256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_u_256"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecF64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_f_64"); return Out; } - FORCEINLINE bool IsInsertOneU256() const { return Tag == EReducerTag::InsertOneU256; } - FORCEINLINE FInsertOneU256Args GetAsInsertOneU256() const + FORCEINLINE bool IsDeleteAllVecF64() const { return Tag == static_cast(EReducerTag::DeleteAllVecF64); } + FORCEINLINE FDeleteAllVecF64Args GetAsDeleteAllVecF64() const { - ensureMsgf(IsInsertOneU256(), TEXT("Reducer does not hold InsertOneU256!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecF64(), TEXT("Reducer does not hold DeleteAllVecF64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecF64!")); + return TypedData ? TypedData->Value : FDeleteAllVecF64Args(); } - static FReducer InsertOneU32(const FInsertOneU32Args& Value) + static FReducer DeleteAllVecI128(const FDeleteAllVecI128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneU32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_u_32"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecI128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_i_128"); return Out; } - FORCEINLINE bool IsInsertOneU32() const { return Tag == EReducerTag::InsertOneU32; } - FORCEINLINE FInsertOneU32Args GetAsInsertOneU32() const + FORCEINLINE bool IsDeleteAllVecI128() const { return Tag == static_cast(EReducerTag::DeleteAllVecI128); } + FORCEINLINE FDeleteAllVecI128Args GetAsDeleteAllVecI128() const { - ensureMsgf(IsInsertOneU32(), TEXT("Reducer does not hold InsertOneU32!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecI128(), TEXT("Reducer does not hold DeleteAllVecI128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecI128!")); + return TypedData ? TypedData->Value : FDeleteAllVecI128Args(); } - static FReducer InsertOneU64(const FInsertOneU64Args& Value) + static FReducer DeleteAllVecI16(const FDeleteAllVecI16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneU64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_u_64"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecI16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_i_16"); return Out; } - FORCEINLINE bool IsInsertOneU64() const { return Tag == EReducerTag::InsertOneU64; } - FORCEINLINE FInsertOneU64Args GetAsInsertOneU64() const + FORCEINLINE bool IsDeleteAllVecI16() const { return Tag == static_cast(EReducerTag::DeleteAllVecI16); } + FORCEINLINE FDeleteAllVecI16Args GetAsDeleteAllVecI16() const { - ensureMsgf(IsInsertOneU64(), TEXT("Reducer does not hold InsertOneU64!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecI16(), TEXT("Reducer does not hold DeleteAllVecI16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecI16!")); + return TypedData ? TypedData->Value : FDeleteAllVecI16Args(); } - static FReducer InsertOneU8(const FInsertOneU8Args& Value) + static FReducer DeleteAllVecI256(const FDeleteAllVecI256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneU8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_u_8"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecI256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_i_256"); return Out; } - FORCEINLINE bool IsInsertOneU8() const { return Tag == EReducerTag::InsertOneU8; } - FORCEINLINE FInsertOneU8Args GetAsInsertOneU8() const + FORCEINLINE bool IsDeleteAllVecI256() const { return Tag == static_cast(EReducerTag::DeleteAllVecI256); } + FORCEINLINE FDeleteAllVecI256Args GetAsDeleteAllVecI256() const { - ensureMsgf(IsInsertOneU8(), TEXT("Reducer does not hold InsertOneU8!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecI256(), TEXT("Reducer does not hold DeleteAllVecI256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecI256!")); + return TypedData ? TypedData->Value : FDeleteAllVecI256Args(); } - static FReducer InsertOneUnitStruct(const FInsertOneUnitStructArgs& Value) + static FReducer DeleteAllVecI32(const FDeleteAllVecI32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneUnitStruct; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_unit_struct"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_i_32"); return Out; } - FORCEINLINE bool IsInsertOneUnitStruct() const { return Tag == EReducerTag::InsertOneUnitStruct; } - FORCEINLINE FInsertOneUnitStructArgs GetAsInsertOneUnitStruct() const + FORCEINLINE bool IsDeleteAllVecI32() const { return Tag == static_cast(EReducerTag::DeleteAllVecI32); } + FORCEINLINE FDeleteAllVecI32Args GetAsDeleteAllVecI32() const { - ensureMsgf(IsInsertOneUnitStruct(), TEXT("Reducer does not hold InsertOneUnitStruct!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecI32(), TEXT("Reducer does not hold DeleteAllVecI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecI32!")); + return TypedData ? TypedData->Value : FDeleteAllVecI32Args(); } - static FReducer InsertOneUuid(const FInsertOneUuidArgs& Value) + static FReducer DeleteAllVecI64(const FDeleteAllVecI64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOneUuid; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_one_uuid"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecI64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_i_64"); return Out; } - FORCEINLINE bool IsInsertOneUuid() const { return Tag == EReducerTag::InsertOneUuid; } - FORCEINLINE FInsertOneUuidArgs GetAsInsertOneUuid() const + FORCEINLINE bool IsDeleteAllVecI64() const { return Tag == static_cast(EReducerTag::DeleteAllVecI64); } + FORCEINLINE FDeleteAllVecI64Args GetAsDeleteAllVecI64() const { - ensureMsgf(IsInsertOneUuid(), TEXT("Reducer does not hold InsertOneUuid!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecI64(), TEXT("Reducer does not hold DeleteAllVecI64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecI64!")); + return TypedData ? TypedData->Value : FDeleteAllVecI64Args(); } - static FReducer InsertOptionEveryPrimitiveStruct(const FInsertOptionEveryPrimitiveStructArgs& Value) + static FReducer DeleteAllVecI8(const FDeleteAllVecI8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOptionEveryPrimitiveStruct; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_option_every_primitive_struct"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecI8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_i_8"); return Out; } - FORCEINLINE bool IsInsertOptionEveryPrimitiveStruct() const { return Tag == EReducerTag::InsertOptionEveryPrimitiveStruct; } - FORCEINLINE FInsertOptionEveryPrimitiveStructArgs GetAsInsertOptionEveryPrimitiveStruct() const + FORCEINLINE bool IsDeleteAllVecI8() const { return Tag == static_cast(EReducerTag::DeleteAllVecI8); } + FORCEINLINE FDeleteAllVecI8Args GetAsDeleteAllVecI8() const { - ensureMsgf(IsInsertOptionEveryPrimitiveStruct(), TEXT("Reducer does not hold InsertOptionEveryPrimitiveStruct!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecI8(), TEXT("Reducer does not hold DeleteAllVecI8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecI8!")); + return TypedData ? TypedData->Value : FDeleteAllVecI8Args(); } - static FReducer InsertOptionI32(const FInsertOptionI32Args& Value) + static FReducer DeleteAllVecIdentity(const FDeleteAllVecIdentityArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOptionI32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_option_i_32"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_identity"); return Out; } - FORCEINLINE bool IsInsertOptionI32() const { return Tag == EReducerTag::InsertOptionI32; } - FORCEINLINE FInsertOptionI32Args GetAsInsertOptionI32() const + FORCEINLINE bool IsDeleteAllVecIdentity() const { return Tag == static_cast(EReducerTag::DeleteAllVecIdentity); } + FORCEINLINE FDeleteAllVecIdentityArgs GetAsDeleteAllVecIdentity() const { - ensureMsgf(IsInsertOptionI32(), TEXT("Reducer does not hold InsertOptionI32!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecIdentity(), TEXT("Reducer does not hold DeleteAllVecIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecIdentity!")); + return TypedData ? TypedData->Value : FDeleteAllVecIdentityArgs(); } - static FReducer InsertOptionIdentity(const FInsertOptionIdentityArgs& Value) + static FReducer DeleteAllVecSimpleEnum(const FDeleteAllVecSimpleEnumArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOptionIdentity; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_option_identity"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecSimpleEnum); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_simple_enum"); return Out; } - FORCEINLINE bool IsInsertOptionIdentity() const { return Tag == EReducerTag::InsertOptionIdentity; } - FORCEINLINE FInsertOptionIdentityArgs GetAsInsertOptionIdentity() const + FORCEINLINE bool IsDeleteAllVecSimpleEnum() const { return Tag == static_cast(EReducerTag::DeleteAllVecSimpleEnum); } + FORCEINLINE FDeleteAllVecSimpleEnumArgs GetAsDeleteAllVecSimpleEnum() const { - ensureMsgf(IsInsertOptionIdentity(), TEXT("Reducer does not hold InsertOptionIdentity!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecSimpleEnum(), TEXT("Reducer does not hold DeleteAllVecSimpleEnum!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecSimpleEnum!")); + return TypedData ? TypedData->Value : FDeleteAllVecSimpleEnumArgs(); } - static FReducer InsertOptionSimpleEnum(const FInsertOptionSimpleEnumArgs& Value) + static FReducer DeleteAllVecString(const FDeleteAllVecStringArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOptionSimpleEnum; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_option_simple_enum"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_string"); return Out; } - FORCEINLINE bool IsInsertOptionSimpleEnum() const { return Tag == EReducerTag::InsertOptionSimpleEnum; } - FORCEINLINE FInsertOptionSimpleEnumArgs GetAsInsertOptionSimpleEnum() const + FORCEINLINE bool IsDeleteAllVecString() const { return Tag == static_cast(EReducerTag::DeleteAllVecString); } + FORCEINLINE FDeleteAllVecStringArgs GetAsDeleteAllVecString() const { - ensureMsgf(IsInsertOptionSimpleEnum(), TEXT("Reducer does not hold InsertOptionSimpleEnum!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecString(), TEXT("Reducer does not hold DeleteAllVecString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecString!")); + return TypedData ? TypedData->Value : FDeleteAllVecStringArgs(); } - static FReducer InsertOptionString(const FInsertOptionStringArgs& Value) + static FReducer DeleteAllVecTimestamp(const FDeleteAllVecTimestampArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOptionString; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_option_string"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecTimestamp); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_timestamp"); return Out; } - FORCEINLINE bool IsInsertOptionString() const { return Tag == EReducerTag::InsertOptionString; } - FORCEINLINE FInsertOptionStringArgs GetAsInsertOptionString() const + FORCEINLINE bool IsDeleteAllVecTimestamp() const { return Tag == static_cast(EReducerTag::DeleteAllVecTimestamp); } + FORCEINLINE FDeleteAllVecTimestampArgs GetAsDeleteAllVecTimestamp() const { - ensureMsgf(IsInsertOptionString(), TEXT("Reducer does not hold InsertOptionString!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecTimestamp(), TEXT("Reducer does not hold DeleteAllVecTimestamp!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecTimestamp!")); + return TypedData ? TypedData->Value : FDeleteAllVecTimestampArgs(); } - static FReducer InsertOptionUuid(const FInsertOptionUuidArgs& Value) + static FReducer DeleteAllVecU128(const FDeleteAllVecU128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOptionUuid; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_option_uuid"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecU128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_u_128"); return Out; } - FORCEINLINE bool IsInsertOptionUuid() const { return Tag == EReducerTag::InsertOptionUuid; } - FORCEINLINE FInsertOptionUuidArgs GetAsInsertOptionUuid() const + FORCEINLINE bool IsDeleteAllVecU128() const { return Tag == static_cast(EReducerTag::DeleteAllVecU128); } + FORCEINLINE FDeleteAllVecU128Args GetAsDeleteAllVecU128() const { - ensureMsgf(IsInsertOptionUuid(), TEXT("Reducer does not hold InsertOptionUuid!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecU128(), TEXT("Reducer does not hold DeleteAllVecU128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecU128!")); + return TypedData ? TypedData->Value : FDeleteAllVecU128Args(); } - static FReducer InsertOptionVecOptionI32(const FInsertOptionVecOptionI32Args& Value) + static FReducer DeleteAllVecU16(const FDeleteAllVecU16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertOptionVecOptionI32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_option_vec_option_i_32"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecU16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_u_16"); return Out; } - FORCEINLINE bool IsInsertOptionVecOptionI32() const { return Tag == EReducerTag::InsertOptionVecOptionI32; } - FORCEINLINE FInsertOptionVecOptionI32Args GetAsInsertOptionVecOptionI32() const + FORCEINLINE bool IsDeleteAllVecU16() const { return Tag == static_cast(EReducerTag::DeleteAllVecU16); } + FORCEINLINE FDeleteAllVecU16Args GetAsDeleteAllVecU16() const { - ensureMsgf(IsInsertOptionVecOptionI32(), TEXT("Reducer does not hold InsertOptionVecOptionI32!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecU16(), TEXT("Reducer does not hold DeleteAllVecU16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecU16!")); + return TypedData ? TypedData->Value : FDeleteAllVecU16Args(); } - static FReducer InsertPkBool(const FInsertPkBoolArgs& Value) + static FReducer DeleteAllVecU256(const FDeleteAllVecU256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkBool; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_bool"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecU256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_u_256"); return Out; } - FORCEINLINE bool IsInsertPkBool() const { return Tag == EReducerTag::InsertPkBool; } - FORCEINLINE FInsertPkBoolArgs GetAsInsertPkBool() const + FORCEINLINE bool IsDeleteAllVecU256() const { return Tag == static_cast(EReducerTag::DeleteAllVecU256); } + FORCEINLINE FDeleteAllVecU256Args GetAsDeleteAllVecU256() const { - ensureMsgf(IsInsertPkBool(), TEXT("Reducer does not hold InsertPkBool!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecU256(), TEXT("Reducer does not hold DeleteAllVecU256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecU256!")); + return TypedData ? TypedData->Value : FDeleteAllVecU256Args(); } - static FReducer InsertPkConnectionId(const FInsertPkConnectionIdArgs& Value) + static FReducer DeleteAllVecU32(const FDeleteAllVecU32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkConnectionId; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_connection_id"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_u_32"); return Out; } - FORCEINLINE bool IsInsertPkConnectionId() const { return Tag == EReducerTag::InsertPkConnectionId; } - FORCEINLINE FInsertPkConnectionIdArgs GetAsInsertPkConnectionId() const + FORCEINLINE bool IsDeleteAllVecU32() const { return Tag == static_cast(EReducerTag::DeleteAllVecU32); } + FORCEINLINE FDeleteAllVecU32Args GetAsDeleteAllVecU32() const { - ensureMsgf(IsInsertPkConnectionId(), TEXT("Reducer does not hold InsertPkConnectionId!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecU32(), TEXT("Reducer does not hold DeleteAllVecU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecU32!")); + return TypedData ? TypedData->Value : FDeleteAllVecU32Args(); } - static FReducer InsertPkI128(const FInsertPkI128Args& Value) + static FReducer DeleteAllVecU64(const FDeleteAllVecU64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkI128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_i_128"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecU64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_u_64"); return Out; } - FORCEINLINE bool IsInsertPkI128() const { return Tag == EReducerTag::InsertPkI128; } - FORCEINLINE FInsertPkI128Args GetAsInsertPkI128() const + FORCEINLINE bool IsDeleteAllVecU64() const { return Tag == static_cast(EReducerTag::DeleteAllVecU64); } + FORCEINLINE FDeleteAllVecU64Args GetAsDeleteAllVecU64() const { - ensureMsgf(IsInsertPkI128(), TEXT("Reducer does not hold InsertPkI128!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecU64(), TEXT("Reducer does not hold DeleteAllVecU64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecU64!")); + return TypedData ? TypedData->Value : FDeleteAllVecU64Args(); } - static FReducer InsertPkI16(const FInsertPkI16Args& Value) + static FReducer DeleteAllVecU8(const FDeleteAllVecU8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkI16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_i_16"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecU8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_u_8"); return Out; } - FORCEINLINE bool IsInsertPkI16() const { return Tag == EReducerTag::InsertPkI16; } - FORCEINLINE FInsertPkI16Args GetAsInsertPkI16() const + FORCEINLINE bool IsDeleteAllVecU8() const { return Tag == static_cast(EReducerTag::DeleteAllVecU8); } + FORCEINLINE FDeleteAllVecU8Args GetAsDeleteAllVecU8() const { - ensureMsgf(IsInsertPkI16(), TEXT("Reducer does not hold InsertPkI16!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecU8(), TEXT("Reducer does not hold DeleteAllVecU8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecU8!")); + return TypedData ? TypedData->Value : FDeleteAllVecU8Args(); } - static FReducer InsertPkI256(const FInsertPkI256Args& Value) + static FReducer DeleteAllVecUnitStruct(const FDeleteAllVecUnitStructArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkI256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_i_256"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecUnitStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_unit_struct"); return Out; } - FORCEINLINE bool IsInsertPkI256() const { return Tag == EReducerTag::InsertPkI256; } - FORCEINLINE FInsertPkI256Args GetAsInsertPkI256() const + FORCEINLINE bool IsDeleteAllVecUnitStruct() const { return Tag == static_cast(EReducerTag::DeleteAllVecUnitStruct); } + FORCEINLINE FDeleteAllVecUnitStructArgs GetAsDeleteAllVecUnitStruct() const { - ensureMsgf(IsInsertPkI256(), TEXT("Reducer does not hold InsertPkI256!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecUnitStruct(), TEXT("Reducer does not hold DeleteAllVecUnitStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecUnitStruct!")); + return TypedData ? TypedData->Value : FDeleteAllVecUnitStructArgs(); } - static FReducer InsertPkI32(const FInsertPkI32Args& Value) + static FReducer DeleteAllVecUuid(const FDeleteAllVecUuidArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkI32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_i_32"); + Out.Tag = static_cast(EReducerTag::DeleteAllVecUuid); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_all_vec_uuid"); return Out; } - FORCEINLINE bool IsInsertPkI32() const { return Tag == EReducerTag::InsertPkI32; } - FORCEINLINE FInsertPkI32Args GetAsInsertPkI32() const + FORCEINLINE bool IsDeleteAllVecUuid() const { return Tag == static_cast(EReducerTag::DeleteAllVecUuid); } + FORCEINLINE FDeleteAllVecUuidArgs GetAsDeleteAllVecUuid() const { - ensureMsgf(IsInsertPkI32(), TEXT("Reducer does not hold InsertPkI32!")); - return Data.Get(); + ensureMsgf(IsDeleteAllVecUuid(), TEXT("Reducer does not hold DeleteAllVecUuid!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteAllVecUuid!")); + return TypedData ? TypedData->Value : FDeleteAllVecUuidArgs(); } - static FReducer InsertPkI64(const FInsertPkI64Args& Value) + static FReducer DeleteFromBtreeU32(const FDeleteFromBtreeU32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkI64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_i_64"); + Out.Tag = static_cast(EReducerTag::DeleteFromBtreeU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_from_btree_u_32"); return Out; } - FORCEINLINE bool IsInsertPkI64() const { return Tag == EReducerTag::InsertPkI64; } - FORCEINLINE FInsertPkI64Args GetAsInsertPkI64() const + FORCEINLINE bool IsDeleteFromBtreeU32() const { return Tag == static_cast(EReducerTag::DeleteFromBtreeU32); } + FORCEINLINE FDeleteFromBtreeU32Args GetAsDeleteFromBtreeU32() const { - ensureMsgf(IsInsertPkI64(), TEXT("Reducer does not hold InsertPkI64!")); - return Data.Get(); + ensureMsgf(IsDeleteFromBtreeU32(), TEXT("Reducer does not hold DeleteFromBtreeU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteFromBtreeU32!")); + return TypedData ? TypedData->Value : FDeleteFromBtreeU32Args(); } - static FReducer InsertPkI8(const FInsertPkI8Args& Value) + static FReducer DeleteLargeTable(const FDeleteLargeTableArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkI8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_i_8"); + Out.Tag = static_cast(EReducerTag::DeleteLargeTable); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_large_table"); return Out; } - FORCEINLINE bool IsInsertPkI8() const { return Tag == EReducerTag::InsertPkI8; } - FORCEINLINE FInsertPkI8Args GetAsInsertPkI8() const + FORCEINLINE bool IsDeleteLargeTable() const { return Tag == static_cast(EReducerTag::DeleteLargeTable); } + FORCEINLINE FDeleteLargeTableArgs GetAsDeleteLargeTable() const { - ensureMsgf(IsInsertPkI8(), TEXT("Reducer does not hold InsertPkI8!")); - return Data.Get(); + ensureMsgf(IsDeleteLargeTable(), TEXT("Reducer does not hold DeleteLargeTable!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteLargeTable!")); + return TypedData ? TypedData->Value : FDeleteLargeTableArgs(); } - static FReducer InsertPkIdentity(const FInsertPkIdentityArgs& Value) + static FReducer DeletePkBool(const FDeletePkBoolArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkIdentity; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_identity"); + Out.Tag = static_cast(EReducerTag::DeletePkBool); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_bool"); return Out; } - FORCEINLINE bool IsInsertPkIdentity() const { return Tag == EReducerTag::InsertPkIdentity; } - FORCEINLINE FInsertPkIdentityArgs GetAsInsertPkIdentity() const + FORCEINLINE bool IsDeletePkBool() const { return Tag == static_cast(EReducerTag::DeletePkBool); } + FORCEINLINE FDeletePkBoolArgs GetAsDeletePkBool() const { - ensureMsgf(IsInsertPkIdentity(), TEXT("Reducer does not hold InsertPkIdentity!")); - return Data.Get(); + ensureMsgf(IsDeletePkBool(), TEXT("Reducer does not hold DeletePkBool!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkBool!")); + return TypedData ? TypedData->Value : FDeletePkBoolArgs(); } - static FReducer InsertPkSimpleEnum(const FInsertPkSimpleEnumArgs& Value) + static FReducer DeletePkConnectionId(const FDeletePkConnectionIdArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkSimpleEnum; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_simple_enum"); + Out.Tag = static_cast(EReducerTag::DeletePkConnectionId); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_connection_id"); return Out; } - FORCEINLINE bool IsInsertPkSimpleEnum() const { return Tag == EReducerTag::InsertPkSimpleEnum; } - FORCEINLINE FInsertPkSimpleEnumArgs GetAsInsertPkSimpleEnum() const + FORCEINLINE bool IsDeletePkConnectionId() const { return Tag == static_cast(EReducerTag::DeletePkConnectionId); } + FORCEINLINE FDeletePkConnectionIdArgs GetAsDeletePkConnectionId() const { - ensureMsgf(IsInsertPkSimpleEnum(), TEXT("Reducer does not hold InsertPkSimpleEnum!")); - return Data.Get(); + ensureMsgf(IsDeletePkConnectionId(), TEXT("Reducer does not hold DeletePkConnectionId!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkConnectionId!")); + return TypedData ? TypedData->Value : FDeletePkConnectionIdArgs(); } - static FReducer InsertPkString(const FInsertPkStringArgs& Value) + static FReducer DeletePkI128(const FDeletePkI128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkString; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_string"); + Out.Tag = static_cast(EReducerTag::DeletePkI128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_i_128"); return Out; } - FORCEINLINE bool IsInsertPkString() const { return Tag == EReducerTag::InsertPkString; } - FORCEINLINE FInsertPkStringArgs GetAsInsertPkString() const + FORCEINLINE bool IsDeletePkI128() const { return Tag == static_cast(EReducerTag::DeletePkI128); } + FORCEINLINE FDeletePkI128Args GetAsDeletePkI128() const { - ensureMsgf(IsInsertPkString(), TEXT("Reducer does not hold InsertPkString!")); - return Data.Get(); + ensureMsgf(IsDeletePkI128(), TEXT("Reducer does not hold DeletePkI128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkI128!")); + return TypedData ? TypedData->Value : FDeletePkI128Args(); } - static FReducer InsertPkU128(const FInsertPkU128Args& Value) + static FReducer DeletePkI16(const FDeletePkI16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkU128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_u_128"); + Out.Tag = static_cast(EReducerTag::DeletePkI16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_i_16"); return Out; } - FORCEINLINE bool IsInsertPkU128() const { return Tag == EReducerTag::InsertPkU128; } - FORCEINLINE FInsertPkU128Args GetAsInsertPkU128() const + FORCEINLINE bool IsDeletePkI16() const { return Tag == static_cast(EReducerTag::DeletePkI16); } + FORCEINLINE FDeletePkI16Args GetAsDeletePkI16() const { - ensureMsgf(IsInsertPkU128(), TEXT("Reducer does not hold InsertPkU128!")); - return Data.Get(); + ensureMsgf(IsDeletePkI16(), TEXT("Reducer does not hold DeletePkI16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkI16!")); + return TypedData ? TypedData->Value : FDeletePkI16Args(); } - static FReducer InsertPkU16(const FInsertPkU16Args& Value) + static FReducer DeletePkI256(const FDeletePkI256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkU16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_u_16"); + Out.Tag = static_cast(EReducerTag::DeletePkI256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_i_256"); return Out; } - FORCEINLINE bool IsInsertPkU16() const { return Tag == EReducerTag::InsertPkU16; } - FORCEINLINE FInsertPkU16Args GetAsInsertPkU16() const + FORCEINLINE bool IsDeletePkI256() const { return Tag == static_cast(EReducerTag::DeletePkI256); } + FORCEINLINE FDeletePkI256Args GetAsDeletePkI256() const { - ensureMsgf(IsInsertPkU16(), TEXT("Reducer does not hold InsertPkU16!")); - return Data.Get(); + ensureMsgf(IsDeletePkI256(), TEXT("Reducer does not hold DeletePkI256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkI256!")); + return TypedData ? TypedData->Value : FDeletePkI256Args(); } - static FReducer InsertPkU256(const FInsertPkU256Args& Value) + static FReducer DeletePkI32(const FDeletePkI32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkU256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_u_256"); + Out.Tag = static_cast(EReducerTag::DeletePkI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_i_32"); return Out; } - FORCEINLINE bool IsInsertPkU256() const { return Tag == EReducerTag::InsertPkU256; } - FORCEINLINE FInsertPkU256Args GetAsInsertPkU256() const + FORCEINLINE bool IsDeletePkI32() const { return Tag == static_cast(EReducerTag::DeletePkI32); } + FORCEINLINE FDeletePkI32Args GetAsDeletePkI32() const { - ensureMsgf(IsInsertPkU256(), TEXT("Reducer does not hold InsertPkU256!")); - return Data.Get(); + ensureMsgf(IsDeletePkI32(), TEXT("Reducer does not hold DeletePkI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkI32!")); + return TypedData ? TypedData->Value : FDeletePkI32Args(); } - static FReducer InsertPkU32(const FInsertPkU32Args& Value) + static FReducer DeletePkI64(const FDeletePkI64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkU32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_u_32"); + Out.Tag = static_cast(EReducerTag::DeletePkI64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_i_64"); return Out; } - FORCEINLINE bool IsInsertPkU32() const { return Tag == EReducerTag::InsertPkU32; } - FORCEINLINE FInsertPkU32Args GetAsInsertPkU32() const + FORCEINLINE bool IsDeletePkI64() const { return Tag == static_cast(EReducerTag::DeletePkI64); } + FORCEINLINE FDeletePkI64Args GetAsDeletePkI64() const { - ensureMsgf(IsInsertPkU32(), TEXT("Reducer does not hold InsertPkU32!")); - return Data.Get(); + ensureMsgf(IsDeletePkI64(), TEXT("Reducer does not hold DeletePkI64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkI64!")); + return TypedData ? TypedData->Value : FDeletePkI64Args(); } - static FReducer InsertPkU32Two(const FInsertPkU32TwoArgs& Value) + static FReducer DeletePkI8(const FDeletePkI8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkU32Two; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_u_32_two"); + Out.Tag = static_cast(EReducerTag::DeletePkI8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_i_8"); return Out; } - FORCEINLINE bool IsInsertPkU32Two() const { return Tag == EReducerTag::InsertPkU32Two; } - FORCEINLINE FInsertPkU32TwoArgs GetAsInsertPkU32Two() const + FORCEINLINE bool IsDeletePkI8() const { return Tag == static_cast(EReducerTag::DeletePkI8); } + FORCEINLINE FDeletePkI8Args GetAsDeletePkI8() const { - ensureMsgf(IsInsertPkU32Two(), TEXT("Reducer does not hold InsertPkU32Two!")); - return Data.Get(); + ensureMsgf(IsDeletePkI8(), TEXT("Reducer does not hold DeletePkI8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkI8!")); + return TypedData ? TypedData->Value : FDeletePkI8Args(); } - static FReducer InsertPkU64(const FInsertPkU64Args& Value) + static FReducer DeletePkIdentity(const FDeletePkIdentityArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkU64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_u_64"); + Out.Tag = static_cast(EReducerTag::DeletePkIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_identity"); return Out; } - FORCEINLINE bool IsInsertPkU64() const { return Tag == EReducerTag::InsertPkU64; } - FORCEINLINE FInsertPkU64Args GetAsInsertPkU64() const + FORCEINLINE bool IsDeletePkIdentity() const { return Tag == static_cast(EReducerTag::DeletePkIdentity); } + FORCEINLINE FDeletePkIdentityArgs GetAsDeletePkIdentity() const { - ensureMsgf(IsInsertPkU64(), TEXT("Reducer does not hold InsertPkU64!")); - return Data.Get(); + ensureMsgf(IsDeletePkIdentity(), TEXT("Reducer does not hold DeletePkIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkIdentity!")); + return TypedData ? TypedData->Value : FDeletePkIdentityArgs(); } - static FReducer InsertPkU8(const FInsertPkU8Args& Value) + static FReducer DeletePkString(const FDeletePkStringArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkU8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_u_8"); + Out.Tag = static_cast(EReducerTag::DeletePkString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_string"); return Out; } - FORCEINLINE bool IsInsertPkU8() const { return Tag == EReducerTag::InsertPkU8; } - FORCEINLINE FInsertPkU8Args GetAsInsertPkU8() const + FORCEINLINE bool IsDeletePkString() const { return Tag == static_cast(EReducerTag::DeletePkString); } + FORCEINLINE FDeletePkStringArgs GetAsDeletePkString() const { - ensureMsgf(IsInsertPkU8(), TEXT("Reducer does not hold InsertPkU8!")); - return Data.Get(); + ensureMsgf(IsDeletePkString(), TEXT("Reducer does not hold DeletePkString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkString!")); + return TypedData ? TypedData->Value : FDeletePkStringArgs(); } - static FReducer InsertPkUuid(const FInsertPkUuidArgs& Value) + static FReducer DeletePkU128(const FDeletePkU128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPkUuid; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_pk_uuid"); + Out.Tag = static_cast(EReducerTag::DeletePkU128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_u_128"); return Out; } - FORCEINLINE bool IsInsertPkUuid() const { return Tag == EReducerTag::InsertPkUuid; } - FORCEINLINE FInsertPkUuidArgs GetAsInsertPkUuid() const + FORCEINLINE bool IsDeletePkU128() const { return Tag == static_cast(EReducerTag::DeletePkU128); } + FORCEINLINE FDeletePkU128Args GetAsDeletePkU128() const { - ensureMsgf(IsInsertPkUuid(), TEXT("Reducer does not hold InsertPkUuid!")); - return Data.Get(); + ensureMsgf(IsDeletePkU128(), TEXT("Reducer does not hold DeletePkU128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkU128!")); + return TypedData ? TypedData->Value : FDeletePkU128Args(); } - static FReducer InsertPrimitivesAsStrings(const FInsertPrimitivesAsStringsArgs& Value) + static FReducer DeletePkU16(const FDeletePkU16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertPrimitivesAsStrings; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_primitives_as_strings"); + Out.Tag = static_cast(EReducerTag::DeletePkU16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_u_16"); return Out; } - FORCEINLINE bool IsInsertPrimitivesAsStrings() const { return Tag == EReducerTag::InsertPrimitivesAsStrings; } - FORCEINLINE FInsertPrimitivesAsStringsArgs GetAsInsertPrimitivesAsStrings() const + FORCEINLINE bool IsDeletePkU16() const { return Tag == static_cast(EReducerTag::DeletePkU16); } + FORCEINLINE FDeletePkU16Args GetAsDeletePkU16() const { - ensureMsgf(IsInsertPrimitivesAsStrings(), TEXT("Reducer does not hold InsertPrimitivesAsStrings!")); - return Data.Get(); + ensureMsgf(IsDeletePkU16(), TEXT("Reducer does not hold DeletePkU16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkU16!")); + return TypedData ? TypedData->Value : FDeletePkU16Args(); } - static FReducer InsertResultEveryPrimitiveStructString(const FInsertResultEveryPrimitiveStructStringArgs& Value) + static FReducer DeletePkU256(const FDeletePkU256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertResultEveryPrimitiveStructString; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_result_every_primitive_struct_string"); + Out.Tag = static_cast(EReducerTag::DeletePkU256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_u_256"); return Out; } - FORCEINLINE bool IsInsertResultEveryPrimitiveStructString() const { return Tag == EReducerTag::InsertResultEveryPrimitiveStructString; } - FORCEINLINE FInsertResultEveryPrimitiveStructStringArgs GetAsInsertResultEveryPrimitiveStructString() const + FORCEINLINE bool IsDeletePkU256() const { return Tag == static_cast(EReducerTag::DeletePkU256); } + FORCEINLINE FDeletePkU256Args GetAsDeletePkU256() const { - ensureMsgf(IsInsertResultEveryPrimitiveStructString(), TEXT("Reducer does not hold InsertResultEveryPrimitiveStructString!")); - return Data.Get(); + ensureMsgf(IsDeletePkU256(), TEXT("Reducer does not hold DeletePkU256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkU256!")); + return TypedData ? TypedData->Value : FDeletePkU256Args(); } - static FReducer InsertResultI32String(const FInsertResultI32StringArgs& Value) + static FReducer DeletePkU32(const FDeletePkU32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertResultI32String; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_result_i_32_string"); + Out.Tag = static_cast(EReducerTag::DeletePkU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_u_32"); return Out; } - FORCEINLINE bool IsInsertResultI32String() const { return Tag == EReducerTag::InsertResultI32String; } - FORCEINLINE FInsertResultI32StringArgs GetAsInsertResultI32String() const + FORCEINLINE bool IsDeletePkU32() const { return Tag == static_cast(EReducerTag::DeletePkU32); } + FORCEINLINE FDeletePkU32Args GetAsDeletePkU32() const { - ensureMsgf(IsInsertResultI32String(), TEXT("Reducer does not hold InsertResultI32String!")); - return Data.Get(); + ensureMsgf(IsDeletePkU32(), TEXT("Reducer does not hold DeletePkU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkU32!")); + return TypedData ? TypedData->Value : FDeletePkU32Args(); } - static FReducer InsertResultIdentityString(const FInsertResultIdentityStringArgs& Value) + static FReducer DeletePkU32InsertPkU32Two(const FDeletePkU32InsertPkU32TwoArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertResultIdentityString; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_result_identity_string"); + Out.Tag = static_cast(EReducerTag::DeletePkU32InsertPkU32Two); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_u_32_insert_pk_u_32_two"); return Out; } - FORCEINLINE bool IsInsertResultIdentityString() const { return Tag == EReducerTag::InsertResultIdentityString; } - FORCEINLINE FInsertResultIdentityStringArgs GetAsInsertResultIdentityString() const + FORCEINLINE bool IsDeletePkU32InsertPkU32Two() const { return Tag == static_cast(EReducerTag::DeletePkU32InsertPkU32Two); } + FORCEINLINE FDeletePkU32InsertPkU32TwoArgs GetAsDeletePkU32InsertPkU32Two() const { - ensureMsgf(IsInsertResultIdentityString(), TEXT("Reducer does not hold InsertResultIdentityString!")); - return Data.Get(); + ensureMsgf(IsDeletePkU32InsertPkU32Two(), TEXT("Reducer does not hold DeletePkU32InsertPkU32Two!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkU32InsertPkU32Two!")); + return TypedData ? TypedData->Value : FDeletePkU32InsertPkU32TwoArgs(); } - static FReducer InsertResultSimpleEnumI32(const FInsertResultSimpleEnumI32Args& Value) + static FReducer DeletePkU32Two(const FDeletePkU32TwoArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertResultSimpleEnumI32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_result_simple_enum_i_32"); + Out.Tag = static_cast(EReducerTag::DeletePkU32Two); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_u_32_two"); return Out; } - FORCEINLINE bool IsInsertResultSimpleEnumI32() const { return Tag == EReducerTag::InsertResultSimpleEnumI32; } - FORCEINLINE FInsertResultSimpleEnumI32Args GetAsInsertResultSimpleEnumI32() const + FORCEINLINE bool IsDeletePkU32Two() const { return Tag == static_cast(EReducerTag::DeletePkU32Two); } + FORCEINLINE FDeletePkU32TwoArgs GetAsDeletePkU32Two() const { - ensureMsgf(IsInsertResultSimpleEnumI32(), TEXT("Reducer does not hold InsertResultSimpleEnumI32!")); - return Data.Get(); + ensureMsgf(IsDeletePkU32Two(), TEXT("Reducer does not hold DeletePkU32Two!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkU32Two!")); + return TypedData ? TypedData->Value : FDeletePkU32TwoArgs(); } - static FReducer InsertResultStringI32(const FInsertResultStringI32Args& Value) + static FReducer DeletePkU64(const FDeletePkU64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertResultStringI32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_result_string_i_32"); + Out.Tag = static_cast(EReducerTag::DeletePkU64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_u_64"); return Out; } - FORCEINLINE bool IsInsertResultStringI32() const { return Tag == EReducerTag::InsertResultStringI32; } - FORCEINLINE FInsertResultStringI32Args GetAsInsertResultStringI32() const + FORCEINLINE bool IsDeletePkU64() const { return Tag == static_cast(EReducerTag::DeletePkU64); } + FORCEINLINE FDeletePkU64Args GetAsDeletePkU64() const { - ensureMsgf(IsInsertResultStringI32(), TEXT("Reducer does not hold InsertResultStringI32!")); - return Data.Get(); + ensureMsgf(IsDeletePkU64(), TEXT("Reducer does not hold DeletePkU64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkU64!")); + return TypedData ? TypedData->Value : FDeletePkU64Args(); } - static FReducer InsertResultVecI32String(const FInsertResultVecI32StringArgs& Value) + static FReducer DeletePkU8(const FDeletePkU8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertResultVecI32String; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_result_vec_i_32_string"); + Out.Tag = static_cast(EReducerTag::DeletePkU8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_u_8"); return Out; } - FORCEINLINE bool IsInsertResultVecI32String() const { return Tag == EReducerTag::InsertResultVecI32String; } - FORCEINLINE FInsertResultVecI32StringArgs GetAsInsertResultVecI32String() const + FORCEINLINE bool IsDeletePkU8() const { return Tag == static_cast(EReducerTag::DeletePkU8); } + FORCEINLINE FDeletePkU8Args GetAsDeletePkU8() const { - ensureMsgf(IsInsertResultVecI32String(), TEXT("Reducer does not hold InsertResultVecI32String!")); - return Data.Get(); + ensureMsgf(IsDeletePkU8(), TEXT("Reducer does not hold DeletePkU8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkU8!")); + return TypedData ? TypedData->Value : FDeletePkU8Args(); } - static FReducer InsertTableHoldsTable(const FInsertTableHoldsTableArgs& Value) + static FReducer DeletePkUuid(const FDeletePkUuidArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertTableHoldsTable; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_table_holds_table"); + Out.Tag = static_cast(EReducerTag::DeletePkUuid); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_pk_uuid"); return Out; } - FORCEINLINE bool IsInsertTableHoldsTable() const { return Tag == EReducerTag::InsertTableHoldsTable; } - FORCEINLINE FInsertTableHoldsTableArgs GetAsInsertTableHoldsTable() const + FORCEINLINE bool IsDeletePkUuid() const { return Tag == static_cast(EReducerTag::DeletePkUuid); } + FORCEINLINE FDeletePkUuidArgs GetAsDeletePkUuid() const { - ensureMsgf(IsInsertTableHoldsTable(), TEXT("Reducer does not hold InsertTableHoldsTable!")); - return Data.Get(); + ensureMsgf(IsDeletePkUuid(), TEXT("Reducer does not hold DeletePkUuid!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeletePkUuid!")); + return TypedData ? TypedData->Value : FDeletePkUuidArgs(); } - static FReducer InsertUniqueBool(const FInsertUniqueBoolArgs& Value) + static FReducer DeleteUniqueBool(const FDeleteUniqueBoolArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueBool; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_bool"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueBool); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_bool"); return Out; } - FORCEINLINE bool IsInsertUniqueBool() const { return Tag == EReducerTag::InsertUniqueBool; } - FORCEINLINE FInsertUniqueBoolArgs GetAsInsertUniqueBool() const + FORCEINLINE bool IsDeleteUniqueBool() const { return Tag == static_cast(EReducerTag::DeleteUniqueBool); } + FORCEINLINE FDeleteUniqueBoolArgs GetAsDeleteUniqueBool() const { - ensureMsgf(IsInsertUniqueBool(), TEXT("Reducer does not hold InsertUniqueBool!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueBool(), TEXT("Reducer does not hold DeleteUniqueBool!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueBool!")); + return TypedData ? TypedData->Value : FDeleteUniqueBoolArgs(); } - static FReducer InsertUniqueConnectionId(const FInsertUniqueConnectionIdArgs& Value) + static FReducer DeleteUniqueConnectionId(const FDeleteUniqueConnectionIdArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueConnectionId; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_connection_id"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueConnectionId); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_connection_id"); return Out; } - FORCEINLINE bool IsInsertUniqueConnectionId() const { return Tag == EReducerTag::InsertUniqueConnectionId; } - FORCEINLINE FInsertUniqueConnectionIdArgs GetAsInsertUniqueConnectionId() const + FORCEINLINE bool IsDeleteUniqueConnectionId() const { return Tag == static_cast(EReducerTag::DeleteUniqueConnectionId); } + FORCEINLINE FDeleteUniqueConnectionIdArgs GetAsDeleteUniqueConnectionId() const { - ensureMsgf(IsInsertUniqueConnectionId(), TEXT("Reducer does not hold InsertUniqueConnectionId!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueConnectionId(), TEXT("Reducer does not hold DeleteUniqueConnectionId!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueConnectionId!")); + return TypedData ? TypedData->Value : FDeleteUniqueConnectionIdArgs(); } - static FReducer InsertUniqueI128(const FInsertUniqueI128Args& Value) + static FReducer DeleteUniqueI128(const FDeleteUniqueI128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueI128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_i_128"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueI128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_i_128"); return Out; } - FORCEINLINE bool IsInsertUniqueI128() const { return Tag == EReducerTag::InsertUniqueI128; } - FORCEINLINE FInsertUniqueI128Args GetAsInsertUniqueI128() const + FORCEINLINE bool IsDeleteUniqueI128() const { return Tag == static_cast(EReducerTag::DeleteUniqueI128); } + FORCEINLINE FDeleteUniqueI128Args GetAsDeleteUniqueI128() const { - ensureMsgf(IsInsertUniqueI128(), TEXT("Reducer does not hold InsertUniqueI128!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueI128(), TEXT("Reducer does not hold DeleteUniqueI128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueI128!")); + return TypedData ? TypedData->Value : FDeleteUniqueI128Args(); } - static FReducer InsertUniqueI16(const FInsertUniqueI16Args& Value) + static FReducer DeleteUniqueI16(const FDeleteUniqueI16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueI16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_i_16"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueI16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_i_16"); return Out; } - FORCEINLINE bool IsInsertUniqueI16() const { return Tag == EReducerTag::InsertUniqueI16; } - FORCEINLINE FInsertUniqueI16Args GetAsInsertUniqueI16() const + FORCEINLINE bool IsDeleteUniqueI16() const { return Tag == static_cast(EReducerTag::DeleteUniqueI16); } + FORCEINLINE FDeleteUniqueI16Args GetAsDeleteUniqueI16() const { - ensureMsgf(IsInsertUniqueI16(), TEXT("Reducer does not hold InsertUniqueI16!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueI16(), TEXT("Reducer does not hold DeleteUniqueI16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueI16!")); + return TypedData ? TypedData->Value : FDeleteUniqueI16Args(); } - static FReducer InsertUniqueI256(const FInsertUniqueI256Args& Value) + static FReducer DeleteUniqueI256(const FDeleteUniqueI256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueI256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_i_256"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueI256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_i_256"); return Out; } - FORCEINLINE bool IsInsertUniqueI256() const { return Tag == EReducerTag::InsertUniqueI256; } - FORCEINLINE FInsertUniqueI256Args GetAsInsertUniqueI256() const + FORCEINLINE bool IsDeleteUniqueI256() const { return Tag == static_cast(EReducerTag::DeleteUniqueI256); } + FORCEINLINE FDeleteUniqueI256Args GetAsDeleteUniqueI256() const { - ensureMsgf(IsInsertUniqueI256(), TEXT("Reducer does not hold InsertUniqueI256!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueI256(), TEXT("Reducer does not hold DeleteUniqueI256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueI256!")); + return TypedData ? TypedData->Value : FDeleteUniqueI256Args(); } - static FReducer InsertUniqueI32(const FInsertUniqueI32Args& Value) + static FReducer DeleteUniqueI32(const FDeleteUniqueI32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueI32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_i_32"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_i_32"); return Out; } - FORCEINLINE bool IsInsertUniqueI32() const { return Tag == EReducerTag::InsertUniqueI32; } - FORCEINLINE FInsertUniqueI32Args GetAsInsertUniqueI32() const + FORCEINLINE bool IsDeleteUniqueI32() const { return Tag == static_cast(EReducerTag::DeleteUniqueI32); } + FORCEINLINE FDeleteUniqueI32Args GetAsDeleteUniqueI32() const { - ensureMsgf(IsInsertUniqueI32(), TEXT("Reducer does not hold InsertUniqueI32!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueI32(), TEXT("Reducer does not hold DeleteUniqueI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueI32!")); + return TypedData ? TypedData->Value : FDeleteUniqueI32Args(); } - static FReducer InsertUniqueI64(const FInsertUniqueI64Args& Value) + static FReducer DeleteUniqueI64(const FDeleteUniqueI64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueI64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_i_64"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueI64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_i_64"); return Out; } - FORCEINLINE bool IsInsertUniqueI64() const { return Tag == EReducerTag::InsertUniqueI64; } - FORCEINLINE FInsertUniqueI64Args GetAsInsertUniqueI64() const + FORCEINLINE bool IsDeleteUniqueI64() const { return Tag == static_cast(EReducerTag::DeleteUniqueI64); } + FORCEINLINE FDeleteUniqueI64Args GetAsDeleteUniqueI64() const { - ensureMsgf(IsInsertUniqueI64(), TEXT("Reducer does not hold InsertUniqueI64!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueI64(), TEXT("Reducer does not hold DeleteUniqueI64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueI64!")); + return TypedData ? TypedData->Value : FDeleteUniqueI64Args(); } - static FReducer InsertUniqueI8(const FInsertUniqueI8Args& Value) + static FReducer DeleteUniqueI8(const FDeleteUniqueI8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueI8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_i_8"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueI8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_i_8"); return Out; } - FORCEINLINE bool IsInsertUniqueI8() const { return Tag == EReducerTag::InsertUniqueI8; } - FORCEINLINE FInsertUniqueI8Args GetAsInsertUniqueI8() const + FORCEINLINE bool IsDeleteUniqueI8() const { return Tag == static_cast(EReducerTag::DeleteUniqueI8); } + FORCEINLINE FDeleteUniqueI8Args GetAsDeleteUniqueI8() const { - ensureMsgf(IsInsertUniqueI8(), TEXT("Reducer does not hold InsertUniqueI8!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueI8(), TEXT("Reducer does not hold DeleteUniqueI8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueI8!")); + return TypedData ? TypedData->Value : FDeleteUniqueI8Args(); } - static FReducer InsertUniqueIdentity(const FInsertUniqueIdentityArgs& Value) + static FReducer DeleteUniqueIdentity(const FDeleteUniqueIdentityArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueIdentity; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_identity"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_identity"); return Out; } - FORCEINLINE bool IsInsertUniqueIdentity() const { return Tag == EReducerTag::InsertUniqueIdentity; } - FORCEINLINE FInsertUniqueIdentityArgs GetAsInsertUniqueIdentity() const + FORCEINLINE bool IsDeleteUniqueIdentity() const { return Tag == static_cast(EReducerTag::DeleteUniqueIdentity); } + FORCEINLINE FDeleteUniqueIdentityArgs GetAsDeleteUniqueIdentity() const { - ensureMsgf(IsInsertUniqueIdentity(), TEXT("Reducer does not hold InsertUniqueIdentity!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueIdentity(), TEXT("Reducer does not hold DeleteUniqueIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueIdentity!")); + return TypedData ? TypedData->Value : FDeleteUniqueIdentityArgs(); } - static FReducer InsertUniqueString(const FInsertUniqueStringArgs& Value) + static FReducer DeleteUniqueString(const FDeleteUniqueStringArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueString; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_string"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_string"); return Out; } - FORCEINLINE bool IsInsertUniqueString() const { return Tag == EReducerTag::InsertUniqueString; } - FORCEINLINE FInsertUniqueStringArgs GetAsInsertUniqueString() const + FORCEINLINE bool IsDeleteUniqueString() const { return Tag == static_cast(EReducerTag::DeleteUniqueString); } + FORCEINLINE FDeleteUniqueStringArgs GetAsDeleteUniqueString() const { - ensureMsgf(IsInsertUniqueString(), TEXT("Reducer does not hold InsertUniqueString!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueString(), TEXT("Reducer does not hold DeleteUniqueString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueString!")); + return TypedData ? TypedData->Value : FDeleteUniqueStringArgs(); } - static FReducer InsertUniqueU128(const FInsertUniqueU128Args& Value) + static FReducer DeleteUniqueU128(const FDeleteUniqueU128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueU128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_u_128"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueU128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_u_128"); return Out; } - FORCEINLINE bool IsInsertUniqueU128() const { return Tag == EReducerTag::InsertUniqueU128; } - FORCEINLINE FInsertUniqueU128Args GetAsInsertUniqueU128() const + FORCEINLINE bool IsDeleteUniqueU128() const { return Tag == static_cast(EReducerTag::DeleteUniqueU128); } + FORCEINLINE FDeleteUniqueU128Args GetAsDeleteUniqueU128() const { - ensureMsgf(IsInsertUniqueU128(), TEXT("Reducer does not hold InsertUniqueU128!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueU128(), TEXT("Reducer does not hold DeleteUniqueU128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueU128!")); + return TypedData ? TypedData->Value : FDeleteUniqueU128Args(); } - static FReducer InsertUniqueU16(const FInsertUniqueU16Args& Value) + static FReducer DeleteUniqueU16(const FDeleteUniqueU16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueU16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_u_16"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueU16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_u_16"); return Out; } - FORCEINLINE bool IsInsertUniqueU16() const { return Tag == EReducerTag::InsertUniqueU16; } - FORCEINLINE FInsertUniqueU16Args GetAsInsertUniqueU16() const + FORCEINLINE bool IsDeleteUniqueU16() const { return Tag == static_cast(EReducerTag::DeleteUniqueU16); } + FORCEINLINE FDeleteUniqueU16Args GetAsDeleteUniqueU16() const { - ensureMsgf(IsInsertUniqueU16(), TEXT("Reducer does not hold InsertUniqueU16!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueU16(), TEXT("Reducer does not hold DeleteUniqueU16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueU16!")); + return TypedData ? TypedData->Value : FDeleteUniqueU16Args(); } - static FReducer InsertUniqueU256(const FInsertUniqueU256Args& Value) + static FReducer DeleteUniqueU256(const FDeleteUniqueU256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueU256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_u_256"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueU256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_u_256"); return Out; } - FORCEINLINE bool IsInsertUniqueU256() const { return Tag == EReducerTag::InsertUniqueU256; } - FORCEINLINE FInsertUniqueU256Args GetAsInsertUniqueU256() const + FORCEINLINE bool IsDeleteUniqueU256() const { return Tag == static_cast(EReducerTag::DeleteUniqueU256); } + FORCEINLINE FDeleteUniqueU256Args GetAsDeleteUniqueU256() const { - ensureMsgf(IsInsertUniqueU256(), TEXT("Reducer does not hold InsertUniqueU256!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueU256(), TEXT("Reducer does not hold DeleteUniqueU256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueU256!")); + return TypedData ? TypedData->Value : FDeleteUniqueU256Args(); } - static FReducer InsertUniqueU32(const FInsertUniqueU32Args& Value) + static FReducer DeleteUniqueU32(const FDeleteUniqueU32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueU32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_u_32"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_u_32"); return Out; } - FORCEINLINE bool IsInsertUniqueU32() const { return Tag == EReducerTag::InsertUniqueU32; } - FORCEINLINE FInsertUniqueU32Args GetAsInsertUniqueU32() const + FORCEINLINE bool IsDeleteUniqueU32() const { return Tag == static_cast(EReducerTag::DeleteUniqueU32); } + FORCEINLINE FDeleteUniqueU32Args GetAsDeleteUniqueU32() const { - ensureMsgf(IsInsertUniqueU32(), TEXT("Reducer does not hold InsertUniqueU32!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueU32(), TEXT("Reducer does not hold DeleteUniqueU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueU32!")); + return TypedData ? TypedData->Value : FDeleteUniqueU32Args(); } - static FReducer InsertUniqueU32UpdatePkU32(const FInsertUniqueU32UpdatePkU32Args& Value) + static FReducer DeleteUniqueU64(const FDeleteUniqueU64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueU32UpdatePkU32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_u_32_update_pk_u_32"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueU64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_u_64"); return Out; } - FORCEINLINE bool IsInsertUniqueU32UpdatePkU32() const { return Tag == EReducerTag::InsertUniqueU32UpdatePkU32; } - FORCEINLINE FInsertUniqueU32UpdatePkU32Args GetAsInsertUniqueU32UpdatePkU32() const + FORCEINLINE bool IsDeleteUniqueU64() const { return Tag == static_cast(EReducerTag::DeleteUniqueU64); } + FORCEINLINE FDeleteUniqueU64Args GetAsDeleteUniqueU64() const { - ensureMsgf(IsInsertUniqueU32UpdatePkU32(), TEXT("Reducer does not hold InsertUniqueU32UpdatePkU32!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueU64(), TEXT("Reducer does not hold DeleteUniqueU64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueU64!")); + return TypedData ? TypedData->Value : FDeleteUniqueU64Args(); } - static FReducer InsertUniqueU64(const FInsertUniqueU64Args& Value) + static FReducer DeleteUniqueU8(const FDeleteUniqueU8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueU64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_u_64"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueU8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_u_8"); return Out; } - FORCEINLINE bool IsInsertUniqueU64() const { return Tag == EReducerTag::InsertUniqueU64; } - FORCEINLINE FInsertUniqueU64Args GetAsInsertUniqueU64() const + FORCEINLINE bool IsDeleteUniqueU8() const { return Tag == static_cast(EReducerTag::DeleteUniqueU8); } + FORCEINLINE FDeleteUniqueU8Args GetAsDeleteUniqueU8() const { - ensureMsgf(IsInsertUniqueU64(), TEXT("Reducer does not hold InsertUniqueU64!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueU8(), TEXT("Reducer does not hold DeleteUniqueU8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueU8!")); + return TypedData ? TypedData->Value : FDeleteUniqueU8Args(); } - static FReducer InsertUniqueU8(const FInsertUniqueU8Args& Value) + static FReducer DeleteUniqueUuid(const FDeleteUniqueUuidArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueU8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_u_8"); + Out.Tag = static_cast(EReducerTag::DeleteUniqueUuid); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("delete_unique_uuid"); return Out; } - FORCEINLINE bool IsInsertUniqueU8() const { return Tag == EReducerTag::InsertUniqueU8; } - FORCEINLINE FInsertUniqueU8Args GetAsInsertUniqueU8() const + FORCEINLINE bool IsDeleteUniqueUuid() const { return Tag == static_cast(EReducerTag::DeleteUniqueUuid); } + FORCEINLINE FDeleteUniqueUuidArgs GetAsDeleteUniqueUuid() const { - ensureMsgf(IsInsertUniqueU8(), TEXT("Reducer does not hold InsertUniqueU8!")); - return Data.Get(); + ensureMsgf(IsDeleteUniqueUuid(), TEXT("Reducer does not hold DeleteUniqueUuid!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for DeleteUniqueUuid!")); + return TypedData ? TypedData->Value : FDeleteUniqueUuidArgs(); } - static FReducer InsertUniqueUuid(const FInsertUniqueUuidArgs& Value) + static FReducer InsertCallTimestamp(const FInsertCallTimestampArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUniqueUuid; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_unique_uuid"); + Out.Tag = static_cast(EReducerTag::InsertCallTimestamp); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_call_timestamp"); return Out; } - FORCEINLINE bool IsInsertUniqueUuid() const { return Tag == EReducerTag::InsertUniqueUuid; } - FORCEINLINE FInsertUniqueUuidArgs GetAsInsertUniqueUuid() const + FORCEINLINE bool IsInsertCallTimestamp() const { return Tag == static_cast(EReducerTag::InsertCallTimestamp); } + FORCEINLINE FInsertCallTimestampArgs GetAsInsertCallTimestamp() const { - ensureMsgf(IsInsertUniqueUuid(), TEXT("Reducer does not hold InsertUniqueUuid!")); - return Data.Get(); + ensureMsgf(IsInsertCallTimestamp(), TEXT("Reducer does not hold InsertCallTimestamp!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertCallTimestamp!")); + return TypedData ? TypedData->Value : FInsertCallTimestampArgs(); } - static FReducer InsertUser(const FInsertUserArgs& Value) + static FReducer InsertCallUuidV4(const FInsertCallUuidV4Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertUser; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_user"); + Out.Tag = static_cast(EReducerTag::InsertCallUuidV4); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_call_uuid_v_4"); return Out; } - FORCEINLINE bool IsInsertUser() const { return Tag == EReducerTag::InsertUser; } - FORCEINLINE FInsertUserArgs GetAsInsertUser() const + FORCEINLINE bool IsInsertCallUuidV4() const { return Tag == static_cast(EReducerTag::InsertCallUuidV4); } + FORCEINLINE FInsertCallUuidV4Args GetAsInsertCallUuidV4() const { - ensureMsgf(IsInsertUser(), TEXT("Reducer does not hold InsertUser!")); - return Data.Get(); + ensureMsgf(IsInsertCallUuidV4(), TEXT("Reducer does not hold InsertCallUuidV4!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertCallUuidV4!")); + return TypedData ? TypedData->Value : FInsertCallUuidV4Args(); } - static FReducer InsertVecBool(const FInsertVecBoolArgs& Value) + static FReducer InsertCallUuidV7(const FInsertCallUuidV7Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecBool; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_bool"); + Out.Tag = static_cast(EReducerTag::InsertCallUuidV7); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_call_uuid_v_7"); return Out; } - FORCEINLINE bool IsInsertVecBool() const { return Tag == EReducerTag::InsertVecBool; } - FORCEINLINE FInsertVecBoolArgs GetAsInsertVecBool() const + FORCEINLINE bool IsInsertCallUuidV7() const { return Tag == static_cast(EReducerTag::InsertCallUuidV7); } + FORCEINLINE FInsertCallUuidV7Args GetAsInsertCallUuidV7() const { - ensureMsgf(IsInsertVecBool(), TEXT("Reducer does not hold InsertVecBool!")); - return Data.Get(); + ensureMsgf(IsInsertCallUuidV7(), TEXT("Reducer does not hold InsertCallUuidV7!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertCallUuidV7!")); + return TypedData ? TypedData->Value : FInsertCallUuidV7Args(); } - static FReducer InsertVecByteStruct(const FInsertVecByteStructArgs& Value) + static FReducer InsertCallerOneConnectionId(const FInsertCallerOneConnectionIdArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecByteStruct; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_byte_struct"); + Out.Tag = static_cast(EReducerTag::InsertCallerOneConnectionId); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_caller_one_connection_id"); return Out; } - FORCEINLINE bool IsInsertVecByteStruct() const { return Tag == EReducerTag::InsertVecByteStruct; } - FORCEINLINE FInsertVecByteStructArgs GetAsInsertVecByteStruct() const + FORCEINLINE bool IsInsertCallerOneConnectionId() const { return Tag == static_cast(EReducerTag::InsertCallerOneConnectionId); } + FORCEINLINE FInsertCallerOneConnectionIdArgs GetAsInsertCallerOneConnectionId() const { - ensureMsgf(IsInsertVecByteStruct(), TEXT("Reducer does not hold InsertVecByteStruct!")); - return Data.Get(); + ensureMsgf(IsInsertCallerOneConnectionId(), TEXT("Reducer does not hold InsertCallerOneConnectionId!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertCallerOneConnectionId!")); + return TypedData ? TypedData->Value : FInsertCallerOneConnectionIdArgs(); } - static FReducer InsertVecConnectionId(const FInsertVecConnectionIdArgs& Value) + static FReducer InsertCallerOneIdentity(const FInsertCallerOneIdentityArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecConnectionId; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_connection_id"); + Out.Tag = static_cast(EReducerTag::InsertCallerOneIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_caller_one_identity"); return Out; } - FORCEINLINE bool IsInsertVecConnectionId() const { return Tag == EReducerTag::InsertVecConnectionId; } - FORCEINLINE FInsertVecConnectionIdArgs GetAsInsertVecConnectionId() const + FORCEINLINE bool IsInsertCallerOneIdentity() const { return Tag == static_cast(EReducerTag::InsertCallerOneIdentity); } + FORCEINLINE FInsertCallerOneIdentityArgs GetAsInsertCallerOneIdentity() const { - ensureMsgf(IsInsertVecConnectionId(), TEXT("Reducer does not hold InsertVecConnectionId!")); - return Data.Get(); + ensureMsgf(IsInsertCallerOneIdentity(), TEXT("Reducer does not hold InsertCallerOneIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertCallerOneIdentity!")); + return TypedData ? TypedData->Value : FInsertCallerOneIdentityArgs(); } - static FReducer InsertVecEnumWithPayload(const FInsertVecEnumWithPayloadArgs& Value) + static FReducer InsertCallerPkConnectionId(const FInsertCallerPkConnectionIdArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecEnumWithPayload; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_enum_with_payload"); + Out.Tag = static_cast(EReducerTag::InsertCallerPkConnectionId); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_caller_pk_connection_id"); return Out; } - FORCEINLINE bool IsInsertVecEnumWithPayload() const { return Tag == EReducerTag::InsertVecEnumWithPayload; } - FORCEINLINE FInsertVecEnumWithPayloadArgs GetAsInsertVecEnumWithPayload() const + FORCEINLINE bool IsInsertCallerPkConnectionId() const { return Tag == static_cast(EReducerTag::InsertCallerPkConnectionId); } + FORCEINLINE FInsertCallerPkConnectionIdArgs GetAsInsertCallerPkConnectionId() const { - ensureMsgf(IsInsertVecEnumWithPayload(), TEXT("Reducer does not hold InsertVecEnumWithPayload!")); - return Data.Get(); + ensureMsgf(IsInsertCallerPkConnectionId(), TEXT("Reducer does not hold InsertCallerPkConnectionId!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertCallerPkConnectionId!")); + return TypedData ? TypedData->Value : FInsertCallerPkConnectionIdArgs(); } - static FReducer InsertVecEveryPrimitiveStruct(const FInsertVecEveryPrimitiveStructArgs& Value) + static FReducer InsertCallerPkIdentity(const FInsertCallerPkIdentityArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecEveryPrimitiveStruct; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_every_primitive_struct"); + Out.Tag = static_cast(EReducerTag::InsertCallerPkIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_caller_pk_identity"); return Out; } - FORCEINLINE bool IsInsertVecEveryPrimitiveStruct() const { return Tag == EReducerTag::InsertVecEveryPrimitiveStruct; } - FORCEINLINE FInsertVecEveryPrimitiveStructArgs GetAsInsertVecEveryPrimitiveStruct() const + FORCEINLINE bool IsInsertCallerPkIdentity() const { return Tag == static_cast(EReducerTag::InsertCallerPkIdentity); } + FORCEINLINE FInsertCallerPkIdentityArgs GetAsInsertCallerPkIdentity() const { - ensureMsgf(IsInsertVecEveryPrimitiveStruct(), TEXT("Reducer does not hold InsertVecEveryPrimitiveStruct!")); - return Data.Get(); + ensureMsgf(IsInsertCallerPkIdentity(), TEXT("Reducer does not hold InsertCallerPkIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertCallerPkIdentity!")); + return TypedData ? TypedData->Value : FInsertCallerPkIdentityArgs(); } - static FReducer InsertVecEveryVecStruct(const FInsertVecEveryVecStructArgs& Value) + static FReducer InsertCallerUniqueConnectionId(const FInsertCallerUniqueConnectionIdArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecEveryVecStruct; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_every_vec_struct"); + Out.Tag = static_cast(EReducerTag::InsertCallerUniqueConnectionId); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_caller_unique_connection_id"); return Out; } - FORCEINLINE bool IsInsertVecEveryVecStruct() const { return Tag == EReducerTag::InsertVecEveryVecStruct; } - FORCEINLINE FInsertVecEveryVecStructArgs GetAsInsertVecEveryVecStruct() const + FORCEINLINE bool IsInsertCallerUniqueConnectionId() const { return Tag == static_cast(EReducerTag::InsertCallerUniqueConnectionId); } + FORCEINLINE FInsertCallerUniqueConnectionIdArgs GetAsInsertCallerUniqueConnectionId() const { - ensureMsgf(IsInsertVecEveryVecStruct(), TEXT("Reducer does not hold InsertVecEveryVecStruct!")); - return Data.Get(); + ensureMsgf(IsInsertCallerUniqueConnectionId(), TEXT("Reducer does not hold InsertCallerUniqueConnectionId!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertCallerUniqueConnectionId!")); + return TypedData ? TypedData->Value : FInsertCallerUniqueConnectionIdArgs(); } - static FReducer InsertVecF32(const FInsertVecF32Args& Value) + static FReducer InsertCallerUniqueIdentity(const FInsertCallerUniqueIdentityArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecF32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_f_32"); + Out.Tag = static_cast(EReducerTag::InsertCallerUniqueIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_caller_unique_identity"); return Out; } - FORCEINLINE bool IsInsertVecF32() const { return Tag == EReducerTag::InsertVecF32; } - FORCEINLINE FInsertVecF32Args GetAsInsertVecF32() const + FORCEINLINE bool IsInsertCallerUniqueIdentity() const { return Tag == static_cast(EReducerTag::InsertCallerUniqueIdentity); } + FORCEINLINE FInsertCallerUniqueIdentityArgs GetAsInsertCallerUniqueIdentity() const { - ensureMsgf(IsInsertVecF32(), TEXT("Reducer does not hold InsertVecF32!")); - return Data.Get(); + ensureMsgf(IsInsertCallerUniqueIdentity(), TEXT("Reducer does not hold InsertCallerUniqueIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertCallerUniqueIdentity!")); + return TypedData ? TypedData->Value : FInsertCallerUniqueIdentityArgs(); } - static FReducer InsertVecF64(const FInsertVecF64Args& Value) + static FReducer InsertCallerVecConnectionId(const FInsertCallerVecConnectionIdArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecF64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_f_64"); + Out.Tag = static_cast(EReducerTag::InsertCallerVecConnectionId); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_caller_vec_connection_id"); return Out; } - FORCEINLINE bool IsInsertVecF64() const { return Tag == EReducerTag::InsertVecF64; } - FORCEINLINE FInsertVecF64Args GetAsInsertVecF64() const + FORCEINLINE bool IsInsertCallerVecConnectionId() const { return Tag == static_cast(EReducerTag::InsertCallerVecConnectionId); } + FORCEINLINE FInsertCallerVecConnectionIdArgs GetAsInsertCallerVecConnectionId() const { - ensureMsgf(IsInsertVecF64(), TEXT("Reducer does not hold InsertVecF64!")); - return Data.Get(); + ensureMsgf(IsInsertCallerVecConnectionId(), TEXT("Reducer does not hold InsertCallerVecConnectionId!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertCallerVecConnectionId!")); + return TypedData ? TypedData->Value : FInsertCallerVecConnectionIdArgs(); } - static FReducer InsertVecI128(const FInsertVecI128Args& Value) + static FReducer InsertCallerVecIdentity(const FInsertCallerVecIdentityArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecI128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_i_128"); + Out.Tag = static_cast(EReducerTag::InsertCallerVecIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_caller_vec_identity"); return Out; } - FORCEINLINE bool IsInsertVecI128() const { return Tag == EReducerTag::InsertVecI128; } - FORCEINLINE FInsertVecI128Args GetAsInsertVecI128() const + FORCEINLINE bool IsInsertCallerVecIdentity() const { return Tag == static_cast(EReducerTag::InsertCallerVecIdentity); } + FORCEINLINE FInsertCallerVecIdentityArgs GetAsInsertCallerVecIdentity() const { - ensureMsgf(IsInsertVecI128(), TEXT("Reducer does not hold InsertVecI128!")); - return Data.Get(); + ensureMsgf(IsInsertCallerVecIdentity(), TEXT("Reducer does not hold InsertCallerVecIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertCallerVecIdentity!")); + return TypedData ? TypedData->Value : FInsertCallerVecIdentityArgs(); } - static FReducer InsertVecI16(const FInsertVecI16Args& Value) + static FReducer InsertIntoBtreeU32(const FInsertIntoBtreeU32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecI16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_i_16"); + Out.Tag = static_cast(EReducerTag::InsertIntoBtreeU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_into_btree_u_32"); return Out; } - FORCEINLINE bool IsInsertVecI16() const { return Tag == EReducerTag::InsertVecI16; } - FORCEINLINE FInsertVecI16Args GetAsInsertVecI16() const + FORCEINLINE bool IsInsertIntoBtreeU32() const { return Tag == static_cast(EReducerTag::InsertIntoBtreeU32); } + FORCEINLINE FInsertIntoBtreeU32Args GetAsInsertIntoBtreeU32() const { - ensureMsgf(IsInsertVecI16(), TEXT("Reducer does not hold InsertVecI16!")); - return Data.Get(); + ensureMsgf(IsInsertIntoBtreeU32(), TEXT("Reducer does not hold InsertIntoBtreeU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertIntoBtreeU32!")); + return TypedData ? TypedData->Value : FInsertIntoBtreeU32Args(); } - static FReducer InsertVecI256(const FInsertVecI256Args& Value) + static FReducer InsertIntoIndexedSimpleEnum(const FInsertIntoIndexedSimpleEnumArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecI256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_i_256"); + Out.Tag = static_cast(EReducerTag::InsertIntoIndexedSimpleEnum); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_into_indexed_simple_enum"); return Out; } - FORCEINLINE bool IsInsertVecI256() const { return Tag == EReducerTag::InsertVecI256; } - FORCEINLINE FInsertVecI256Args GetAsInsertVecI256() const + FORCEINLINE bool IsInsertIntoIndexedSimpleEnum() const { return Tag == static_cast(EReducerTag::InsertIntoIndexedSimpleEnum); } + FORCEINLINE FInsertIntoIndexedSimpleEnumArgs GetAsInsertIntoIndexedSimpleEnum() const { - ensureMsgf(IsInsertVecI256(), TEXT("Reducer does not hold InsertVecI256!")); - return Data.Get(); + ensureMsgf(IsInsertIntoIndexedSimpleEnum(), TEXT("Reducer does not hold InsertIntoIndexedSimpleEnum!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertIntoIndexedSimpleEnum!")); + return TypedData ? TypedData->Value : FInsertIntoIndexedSimpleEnumArgs(); } - static FReducer InsertVecI32(const FInsertVecI32Args& Value) + static FReducer InsertIntoPkBtreeU32(const FInsertIntoPkBtreeU32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecI32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_i_32"); + Out.Tag = static_cast(EReducerTag::InsertIntoPkBtreeU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_into_pk_btree_u_32"); return Out; } - FORCEINLINE bool IsInsertVecI32() const { return Tag == EReducerTag::InsertVecI32; } - FORCEINLINE FInsertVecI32Args GetAsInsertVecI32() const + FORCEINLINE bool IsInsertIntoPkBtreeU32() const { return Tag == static_cast(EReducerTag::InsertIntoPkBtreeU32); } + FORCEINLINE FInsertIntoPkBtreeU32Args GetAsInsertIntoPkBtreeU32() const { - ensureMsgf(IsInsertVecI32(), TEXT("Reducer does not hold InsertVecI32!")); - return Data.Get(); + ensureMsgf(IsInsertIntoPkBtreeU32(), TEXT("Reducer does not hold InsertIntoPkBtreeU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertIntoPkBtreeU32!")); + return TypedData ? TypedData->Value : FInsertIntoPkBtreeU32Args(); } - static FReducer InsertVecI64(const FInsertVecI64Args& Value) + static FReducer InsertLargeTable(const FInsertLargeTableArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecI64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_i_64"); + Out.Tag = static_cast(EReducerTag::InsertLargeTable); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_large_table"); return Out; } - FORCEINLINE bool IsInsertVecI64() const { return Tag == EReducerTag::InsertVecI64; } - FORCEINLINE FInsertVecI64Args GetAsInsertVecI64() const + FORCEINLINE bool IsInsertLargeTable() const { return Tag == static_cast(EReducerTag::InsertLargeTable); } + FORCEINLINE FInsertLargeTableArgs GetAsInsertLargeTable() const { - ensureMsgf(IsInsertVecI64(), TEXT("Reducer does not hold InsertVecI64!")); - return Data.Get(); + ensureMsgf(IsInsertLargeTable(), TEXT("Reducer does not hold InsertLargeTable!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertLargeTable!")); + return TypedData ? TypedData->Value : FInsertLargeTableArgs(); } - static FReducer InsertVecI8(const FInsertVecI8Args& Value) + static FReducer InsertOneBool(const FInsertOneBoolArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecI8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_i_8"); + Out.Tag = static_cast(EReducerTag::InsertOneBool); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_bool"); return Out; } - FORCEINLINE bool IsInsertVecI8() const { return Tag == EReducerTag::InsertVecI8; } - FORCEINLINE FInsertVecI8Args GetAsInsertVecI8() const + FORCEINLINE bool IsInsertOneBool() const { return Tag == static_cast(EReducerTag::InsertOneBool); } + FORCEINLINE FInsertOneBoolArgs GetAsInsertOneBool() const { - ensureMsgf(IsInsertVecI8(), TEXT("Reducer does not hold InsertVecI8!")); - return Data.Get(); + ensureMsgf(IsInsertOneBool(), TEXT("Reducer does not hold InsertOneBool!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneBool!")); + return TypedData ? TypedData->Value : FInsertOneBoolArgs(); } - static FReducer InsertVecIdentity(const FInsertVecIdentityArgs& Value) + static FReducer InsertOneByteStruct(const FInsertOneByteStructArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecIdentity; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_identity"); + Out.Tag = static_cast(EReducerTag::InsertOneByteStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_byte_struct"); return Out; } - FORCEINLINE bool IsInsertVecIdentity() const { return Tag == EReducerTag::InsertVecIdentity; } - FORCEINLINE FInsertVecIdentityArgs GetAsInsertVecIdentity() const + FORCEINLINE bool IsInsertOneByteStruct() const { return Tag == static_cast(EReducerTag::InsertOneByteStruct); } + FORCEINLINE FInsertOneByteStructArgs GetAsInsertOneByteStruct() const { - ensureMsgf(IsInsertVecIdentity(), TEXT("Reducer does not hold InsertVecIdentity!")); - return Data.Get(); + ensureMsgf(IsInsertOneByteStruct(), TEXT("Reducer does not hold InsertOneByteStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneByteStruct!")); + return TypedData ? TypedData->Value : FInsertOneByteStructArgs(); } - static FReducer InsertVecSimpleEnum(const FInsertVecSimpleEnumArgs& Value) + static FReducer InsertOneConnectionId(const FInsertOneConnectionIdArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecSimpleEnum; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_simple_enum"); + Out.Tag = static_cast(EReducerTag::InsertOneConnectionId); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_connection_id"); return Out; } - FORCEINLINE bool IsInsertVecSimpleEnum() const { return Tag == EReducerTag::InsertVecSimpleEnum; } - FORCEINLINE FInsertVecSimpleEnumArgs GetAsInsertVecSimpleEnum() const + FORCEINLINE bool IsInsertOneConnectionId() const { return Tag == static_cast(EReducerTag::InsertOneConnectionId); } + FORCEINLINE FInsertOneConnectionIdArgs GetAsInsertOneConnectionId() const { - ensureMsgf(IsInsertVecSimpleEnum(), TEXT("Reducer does not hold InsertVecSimpleEnum!")); - return Data.Get(); + ensureMsgf(IsInsertOneConnectionId(), TEXT("Reducer does not hold InsertOneConnectionId!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneConnectionId!")); + return TypedData ? TypedData->Value : FInsertOneConnectionIdArgs(); } - static FReducer InsertVecString(const FInsertVecStringArgs& Value) + static FReducer InsertOneEnumWithPayload(const FInsertOneEnumWithPayloadArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecString; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_string"); + Out.Tag = static_cast(EReducerTag::InsertOneEnumWithPayload); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_enum_with_payload"); return Out; } - FORCEINLINE bool IsInsertVecString() const { return Tag == EReducerTag::InsertVecString; } - FORCEINLINE FInsertVecStringArgs GetAsInsertVecString() const + FORCEINLINE bool IsInsertOneEnumWithPayload() const { return Tag == static_cast(EReducerTag::InsertOneEnumWithPayload); } + FORCEINLINE FInsertOneEnumWithPayloadArgs GetAsInsertOneEnumWithPayload() const { - ensureMsgf(IsInsertVecString(), TEXT("Reducer does not hold InsertVecString!")); - return Data.Get(); + ensureMsgf(IsInsertOneEnumWithPayload(), TEXT("Reducer does not hold InsertOneEnumWithPayload!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneEnumWithPayload!")); + return TypedData ? TypedData->Value : FInsertOneEnumWithPayloadArgs(); } - static FReducer InsertVecTimestamp(const FInsertVecTimestampArgs& Value) + static FReducer InsertOneEveryPrimitiveStruct(const FInsertOneEveryPrimitiveStructArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecTimestamp; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_timestamp"); + Out.Tag = static_cast(EReducerTag::InsertOneEveryPrimitiveStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_every_primitive_struct"); return Out; } - FORCEINLINE bool IsInsertVecTimestamp() const { return Tag == EReducerTag::InsertVecTimestamp; } - FORCEINLINE FInsertVecTimestampArgs GetAsInsertVecTimestamp() const + FORCEINLINE bool IsInsertOneEveryPrimitiveStruct() const { return Tag == static_cast(EReducerTag::InsertOneEveryPrimitiveStruct); } + FORCEINLINE FInsertOneEveryPrimitiveStructArgs GetAsInsertOneEveryPrimitiveStruct() const { - ensureMsgf(IsInsertVecTimestamp(), TEXT("Reducer does not hold InsertVecTimestamp!")); - return Data.Get(); + ensureMsgf(IsInsertOneEveryPrimitiveStruct(), TEXT("Reducer does not hold InsertOneEveryPrimitiveStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneEveryPrimitiveStruct!")); + return TypedData ? TypedData->Value : FInsertOneEveryPrimitiveStructArgs(); } - static FReducer InsertVecU128(const FInsertVecU128Args& Value) + static FReducer InsertOneEveryVecStruct(const FInsertOneEveryVecStructArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecU128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_u_128"); + Out.Tag = static_cast(EReducerTag::InsertOneEveryVecStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_every_vec_struct"); return Out; } - FORCEINLINE bool IsInsertVecU128() const { return Tag == EReducerTag::InsertVecU128; } - FORCEINLINE FInsertVecU128Args GetAsInsertVecU128() const + FORCEINLINE bool IsInsertOneEveryVecStruct() const { return Tag == static_cast(EReducerTag::InsertOneEveryVecStruct); } + FORCEINLINE FInsertOneEveryVecStructArgs GetAsInsertOneEveryVecStruct() const { - ensureMsgf(IsInsertVecU128(), TEXT("Reducer does not hold InsertVecU128!")); - return Data.Get(); + ensureMsgf(IsInsertOneEveryVecStruct(), TEXT("Reducer does not hold InsertOneEveryVecStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneEveryVecStruct!")); + return TypedData ? TypedData->Value : FInsertOneEveryVecStructArgs(); } - static FReducer InsertVecU16(const FInsertVecU16Args& Value) + static FReducer InsertOneF32(const FInsertOneF32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecU16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_u_16"); + Out.Tag = static_cast(EReducerTag::InsertOneF32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_f_32"); return Out; } - FORCEINLINE bool IsInsertVecU16() const { return Tag == EReducerTag::InsertVecU16; } - FORCEINLINE FInsertVecU16Args GetAsInsertVecU16() const + FORCEINLINE bool IsInsertOneF32() const { return Tag == static_cast(EReducerTag::InsertOneF32); } + FORCEINLINE FInsertOneF32Args GetAsInsertOneF32() const { - ensureMsgf(IsInsertVecU16(), TEXT("Reducer does not hold InsertVecU16!")); - return Data.Get(); + ensureMsgf(IsInsertOneF32(), TEXT("Reducer does not hold InsertOneF32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneF32!")); + return TypedData ? TypedData->Value : FInsertOneF32Args(); } - static FReducer InsertVecU256(const FInsertVecU256Args& Value) + static FReducer InsertOneF64(const FInsertOneF64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecU256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_u_256"); + Out.Tag = static_cast(EReducerTag::InsertOneF64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_f_64"); return Out; } - FORCEINLINE bool IsInsertVecU256() const { return Tag == EReducerTag::InsertVecU256; } - FORCEINLINE FInsertVecU256Args GetAsInsertVecU256() const + FORCEINLINE bool IsInsertOneF64() const { return Tag == static_cast(EReducerTag::InsertOneF64); } + FORCEINLINE FInsertOneF64Args GetAsInsertOneF64() const { - ensureMsgf(IsInsertVecU256(), TEXT("Reducer does not hold InsertVecU256!")); - return Data.Get(); + ensureMsgf(IsInsertOneF64(), TEXT("Reducer does not hold InsertOneF64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneF64!")); + return TypedData ? TypedData->Value : FInsertOneF64Args(); } - static FReducer InsertVecU32(const FInsertVecU32Args& Value) + static FReducer InsertOneI128(const FInsertOneI128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecU32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_u_32"); + Out.Tag = static_cast(EReducerTag::InsertOneI128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_i_128"); return Out; } - FORCEINLINE bool IsInsertVecU32() const { return Tag == EReducerTag::InsertVecU32; } - FORCEINLINE FInsertVecU32Args GetAsInsertVecU32() const + FORCEINLINE bool IsInsertOneI128() const { return Tag == static_cast(EReducerTag::InsertOneI128); } + FORCEINLINE FInsertOneI128Args GetAsInsertOneI128() const { - ensureMsgf(IsInsertVecU32(), TEXT("Reducer does not hold InsertVecU32!")); - return Data.Get(); + ensureMsgf(IsInsertOneI128(), TEXT("Reducer does not hold InsertOneI128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneI128!")); + return TypedData ? TypedData->Value : FInsertOneI128Args(); } - static FReducer InsertVecU64(const FInsertVecU64Args& Value) + static FReducer InsertOneI16(const FInsertOneI16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecU64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_u_64"); + Out.Tag = static_cast(EReducerTag::InsertOneI16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_i_16"); return Out; } - FORCEINLINE bool IsInsertVecU64() const { return Tag == EReducerTag::InsertVecU64; } - FORCEINLINE FInsertVecU64Args GetAsInsertVecU64() const + FORCEINLINE bool IsInsertOneI16() const { return Tag == static_cast(EReducerTag::InsertOneI16); } + FORCEINLINE FInsertOneI16Args GetAsInsertOneI16() const { - ensureMsgf(IsInsertVecU64(), TEXT("Reducer does not hold InsertVecU64!")); - return Data.Get(); + ensureMsgf(IsInsertOneI16(), TEXT("Reducer does not hold InsertOneI16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneI16!")); + return TypedData ? TypedData->Value : FInsertOneI16Args(); } - static FReducer InsertVecU8(const FInsertVecU8Args& Value) + static FReducer InsertOneI256(const FInsertOneI256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecU8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_u_8"); + Out.Tag = static_cast(EReducerTag::InsertOneI256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_i_256"); return Out; } - FORCEINLINE bool IsInsertVecU8() const { return Tag == EReducerTag::InsertVecU8; } - FORCEINLINE FInsertVecU8Args GetAsInsertVecU8() const + FORCEINLINE bool IsInsertOneI256() const { return Tag == static_cast(EReducerTag::InsertOneI256); } + FORCEINLINE FInsertOneI256Args GetAsInsertOneI256() const { - ensureMsgf(IsInsertVecU8(), TEXT("Reducer does not hold InsertVecU8!")); - return Data.Get(); + ensureMsgf(IsInsertOneI256(), TEXT("Reducer does not hold InsertOneI256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneI256!")); + return TypedData ? TypedData->Value : FInsertOneI256Args(); } - static FReducer InsertVecUnitStruct(const FInsertVecUnitStructArgs& Value) + static FReducer InsertOneI32(const FInsertOneI32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecUnitStruct; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_unit_struct"); + Out.Tag = static_cast(EReducerTag::InsertOneI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_i_32"); return Out; } - FORCEINLINE bool IsInsertVecUnitStruct() const { return Tag == EReducerTag::InsertVecUnitStruct; } - FORCEINLINE FInsertVecUnitStructArgs GetAsInsertVecUnitStruct() const + FORCEINLINE bool IsInsertOneI32() const { return Tag == static_cast(EReducerTag::InsertOneI32); } + FORCEINLINE FInsertOneI32Args GetAsInsertOneI32() const { - ensureMsgf(IsInsertVecUnitStruct(), TEXT("Reducer does not hold InsertVecUnitStruct!")); - return Data.Get(); + ensureMsgf(IsInsertOneI32(), TEXT("Reducer does not hold InsertOneI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneI32!")); + return TypedData ? TypedData->Value : FInsertOneI32Args(); } - static FReducer InsertVecUuid(const FInsertVecUuidArgs& Value) + static FReducer InsertOneI64(const FInsertOneI64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::InsertVecUuid; - Out.Data.Set(Value); - Out.ReducerName = TEXT("insert_vec_uuid"); + Out.Tag = static_cast(EReducerTag::InsertOneI64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_i_64"); return Out; } - FORCEINLINE bool IsInsertVecUuid() const { return Tag == EReducerTag::InsertVecUuid; } - FORCEINLINE FInsertVecUuidArgs GetAsInsertVecUuid() const + FORCEINLINE bool IsInsertOneI64() const { return Tag == static_cast(EReducerTag::InsertOneI64); } + FORCEINLINE FInsertOneI64Args GetAsInsertOneI64() const { - ensureMsgf(IsInsertVecUuid(), TEXT("Reducer does not hold InsertVecUuid!")); - return Data.Get(); + ensureMsgf(IsInsertOneI64(), TEXT("Reducer does not hold InsertOneI64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneI64!")); + return TypedData ? TypedData->Value : FInsertOneI64Args(); } - static FReducer NoOpSucceeds(const FNoOpSucceedsArgs& Value) + static FReducer InsertOneI8(const FInsertOneI8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::NoOpSucceeds; - Out.Data.Set(Value); - Out.ReducerName = TEXT("no_op_succeeds"); + Out.Tag = static_cast(EReducerTag::InsertOneI8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_i_8"); return Out; } - FORCEINLINE bool IsNoOpSucceeds() const { return Tag == EReducerTag::NoOpSucceeds; } - FORCEINLINE FNoOpSucceedsArgs GetAsNoOpSucceeds() const + FORCEINLINE bool IsInsertOneI8() const { return Tag == static_cast(EReducerTag::InsertOneI8); } + FORCEINLINE FInsertOneI8Args GetAsInsertOneI8() const { - ensureMsgf(IsNoOpSucceeds(), TEXT("Reducer does not hold NoOpSucceeds!")); - return Data.Get(); + ensureMsgf(IsInsertOneI8(), TEXT("Reducer does not hold InsertOneI8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneI8!")); + return TypedData ? TypedData->Value : FInsertOneI8Args(); } - static FReducer SortedUuidsInsert(const FSortedUuidsInsertArgs& Value) + static FReducer InsertOneIdentity(const FInsertOneIdentityArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::SortedUuidsInsert; - Out.Data.Set(Value); - Out.ReducerName = TEXT("sorted_uuids_insert"); + Out.Tag = static_cast(EReducerTag::InsertOneIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_identity"); return Out; } - FORCEINLINE bool IsSortedUuidsInsert() const { return Tag == EReducerTag::SortedUuidsInsert; } - FORCEINLINE FSortedUuidsInsertArgs GetAsSortedUuidsInsert() const + FORCEINLINE bool IsInsertOneIdentity() const { return Tag == static_cast(EReducerTag::InsertOneIdentity); } + FORCEINLINE FInsertOneIdentityArgs GetAsInsertOneIdentity() const { - ensureMsgf(IsSortedUuidsInsert(), TEXT("Reducer does not hold SortedUuidsInsert!")); - return Data.Get(); + ensureMsgf(IsInsertOneIdentity(), TEXT("Reducer does not hold InsertOneIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneIdentity!")); + return TypedData ? TypedData->Value : FInsertOneIdentityArgs(); } - static FReducer UpdateIndexedSimpleEnum(const FUpdateIndexedSimpleEnumArgs& Value) + static FReducer InsertOneSimpleEnum(const FInsertOneSimpleEnumArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateIndexedSimpleEnum; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_indexed_simple_enum"); + Out.Tag = static_cast(EReducerTag::InsertOneSimpleEnum); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_simple_enum"); return Out; } - FORCEINLINE bool IsUpdateIndexedSimpleEnum() const { return Tag == EReducerTag::UpdateIndexedSimpleEnum; } - FORCEINLINE FUpdateIndexedSimpleEnumArgs GetAsUpdateIndexedSimpleEnum() const + FORCEINLINE bool IsInsertOneSimpleEnum() const { return Tag == static_cast(EReducerTag::InsertOneSimpleEnum); } + FORCEINLINE FInsertOneSimpleEnumArgs GetAsInsertOneSimpleEnum() const { - ensureMsgf(IsUpdateIndexedSimpleEnum(), TEXT("Reducer does not hold UpdateIndexedSimpleEnum!")); - return Data.Get(); + ensureMsgf(IsInsertOneSimpleEnum(), TEXT("Reducer does not hold InsertOneSimpleEnum!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneSimpleEnum!")); + return TypedData ? TypedData->Value : FInsertOneSimpleEnumArgs(); } - static FReducer UpdatePkBool(const FUpdatePkBoolArgs& Value) + static FReducer InsertOneString(const FInsertOneStringArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkBool; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_bool"); + Out.Tag = static_cast(EReducerTag::InsertOneString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_string"); return Out; } - FORCEINLINE bool IsUpdatePkBool() const { return Tag == EReducerTag::UpdatePkBool; } - FORCEINLINE FUpdatePkBoolArgs GetAsUpdatePkBool() const + FORCEINLINE bool IsInsertOneString() const { return Tag == static_cast(EReducerTag::InsertOneString); } + FORCEINLINE FInsertOneStringArgs GetAsInsertOneString() const { - ensureMsgf(IsUpdatePkBool(), TEXT("Reducer does not hold UpdatePkBool!")); - return Data.Get(); + ensureMsgf(IsInsertOneString(), TEXT("Reducer does not hold InsertOneString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneString!")); + return TypedData ? TypedData->Value : FInsertOneStringArgs(); } - static FReducer UpdatePkConnectionId(const FUpdatePkConnectionIdArgs& Value) + static FReducer InsertOneTimestamp(const FInsertOneTimestampArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkConnectionId; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_connection_id"); + Out.Tag = static_cast(EReducerTag::InsertOneTimestamp); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_timestamp"); return Out; } - FORCEINLINE bool IsUpdatePkConnectionId() const { return Tag == EReducerTag::UpdatePkConnectionId; } - FORCEINLINE FUpdatePkConnectionIdArgs GetAsUpdatePkConnectionId() const + FORCEINLINE bool IsInsertOneTimestamp() const { return Tag == static_cast(EReducerTag::InsertOneTimestamp); } + FORCEINLINE FInsertOneTimestampArgs GetAsInsertOneTimestamp() const { - ensureMsgf(IsUpdatePkConnectionId(), TEXT("Reducer does not hold UpdatePkConnectionId!")); - return Data.Get(); + ensureMsgf(IsInsertOneTimestamp(), TEXT("Reducer does not hold InsertOneTimestamp!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneTimestamp!")); + return TypedData ? TypedData->Value : FInsertOneTimestampArgs(); } - static FReducer UpdatePkI128(const FUpdatePkI128Args& Value) + static FReducer InsertOneU128(const FInsertOneU128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkI128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_i_128"); + Out.Tag = static_cast(EReducerTag::InsertOneU128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_u_128"); return Out; } - FORCEINLINE bool IsUpdatePkI128() const { return Tag == EReducerTag::UpdatePkI128; } - FORCEINLINE FUpdatePkI128Args GetAsUpdatePkI128() const + FORCEINLINE bool IsInsertOneU128() const { return Tag == static_cast(EReducerTag::InsertOneU128); } + FORCEINLINE FInsertOneU128Args GetAsInsertOneU128() const { - ensureMsgf(IsUpdatePkI128(), TEXT("Reducer does not hold UpdatePkI128!")); - return Data.Get(); + ensureMsgf(IsInsertOneU128(), TEXT("Reducer does not hold InsertOneU128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneU128!")); + return TypedData ? TypedData->Value : FInsertOneU128Args(); } - static FReducer UpdatePkI16(const FUpdatePkI16Args& Value) + static FReducer InsertOneU16(const FInsertOneU16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkI16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_i_16"); + Out.Tag = static_cast(EReducerTag::InsertOneU16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_u_16"); return Out; } - FORCEINLINE bool IsUpdatePkI16() const { return Tag == EReducerTag::UpdatePkI16; } - FORCEINLINE FUpdatePkI16Args GetAsUpdatePkI16() const + FORCEINLINE bool IsInsertOneU16() const { return Tag == static_cast(EReducerTag::InsertOneU16); } + FORCEINLINE FInsertOneU16Args GetAsInsertOneU16() const { - ensureMsgf(IsUpdatePkI16(), TEXT("Reducer does not hold UpdatePkI16!")); - return Data.Get(); + ensureMsgf(IsInsertOneU16(), TEXT("Reducer does not hold InsertOneU16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneU16!")); + return TypedData ? TypedData->Value : FInsertOneU16Args(); } - static FReducer UpdatePkI256(const FUpdatePkI256Args& Value) + static FReducer InsertOneU256(const FInsertOneU256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkI256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_i_256"); + Out.Tag = static_cast(EReducerTag::InsertOneU256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_u_256"); return Out; } - FORCEINLINE bool IsUpdatePkI256() const { return Tag == EReducerTag::UpdatePkI256; } - FORCEINLINE FUpdatePkI256Args GetAsUpdatePkI256() const + FORCEINLINE bool IsInsertOneU256() const { return Tag == static_cast(EReducerTag::InsertOneU256); } + FORCEINLINE FInsertOneU256Args GetAsInsertOneU256() const { - ensureMsgf(IsUpdatePkI256(), TEXT("Reducer does not hold UpdatePkI256!")); - return Data.Get(); + ensureMsgf(IsInsertOneU256(), TEXT("Reducer does not hold InsertOneU256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneU256!")); + return TypedData ? TypedData->Value : FInsertOneU256Args(); } - static FReducer UpdatePkI32(const FUpdatePkI32Args& Value) + static FReducer InsertOneU32(const FInsertOneU32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkI32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_i_32"); + Out.Tag = static_cast(EReducerTag::InsertOneU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_u_32"); return Out; } - FORCEINLINE bool IsUpdatePkI32() const { return Tag == EReducerTag::UpdatePkI32; } - FORCEINLINE FUpdatePkI32Args GetAsUpdatePkI32() const + FORCEINLINE bool IsInsertOneU32() const { return Tag == static_cast(EReducerTag::InsertOneU32); } + FORCEINLINE FInsertOneU32Args GetAsInsertOneU32() const { - ensureMsgf(IsUpdatePkI32(), TEXT("Reducer does not hold UpdatePkI32!")); - return Data.Get(); + ensureMsgf(IsInsertOneU32(), TEXT("Reducer does not hold InsertOneU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneU32!")); + return TypedData ? TypedData->Value : FInsertOneU32Args(); } - static FReducer UpdatePkI64(const FUpdatePkI64Args& Value) + static FReducer InsertOneU64(const FInsertOneU64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkI64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_i_64"); + Out.Tag = static_cast(EReducerTag::InsertOneU64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_u_64"); return Out; } - FORCEINLINE bool IsUpdatePkI64() const { return Tag == EReducerTag::UpdatePkI64; } - FORCEINLINE FUpdatePkI64Args GetAsUpdatePkI64() const + FORCEINLINE bool IsInsertOneU64() const { return Tag == static_cast(EReducerTag::InsertOneU64); } + FORCEINLINE FInsertOneU64Args GetAsInsertOneU64() const { - ensureMsgf(IsUpdatePkI64(), TEXT("Reducer does not hold UpdatePkI64!")); - return Data.Get(); + ensureMsgf(IsInsertOneU64(), TEXT("Reducer does not hold InsertOneU64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneU64!")); + return TypedData ? TypedData->Value : FInsertOneU64Args(); } - static FReducer UpdatePkI8(const FUpdatePkI8Args& Value) + static FReducer InsertOneU8(const FInsertOneU8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkI8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_i_8"); + Out.Tag = static_cast(EReducerTag::InsertOneU8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_u_8"); return Out; } - FORCEINLINE bool IsUpdatePkI8() const { return Tag == EReducerTag::UpdatePkI8; } - FORCEINLINE FUpdatePkI8Args GetAsUpdatePkI8() const + FORCEINLINE bool IsInsertOneU8() const { return Tag == static_cast(EReducerTag::InsertOneU8); } + FORCEINLINE FInsertOneU8Args GetAsInsertOneU8() const { - ensureMsgf(IsUpdatePkI8(), TEXT("Reducer does not hold UpdatePkI8!")); - return Data.Get(); + ensureMsgf(IsInsertOneU8(), TEXT("Reducer does not hold InsertOneU8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneU8!")); + return TypedData ? TypedData->Value : FInsertOneU8Args(); } - static FReducer UpdatePkIdentity(const FUpdatePkIdentityArgs& Value) + static FReducer InsertOneUnitStruct(const FInsertOneUnitStructArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkIdentity; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_identity"); + Out.Tag = static_cast(EReducerTag::InsertOneUnitStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_unit_struct"); return Out; } - FORCEINLINE bool IsUpdatePkIdentity() const { return Tag == EReducerTag::UpdatePkIdentity; } - FORCEINLINE FUpdatePkIdentityArgs GetAsUpdatePkIdentity() const + FORCEINLINE bool IsInsertOneUnitStruct() const { return Tag == static_cast(EReducerTag::InsertOneUnitStruct); } + FORCEINLINE FInsertOneUnitStructArgs GetAsInsertOneUnitStruct() const { - ensureMsgf(IsUpdatePkIdentity(), TEXT("Reducer does not hold UpdatePkIdentity!")); - return Data.Get(); + ensureMsgf(IsInsertOneUnitStruct(), TEXT("Reducer does not hold InsertOneUnitStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneUnitStruct!")); + return TypedData ? TypedData->Value : FInsertOneUnitStructArgs(); } - static FReducer UpdatePkSimpleEnum(const FUpdatePkSimpleEnumArgs& Value) + static FReducer InsertOneUuid(const FInsertOneUuidArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkSimpleEnum; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_simple_enum"); + Out.Tag = static_cast(EReducerTag::InsertOneUuid); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_one_uuid"); return Out; } - FORCEINLINE bool IsUpdatePkSimpleEnum() const { return Tag == EReducerTag::UpdatePkSimpleEnum; } - FORCEINLINE FUpdatePkSimpleEnumArgs GetAsUpdatePkSimpleEnum() const + FORCEINLINE bool IsInsertOneUuid() const { return Tag == static_cast(EReducerTag::InsertOneUuid); } + FORCEINLINE FInsertOneUuidArgs GetAsInsertOneUuid() const { - ensureMsgf(IsUpdatePkSimpleEnum(), TEXT("Reducer does not hold UpdatePkSimpleEnum!")); - return Data.Get(); + ensureMsgf(IsInsertOneUuid(), TEXT("Reducer does not hold InsertOneUuid!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOneUuid!")); + return TypedData ? TypedData->Value : FInsertOneUuidArgs(); } - static FReducer UpdatePkString(const FUpdatePkStringArgs& Value) + static FReducer InsertOptionEveryPrimitiveStruct(const FInsertOptionEveryPrimitiveStructArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkString; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_string"); + Out.Tag = static_cast(EReducerTag::InsertOptionEveryPrimitiveStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_option_every_primitive_struct"); return Out; } - FORCEINLINE bool IsUpdatePkString() const { return Tag == EReducerTag::UpdatePkString; } - FORCEINLINE FUpdatePkStringArgs GetAsUpdatePkString() const + FORCEINLINE bool IsInsertOptionEveryPrimitiveStruct() const { return Tag == static_cast(EReducerTag::InsertOptionEveryPrimitiveStruct); } + FORCEINLINE FInsertOptionEveryPrimitiveStructArgs GetAsInsertOptionEveryPrimitiveStruct() const { - ensureMsgf(IsUpdatePkString(), TEXT("Reducer does not hold UpdatePkString!")); - return Data.Get(); + ensureMsgf(IsInsertOptionEveryPrimitiveStruct(), TEXT("Reducer does not hold InsertOptionEveryPrimitiveStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOptionEveryPrimitiveStruct!")); + return TypedData ? TypedData->Value : FInsertOptionEveryPrimitiveStructArgs(); } - static FReducer UpdatePkU128(const FUpdatePkU128Args& Value) + static FReducer InsertOptionI32(const FInsertOptionI32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkU128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_u_128"); + Out.Tag = static_cast(EReducerTag::InsertOptionI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_option_i_32"); return Out; } - FORCEINLINE bool IsUpdatePkU128() const { return Tag == EReducerTag::UpdatePkU128; } - FORCEINLINE FUpdatePkU128Args GetAsUpdatePkU128() const + FORCEINLINE bool IsInsertOptionI32() const { return Tag == static_cast(EReducerTag::InsertOptionI32); } + FORCEINLINE FInsertOptionI32Args GetAsInsertOptionI32() const { - ensureMsgf(IsUpdatePkU128(), TEXT("Reducer does not hold UpdatePkU128!")); - return Data.Get(); + ensureMsgf(IsInsertOptionI32(), TEXT("Reducer does not hold InsertOptionI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOptionI32!")); + return TypedData ? TypedData->Value : FInsertOptionI32Args(); } - static FReducer UpdatePkU16(const FUpdatePkU16Args& Value) + static FReducer InsertOptionIdentity(const FInsertOptionIdentityArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkU16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_u_16"); + Out.Tag = static_cast(EReducerTag::InsertOptionIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_option_identity"); return Out; } - FORCEINLINE bool IsUpdatePkU16() const { return Tag == EReducerTag::UpdatePkU16; } - FORCEINLINE FUpdatePkU16Args GetAsUpdatePkU16() const + FORCEINLINE bool IsInsertOptionIdentity() const { return Tag == static_cast(EReducerTag::InsertOptionIdentity); } + FORCEINLINE FInsertOptionIdentityArgs GetAsInsertOptionIdentity() const { - ensureMsgf(IsUpdatePkU16(), TEXT("Reducer does not hold UpdatePkU16!")); - return Data.Get(); + ensureMsgf(IsInsertOptionIdentity(), TEXT("Reducer does not hold InsertOptionIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOptionIdentity!")); + return TypedData ? TypedData->Value : FInsertOptionIdentityArgs(); } - static FReducer UpdatePkU256(const FUpdatePkU256Args& Value) + static FReducer InsertOptionSimpleEnum(const FInsertOptionSimpleEnumArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkU256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_u_256"); + Out.Tag = static_cast(EReducerTag::InsertOptionSimpleEnum); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_option_simple_enum"); return Out; } - FORCEINLINE bool IsUpdatePkU256() const { return Tag == EReducerTag::UpdatePkU256; } - FORCEINLINE FUpdatePkU256Args GetAsUpdatePkU256() const + FORCEINLINE bool IsInsertOptionSimpleEnum() const { return Tag == static_cast(EReducerTag::InsertOptionSimpleEnum); } + FORCEINLINE FInsertOptionSimpleEnumArgs GetAsInsertOptionSimpleEnum() const { - ensureMsgf(IsUpdatePkU256(), TEXT("Reducer does not hold UpdatePkU256!")); - return Data.Get(); + ensureMsgf(IsInsertOptionSimpleEnum(), TEXT("Reducer does not hold InsertOptionSimpleEnum!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOptionSimpleEnum!")); + return TypedData ? TypedData->Value : FInsertOptionSimpleEnumArgs(); } - static FReducer UpdatePkU32(const FUpdatePkU32Args& Value) + static FReducer InsertOptionString(const FInsertOptionStringArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkU32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_u_32"); + Out.Tag = static_cast(EReducerTag::InsertOptionString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_option_string"); return Out; } - FORCEINLINE bool IsUpdatePkU32() const { return Tag == EReducerTag::UpdatePkU32; } - FORCEINLINE FUpdatePkU32Args GetAsUpdatePkU32() const + FORCEINLINE bool IsInsertOptionString() const { return Tag == static_cast(EReducerTag::InsertOptionString); } + FORCEINLINE FInsertOptionStringArgs GetAsInsertOptionString() const { - ensureMsgf(IsUpdatePkU32(), TEXT("Reducer does not hold UpdatePkU32!")); - return Data.Get(); + ensureMsgf(IsInsertOptionString(), TEXT("Reducer does not hold InsertOptionString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOptionString!")); + return TypedData ? TypedData->Value : FInsertOptionStringArgs(); } - static FReducer UpdatePkU32Two(const FUpdatePkU32TwoArgs& Value) + static FReducer InsertOptionUuid(const FInsertOptionUuidArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkU32Two; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_u_32_two"); + Out.Tag = static_cast(EReducerTag::InsertOptionUuid); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_option_uuid"); return Out; } - FORCEINLINE bool IsUpdatePkU32Two() const { return Tag == EReducerTag::UpdatePkU32Two; } - FORCEINLINE FUpdatePkU32TwoArgs GetAsUpdatePkU32Two() const + FORCEINLINE bool IsInsertOptionUuid() const { return Tag == static_cast(EReducerTag::InsertOptionUuid); } + FORCEINLINE FInsertOptionUuidArgs GetAsInsertOptionUuid() const { - ensureMsgf(IsUpdatePkU32Two(), TEXT("Reducer does not hold UpdatePkU32Two!")); - return Data.Get(); + ensureMsgf(IsInsertOptionUuid(), TEXT("Reducer does not hold InsertOptionUuid!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOptionUuid!")); + return TypedData ? TypedData->Value : FInsertOptionUuidArgs(); } - static FReducer UpdatePkU64(const FUpdatePkU64Args& Value) + static FReducer InsertOptionVecOptionI32(const FInsertOptionVecOptionI32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkU64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_u_64"); + Out.Tag = static_cast(EReducerTag::InsertOptionVecOptionI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_option_vec_option_i_32"); return Out; } - FORCEINLINE bool IsUpdatePkU64() const { return Tag == EReducerTag::UpdatePkU64; } - FORCEINLINE FUpdatePkU64Args GetAsUpdatePkU64() const + FORCEINLINE bool IsInsertOptionVecOptionI32() const { return Tag == static_cast(EReducerTag::InsertOptionVecOptionI32); } + FORCEINLINE FInsertOptionVecOptionI32Args GetAsInsertOptionVecOptionI32() const { - ensureMsgf(IsUpdatePkU64(), TEXT("Reducer does not hold UpdatePkU64!")); - return Data.Get(); + ensureMsgf(IsInsertOptionVecOptionI32(), TEXT("Reducer does not hold InsertOptionVecOptionI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertOptionVecOptionI32!")); + return TypedData ? TypedData->Value : FInsertOptionVecOptionI32Args(); } - static FReducer UpdatePkU8(const FUpdatePkU8Args& Value) + static FReducer InsertPkBool(const FInsertPkBoolArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkU8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_u_8"); + Out.Tag = static_cast(EReducerTag::InsertPkBool); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_bool"); return Out; } - FORCEINLINE bool IsUpdatePkU8() const { return Tag == EReducerTag::UpdatePkU8; } - FORCEINLINE FUpdatePkU8Args GetAsUpdatePkU8() const + FORCEINLINE bool IsInsertPkBool() const { return Tag == static_cast(EReducerTag::InsertPkBool); } + FORCEINLINE FInsertPkBoolArgs GetAsInsertPkBool() const { - ensureMsgf(IsUpdatePkU8(), TEXT("Reducer does not hold UpdatePkU8!")); - return Data.Get(); + ensureMsgf(IsInsertPkBool(), TEXT("Reducer does not hold InsertPkBool!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkBool!")); + return TypedData ? TypedData->Value : FInsertPkBoolArgs(); } - static FReducer UpdatePkUuid(const FUpdatePkUuidArgs& Value) + static FReducer InsertPkConnectionId(const FInsertPkConnectionIdArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdatePkUuid; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_pk_uuid"); + Out.Tag = static_cast(EReducerTag::InsertPkConnectionId); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_connection_id"); return Out; } - FORCEINLINE bool IsUpdatePkUuid() const { return Tag == EReducerTag::UpdatePkUuid; } - FORCEINLINE FUpdatePkUuidArgs GetAsUpdatePkUuid() const + FORCEINLINE bool IsInsertPkConnectionId() const { return Tag == static_cast(EReducerTag::InsertPkConnectionId); } + FORCEINLINE FInsertPkConnectionIdArgs GetAsInsertPkConnectionId() const { - ensureMsgf(IsUpdatePkUuid(), TEXT("Reducer does not hold UpdatePkUuid!")); - return Data.Get(); + ensureMsgf(IsInsertPkConnectionId(), TEXT("Reducer does not hold InsertPkConnectionId!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkConnectionId!")); + return TypedData ? TypedData->Value : FInsertPkConnectionIdArgs(); } - static FReducer UpdateUniqueBool(const FUpdateUniqueBoolArgs& Value) + static FReducer InsertPkI128(const FInsertPkI128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueBool; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_bool"); + Out.Tag = static_cast(EReducerTag::InsertPkI128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_i_128"); return Out; } - FORCEINLINE bool IsUpdateUniqueBool() const { return Tag == EReducerTag::UpdateUniqueBool; } - FORCEINLINE FUpdateUniqueBoolArgs GetAsUpdateUniqueBool() const + FORCEINLINE bool IsInsertPkI128() const { return Tag == static_cast(EReducerTag::InsertPkI128); } + FORCEINLINE FInsertPkI128Args GetAsInsertPkI128() const { - ensureMsgf(IsUpdateUniqueBool(), TEXT("Reducer does not hold UpdateUniqueBool!")); - return Data.Get(); + ensureMsgf(IsInsertPkI128(), TEXT("Reducer does not hold InsertPkI128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkI128!")); + return TypedData ? TypedData->Value : FInsertPkI128Args(); } - static FReducer UpdateUniqueConnectionId(const FUpdateUniqueConnectionIdArgs& Value) + static FReducer InsertPkI16(const FInsertPkI16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueConnectionId; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_connection_id"); + Out.Tag = static_cast(EReducerTag::InsertPkI16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_i_16"); return Out; } - FORCEINLINE bool IsUpdateUniqueConnectionId() const { return Tag == EReducerTag::UpdateUniqueConnectionId; } - FORCEINLINE FUpdateUniqueConnectionIdArgs GetAsUpdateUniqueConnectionId() const + FORCEINLINE bool IsInsertPkI16() const { return Tag == static_cast(EReducerTag::InsertPkI16); } + FORCEINLINE FInsertPkI16Args GetAsInsertPkI16() const { - ensureMsgf(IsUpdateUniqueConnectionId(), TEXT("Reducer does not hold UpdateUniqueConnectionId!")); - return Data.Get(); + ensureMsgf(IsInsertPkI16(), TEXT("Reducer does not hold InsertPkI16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkI16!")); + return TypedData ? TypedData->Value : FInsertPkI16Args(); } - static FReducer UpdateUniqueI128(const FUpdateUniqueI128Args& Value) + static FReducer InsertPkI256(const FInsertPkI256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueI128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_i_128"); + Out.Tag = static_cast(EReducerTag::InsertPkI256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_i_256"); return Out; } - FORCEINLINE bool IsUpdateUniqueI128() const { return Tag == EReducerTag::UpdateUniqueI128; } - FORCEINLINE FUpdateUniqueI128Args GetAsUpdateUniqueI128() const + FORCEINLINE bool IsInsertPkI256() const { return Tag == static_cast(EReducerTag::InsertPkI256); } + FORCEINLINE FInsertPkI256Args GetAsInsertPkI256() const { - ensureMsgf(IsUpdateUniqueI128(), TEXT("Reducer does not hold UpdateUniqueI128!")); - return Data.Get(); + ensureMsgf(IsInsertPkI256(), TEXT("Reducer does not hold InsertPkI256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkI256!")); + return TypedData ? TypedData->Value : FInsertPkI256Args(); } - static FReducer UpdateUniqueI16(const FUpdateUniqueI16Args& Value) + static FReducer InsertPkI32(const FInsertPkI32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueI16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_i_16"); + Out.Tag = static_cast(EReducerTag::InsertPkI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_i_32"); return Out; } - FORCEINLINE bool IsUpdateUniqueI16() const { return Tag == EReducerTag::UpdateUniqueI16; } - FORCEINLINE FUpdateUniqueI16Args GetAsUpdateUniqueI16() const + FORCEINLINE bool IsInsertPkI32() const { return Tag == static_cast(EReducerTag::InsertPkI32); } + FORCEINLINE FInsertPkI32Args GetAsInsertPkI32() const { - ensureMsgf(IsUpdateUniqueI16(), TEXT("Reducer does not hold UpdateUniqueI16!")); - return Data.Get(); + ensureMsgf(IsInsertPkI32(), TEXT("Reducer does not hold InsertPkI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkI32!")); + return TypedData ? TypedData->Value : FInsertPkI32Args(); } - static FReducer UpdateUniqueI256(const FUpdateUniqueI256Args& Value) + static FReducer InsertPkI64(const FInsertPkI64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueI256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_i_256"); + Out.Tag = static_cast(EReducerTag::InsertPkI64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_i_64"); return Out; } - FORCEINLINE bool IsUpdateUniqueI256() const { return Tag == EReducerTag::UpdateUniqueI256; } - FORCEINLINE FUpdateUniqueI256Args GetAsUpdateUniqueI256() const + FORCEINLINE bool IsInsertPkI64() const { return Tag == static_cast(EReducerTag::InsertPkI64); } + FORCEINLINE FInsertPkI64Args GetAsInsertPkI64() const { - ensureMsgf(IsUpdateUniqueI256(), TEXT("Reducer does not hold UpdateUniqueI256!")); - return Data.Get(); + ensureMsgf(IsInsertPkI64(), TEXT("Reducer does not hold InsertPkI64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkI64!")); + return TypedData ? TypedData->Value : FInsertPkI64Args(); } - static FReducer UpdateUniqueI32(const FUpdateUniqueI32Args& Value) + static FReducer InsertPkI8(const FInsertPkI8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueI32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_i_32"); + Out.Tag = static_cast(EReducerTag::InsertPkI8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_i_8"); return Out; } - FORCEINLINE bool IsUpdateUniqueI32() const { return Tag == EReducerTag::UpdateUniqueI32; } - FORCEINLINE FUpdateUniqueI32Args GetAsUpdateUniqueI32() const + FORCEINLINE bool IsInsertPkI8() const { return Tag == static_cast(EReducerTag::InsertPkI8); } + FORCEINLINE FInsertPkI8Args GetAsInsertPkI8() const { - ensureMsgf(IsUpdateUniqueI32(), TEXT("Reducer does not hold UpdateUniqueI32!")); - return Data.Get(); + ensureMsgf(IsInsertPkI8(), TEXT("Reducer does not hold InsertPkI8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkI8!")); + return TypedData ? TypedData->Value : FInsertPkI8Args(); } - static FReducer UpdateUniqueI64(const FUpdateUniqueI64Args& Value) + static FReducer InsertPkIdentity(const FInsertPkIdentityArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueI64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_i_64"); + Out.Tag = static_cast(EReducerTag::InsertPkIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_identity"); return Out; } - FORCEINLINE bool IsUpdateUniqueI64() const { return Tag == EReducerTag::UpdateUniqueI64; } - FORCEINLINE FUpdateUniqueI64Args GetAsUpdateUniqueI64() const + FORCEINLINE bool IsInsertPkIdentity() const { return Tag == static_cast(EReducerTag::InsertPkIdentity); } + FORCEINLINE FInsertPkIdentityArgs GetAsInsertPkIdentity() const { - ensureMsgf(IsUpdateUniqueI64(), TEXT("Reducer does not hold UpdateUniqueI64!")); - return Data.Get(); + ensureMsgf(IsInsertPkIdentity(), TEXT("Reducer does not hold InsertPkIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkIdentity!")); + return TypedData ? TypedData->Value : FInsertPkIdentityArgs(); } - static FReducer UpdateUniqueI8(const FUpdateUniqueI8Args& Value) + static FReducer InsertPkSimpleEnum(const FInsertPkSimpleEnumArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueI8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_i_8"); + Out.Tag = static_cast(EReducerTag::InsertPkSimpleEnum); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_simple_enum"); return Out; } - FORCEINLINE bool IsUpdateUniqueI8() const { return Tag == EReducerTag::UpdateUniqueI8; } - FORCEINLINE FUpdateUniqueI8Args GetAsUpdateUniqueI8() const + FORCEINLINE bool IsInsertPkSimpleEnum() const { return Tag == static_cast(EReducerTag::InsertPkSimpleEnum); } + FORCEINLINE FInsertPkSimpleEnumArgs GetAsInsertPkSimpleEnum() const { - ensureMsgf(IsUpdateUniqueI8(), TEXT("Reducer does not hold UpdateUniqueI8!")); - return Data.Get(); + ensureMsgf(IsInsertPkSimpleEnum(), TEXT("Reducer does not hold InsertPkSimpleEnum!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkSimpleEnum!")); + return TypedData ? TypedData->Value : FInsertPkSimpleEnumArgs(); } - static FReducer UpdateUniqueIdentity(const FUpdateUniqueIdentityArgs& Value) + static FReducer InsertPkString(const FInsertPkStringArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueIdentity; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_identity"); + Out.Tag = static_cast(EReducerTag::InsertPkString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_string"); return Out; } - FORCEINLINE bool IsUpdateUniqueIdentity() const { return Tag == EReducerTag::UpdateUniqueIdentity; } - FORCEINLINE FUpdateUniqueIdentityArgs GetAsUpdateUniqueIdentity() const + FORCEINLINE bool IsInsertPkString() const { return Tag == static_cast(EReducerTag::InsertPkString); } + FORCEINLINE FInsertPkStringArgs GetAsInsertPkString() const { - ensureMsgf(IsUpdateUniqueIdentity(), TEXT("Reducer does not hold UpdateUniqueIdentity!")); - return Data.Get(); + ensureMsgf(IsInsertPkString(), TEXT("Reducer does not hold InsertPkString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkString!")); + return TypedData ? TypedData->Value : FInsertPkStringArgs(); } - static FReducer UpdateUniqueString(const FUpdateUniqueStringArgs& Value) + static FReducer InsertPkU128(const FInsertPkU128Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueString; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_string"); + Out.Tag = static_cast(EReducerTag::InsertPkU128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_u_128"); return Out; } - FORCEINLINE bool IsUpdateUniqueString() const { return Tag == EReducerTag::UpdateUniqueString; } - FORCEINLINE FUpdateUniqueStringArgs GetAsUpdateUniqueString() const + FORCEINLINE bool IsInsertPkU128() const { return Tag == static_cast(EReducerTag::InsertPkU128); } + FORCEINLINE FInsertPkU128Args GetAsInsertPkU128() const { - ensureMsgf(IsUpdateUniqueString(), TEXT("Reducer does not hold UpdateUniqueString!")); - return Data.Get(); + ensureMsgf(IsInsertPkU128(), TEXT("Reducer does not hold InsertPkU128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkU128!")); + return TypedData ? TypedData->Value : FInsertPkU128Args(); } - static FReducer UpdateUniqueU128(const FUpdateUniqueU128Args& Value) + static FReducer InsertPkU16(const FInsertPkU16Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueU128; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_u_128"); + Out.Tag = static_cast(EReducerTag::InsertPkU16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_u_16"); return Out; } - FORCEINLINE bool IsUpdateUniqueU128() const { return Tag == EReducerTag::UpdateUniqueU128; } - FORCEINLINE FUpdateUniqueU128Args GetAsUpdateUniqueU128() const + FORCEINLINE bool IsInsertPkU16() const { return Tag == static_cast(EReducerTag::InsertPkU16); } + FORCEINLINE FInsertPkU16Args GetAsInsertPkU16() const { - ensureMsgf(IsUpdateUniqueU128(), TEXT("Reducer does not hold UpdateUniqueU128!")); - return Data.Get(); + ensureMsgf(IsInsertPkU16(), TEXT("Reducer does not hold InsertPkU16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkU16!")); + return TypedData ? TypedData->Value : FInsertPkU16Args(); } - static FReducer UpdateUniqueU16(const FUpdateUniqueU16Args& Value) + static FReducer InsertPkU256(const FInsertPkU256Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueU16; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_u_16"); + Out.Tag = static_cast(EReducerTag::InsertPkU256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_u_256"); return Out; } - FORCEINLINE bool IsUpdateUniqueU16() const { return Tag == EReducerTag::UpdateUniqueU16; } - FORCEINLINE FUpdateUniqueU16Args GetAsUpdateUniqueU16() const + FORCEINLINE bool IsInsertPkU256() const { return Tag == static_cast(EReducerTag::InsertPkU256); } + FORCEINLINE FInsertPkU256Args GetAsInsertPkU256() const { - ensureMsgf(IsUpdateUniqueU16(), TEXT("Reducer does not hold UpdateUniqueU16!")); - return Data.Get(); + ensureMsgf(IsInsertPkU256(), TEXT("Reducer does not hold InsertPkU256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkU256!")); + return TypedData ? TypedData->Value : FInsertPkU256Args(); } - static FReducer UpdateUniqueU256(const FUpdateUniqueU256Args& Value) + static FReducer InsertPkU32(const FInsertPkU32Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueU256; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_u_256"); + Out.Tag = static_cast(EReducerTag::InsertPkU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_u_32"); return Out; } - FORCEINLINE bool IsUpdateUniqueU256() const { return Tag == EReducerTag::UpdateUniqueU256; } - FORCEINLINE FUpdateUniqueU256Args GetAsUpdateUniqueU256() const + FORCEINLINE bool IsInsertPkU32() const { return Tag == static_cast(EReducerTag::InsertPkU32); } + FORCEINLINE FInsertPkU32Args GetAsInsertPkU32() const { - ensureMsgf(IsUpdateUniqueU256(), TEXT("Reducer does not hold UpdateUniqueU256!")); - return Data.Get(); + ensureMsgf(IsInsertPkU32(), TEXT("Reducer does not hold InsertPkU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkU32!")); + return TypedData ? TypedData->Value : FInsertPkU32Args(); } - static FReducer UpdateUniqueU32(const FUpdateUniqueU32Args& Value) + static FReducer InsertPkU32Two(const FInsertPkU32TwoArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueU32; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_u_32"); + Out.Tag = static_cast(EReducerTag::InsertPkU32Two); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_u_32_two"); return Out; } - FORCEINLINE bool IsUpdateUniqueU32() const { return Tag == EReducerTag::UpdateUniqueU32; } - FORCEINLINE FUpdateUniqueU32Args GetAsUpdateUniqueU32() const + FORCEINLINE bool IsInsertPkU32Two() const { return Tag == static_cast(EReducerTag::InsertPkU32Two); } + FORCEINLINE FInsertPkU32TwoArgs GetAsInsertPkU32Two() const { - ensureMsgf(IsUpdateUniqueU32(), TEXT("Reducer does not hold UpdateUniqueU32!")); - return Data.Get(); + ensureMsgf(IsInsertPkU32Two(), TEXT("Reducer does not hold InsertPkU32Two!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkU32Two!")); + return TypedData ? TypedData->Value : FInsertPkU32TwoArgs(); } - static FReducer UpdateUniqueU64(const FUpdateUniqueU64Args& Value) + static FReducer InsertPkU64(const FInsertPkU64Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueU64; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_u_64"); + Out.Tag = static_cast(EReducerTag::InsertPkU64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_u_64"); return Out; } - FORCEINLINE bool IsUpdateUniqueU64() const { return Tag == EReducerTag::UpdateUniqueU64; } - FORCEINLINE FUpdateUniqueU64Args GetAsUpdateUniqueU64() const + FORCEINLINE bool IsInsertPkU64() const { return Tag == static_cast(EReducerTag::InsertPkU64); } + FORCEINLINE FInsertPkU64Args GetAsInsertPkU64() const { - ensureMsgf(IsUpdateUniqueU64(), TEXT("Reducer does not hold UpdateUniqueU64!")); - return Data.Get(); + ensureMsgf(IsInsertPkU64(), TEXT("Reducer does not hold InsertPkU64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkU64!")); + return TypedData ? TypedData->Value : FInsertPkU64Args(); } - static FReducer UpdateUniqueU8(const FUpdateUniqueU8Args& Value) + static FReducer InsertPkU8(const FInsertPkU8Args& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueU8; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_u_8"); + Out.Tag = static_cast(EReducerTag::InsertPkU8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_u_8"); return Out; } - FORCEINLINE bool IsUpdateUniqueU8() const { return Tag == EReducerTag::UpdateUniqueU8; } - FORCEINLINE FUpdateUniqueU8Args GetAsUpdateUniqueU8() const + FORCEINLINE bool IsInsertPkU8() const { return Tag == static_cast(EReducerTag::InsertPkU8); } + FORCEINLINE FInsertPkU8Args GetAsInsertPkU8() const { - ensureMsgf(IsUpdateUniqueU8(), TEXT("Reducer does not hold UpdateUniqueU8!")); - return Data.Get(); + ensureMsgf(IsInsertPkU8(), TEXT("Reducer does not hold InsertPkU8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkU8!")); + return TypedData ? TypedData->Value : FInsertPkU8Args(); } - static FReducer UpdateUniqueUuid(const FUpdateUniqueUuidArgs& Value) + static FReducer InsertPkUuid(const FInsertPkUuidArgs& Value) { FReducer Out; - Out.Tag = EReducerTag::UpdateUniqueUuid; - Out.Data.Set(Value); - Out.ReducerName = TEXT("update_unique_uuid"); + Out.Tag = static_cast(EReducerTag::InsertPkUuid); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_pk_uuid"); return Out; } - FORCEINLINE bool IsUpdateUniqueUuid() const { return Tag == EReducerTag::UpdateUniqueUuid; } - FORCEINLINE FUpdateUniqueUuidArgs GetAsUpdateUniqueUuid() const + FORCEINLINE bool IsInsertPkUuid() const { return Tag == static_cast(EReducerTag::InsertPkUuid); } + FORCEINLINE FInsertPkUuidArgs GetAsInsertPkUuid() const { - ensureMsgf(IsUpdateUniqueUuid(), TEXT("Reducer does not hold UpdateUniqueUuid!")); - return Data.Get(); + ensureMsgf(IsInsertPkUuid(), TEXT("Reducer does not hold InsertPkUuid!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPkUuid!")); + return TypedData ? TypedData->Value : FInsertPkUuidArgs(); } - FORCEINLINE bool operator==(const FReducer& Other) const + static FReducer InsertPrimitivesAsStrings(const FInsertPrimitivesAsStringsArgs& Value) { - if (Tag != Other.Tag || ReducerId != Other.ReducerId || RequestId != Other.RequestId || ReducerName != Other.ReducerName) return false; - switch (Tag) - { - case EReducerTag::DeleteFromBtreeU32: - return GetAsDeleteFromBtreeU32() == Other.GetAsDeleteFromBtreeU32(); - case EReducerTag::DeleteLargeTable: - return GetAsDeleteLargeTable() == Other.GetAsDeleteLargeTable(); - case EReducerTag::DeletePkBool: - return GetAsDeletePkBool() == Other.GetAsDeletePkBool(); - case EReducerTag::DeletePkConnectionId: - return GetAsDeletePkConnectionId() == Other.GetAsDeletePkConnectionId(); - case EReducerTag::DeletePkI128: - return GetAsDeletePkI128() == Other.GetAsDeletePkI128(); - case EReducerTag::DeletePkI16: - return GetAsDeletePkI16() == Other.GetAsDeletePkI16(); - case EReducerTag::DeletePkI256: - return GetAsDeletePkI256() == Other.GetAsDeletePkI256(); - case EReducerTag::DeletePkI32: - return GetAsDeletePkI32() == Other.GetAsDeletePkI32(); - case EReducerTag::DeletePkI64: - return GetAsDeletePkI64() == Other.GetAsDeletePkI64(); - case EReducerTag::DeletePkI8: - return GetAsDeletePkI8() == Other.GetAsDeletePkI8(); - case EReducerTag::DeletePkIdentity: - return GetAsDeletePkIdentity() == Other.GetAsDeletePkIdentity(); - case EReducerTag::DeletePkString: - return GetAsDeletePkString() == Other.GetAsDeletePkString(); - case EReducerTag::DeletePkU128: - return GetAsDeletePkU128() == Other.GetAsDeletePkU128(); - case EReducerTag::DeletePkU16: - return GetAsDeletePkU16() == Other.GetAsDeletePkU16(); - case EReducerTag::DeletePkU256: - return GetAsDeletePkU256() == Other.GetAsDeletePkU256(); - case EReducerTag::DeletePkU32: - return GetAsDeletePkU32() == Other.GetAsDeletePkU32(); - case EReducerTag::DeletePkU32InsertPkU32Two: - return GetAsDeletePkU32InsertPkU32Two() == Other.GetAsDeletePkU32InsertPkU32Two(); - case EReducerTag::DeletePkU32Two: - return GetAsDeletePkU32Two() == Other.GetAsDeletePkU32Two(); - case EReducerTag::DeletePkU64: - return GetAsDeletePkU64() == Other.GetAsDeletePkU64(); - case EReducerTag::DeletePkU8: - return GetAsDeletePkU8() == Other.GetAsDeletePkU8(); - case EReducerTag::DeletePkUuid: - return GetAsDeletePkUuid() == Other.GetAsDeletePkUuid(); - case EReducerTag::DeleteUniqueBool: - return GetAsDeleteUniqueBool() == Other.GetAsDeleteUniqueBool(); - case EReducerTag::DeleteUniqueConnectionId: - return GetAsDeleteUniqueConnectionId() == Other.GetAsDeleteUniqueConnectionId(); - case EReducerTag::DeleteUniqueI128: - return GetAsDeleteUniqueI128() == Other.GetAsDeleteUniqueI128(); - case EReducerTag::DeleteUniqueI16: - return GetAsDeleteUniqueI16() == Other.GetAsDeleteUniqueI16(); - case EReducerTag::DeleteUniqueI256: - return GetAsDeleteUniqueI256() == Other.GetAsDeleteUniqueI256(); - case EReducerTag::DeleteUniqueI32: - return GetAsDeleteUniqueI32() == Other.GetAsDeleteUniqueI32(); - case EReducerTag::DeleteUniqueI64: - return GetAsDeleteUniqueI64() == Other.GetAsDeleteUniqueI64(); - case EReducerTag::DeleteUniqueI8: - return GetAsDeleteUniqueI8() == Other.GetAsDeleteUniqueI8(); - case EReducerTag::DeleteUniqueIdentity: - return GetAsDeleteUniqueIdentity() == Other.GetAsDeleteUniqueIdentity(); - case EReducerTag::DeleteUniqueString: - return GetAsDeleteUniqueString() == Other.GetAsDeleteUniqueString(); - case EReducerTag::DeleteUniqueU128: - return GetAsDeleteUniqueU128() == Other.GetAsDeleteUniqueU128(); - case EReducerTag::DeleteUniqueU16: - return GetAsDeleteUniqueU16() == Other.GetAsDeleteUniqueU16(); - case EReducerTag::DeleteUniqueU256: - return GetAsDeleteUniqueU256() == Other.GetAsDeleteUniqueU256(); - case EReducerTag::DeleteUniqueU32: - return GetAsDeleteUniqueU32() == Other.GetAsDeleteUniqueU32(); - case EReducerTag::DeleteUniqueU64: - return GetAsDeleteUniqueU64() == Other.GetAsDeleteUniqueU64(); - case EReducerTag::DeleteUniqueU8: - return GetAsDeleteUniqueU8() == Other.GetAsDeleteUniqueU8(); - case EReducerTag::DeleteUniqueUuid: - return GetAsDeleteUniqueUuid() == Other.GetAsDeleteUniqueUuid(); - case EReducerTag::InsertCallTimestamp: - return GetAsInsertCallTimestamp() == Other.GetAsInsertCallTimestamp(); - case EReducerTag::InsertCallUuidV4: - return GetAsInsertCallUuidV4() == Other.GetAsInsertCallUuidV4(); - case EReducerTag::InsertCallUuidV7: - return GetAsInsertCallUuidV7() == Other.GetAsInsertCallUuidV7(); - case EReducerTag::InsertCallerOneConnectionId: - return GetAsInsertCallerOneConnectionId() == Other.GetAsInsertCallerOneConnectionId(); - case EReducerTag::InsertCallerOneIdentity: - return GetAsInsertCallerOneIdentity() == Other.GetAsInsertCallerOneIdentity(); - case EReducerTag::InsertCallerPkConnectionId: - return GetAsInsertCallerPkConnectionId() == Other.GetAsInsertCallerPkConnectionId(); - case EReducerTag::InsertCallerPkIdentity: - return GetAsInsertCallerPkIdentity() == Other.GetAsInsertCallerPkIdentity(); - case EReducerTag::InsertCallerUniqueConnectionId: - return GetAsInsertCallerUniqueConnectionId() == Other.GetAsInsertCallerUniqueConnectionId(); - case EReducerTag::InsertCallerUniqueIdentity: - return GetAsInsertCallerUniqueIdentity() == Other.GetAsInsertCallerUniqueIdentity(); - case EReducerTag::InsertCallerVecConnectionId: - return GetAsInsertCallerVecConnectionId() == Other.GetAsInsertCallerVecConnectionId(); - case EReducerTag::InsertCallerVecIdentity: - return GetAsInsertCallerVecIdentity() == Other.GetAsInsertCallerVecIdentity(); - case EReducerTag::InsertIntoBtreeU32: - return GetAsInsertIntoBtreeU32() == Other.GetAsInsertIntoBtreeU32(); - case EReducerTag::InsertIntoIndexedSimpleEnum: - return GetAsInsertIntoIndexedSimpleEnum() == Other.GetAsInsertIntoIndexedSimpleEnum(); - case EReducerTag::InsertIntoPkBtreeU32: - return GetAsInsertIntoPkBtreeU32() == Other.GetAsInsertIntoPkBtreeU32(); - case EReducerTag::InsertLargeTable: - return GetAsInsertLargeTable() == Other.GetAsInsertLargeTable(); - case EReducerTag::InsertOneBool: - return GetAsInsertOneBool() == Other.GetAsInsertOneBool(); - case EReducerTag::InsertOneByteStruct: - return GetAsInsertOneByteStruct() == Other.GetAsInsertOneByteStruct(); - case EReducerTag::InsertOneConnectionId: - return GetAsInsertOneConnectionId() == Other.GetAsInsertOneConnectionId(); - case EReducerTag::InsertOneEnumWithPayload: - return GetAsInsertOneEnumWithPayload() == Other.GetAsInsertOneEnumWithPayload(); - case EReducerTag::InsertOneEveryPrimitiveStruct: - return GetAsInsertOneEveryPrimitiveStruct() == Other.GetAsInsertOneEveryPrimitiveStruct(); - case EReducerTag::InsertOneEveryVecStruct: - return GetAsInsertOneEveryVecStruct() == Other.GetAsInsertOneEveryVecStruct(); - case EReducerTag::InsertOneF32: - return GetAsInsertOneF32() == Other.GetAsInsertOneF32(); - case EReducerTag::InsertOneF64: - return GetAsInsertOneF64() == Other.GetAsInsertOneF64(); - case EReducerTag::InsertOneI128: - return GetAsInsertOneI128() == Other.GetAsInsertOneI128(); - case EReducerTag::InsertOneI16: - return GetAsInsertOneI16() == Other.GetAsInsertOneI16(); - case EReducerTag::InsertOneI256: - return GetAsInsertOneI256() == Other.GetAsInsertOneI256(); - case EReducerTag::InsertOneI32: - return GetAsInsertOneI32() == Other.GetAsInsertOneI32(); - case EReducerTag::InsertOneI64: - return GetAsInsertOneI64() == Other.GetAsInsertOneI64(); - case EReducerTag::InsertOneI8: - return GetAsInsertOneI8() == Other.GetAsInsertOneI8(); - case EReducerTag::InsertOneIdentity: - return GetAsInsertOneIdentity() == Other.GetAsInsertOneIdentity(); - case EReducerTag::InsertOneSimpleEnum: - return GetAsInsertOneSimpleEnum() == Other.GetAsInsertOneSimpleEnum(); - case EReducerTag::InsertOneString: - return GetAsInsertOneString() == Other.GetAsInsertOneString(); - case EReducerTag::InsertOneTimestamp: - return GetAsInsertOneTimestamp() == Other.GetAsInsertOneTimestamp(); - case EReducerTag::InsertOneU128: - return GetAsInsertOneU128() == Other.GetAsInsertOneU128(); - case EReducerTag::InsertOneU16: - return GetAsInsertOneU16() == Other.GetAsInsertOneU16(); - case EReducerTag::InsertOneU256: - return GetAsInsertOneU256() == Other.GetAsInsertOneU256(); - case EReducerTag::InsertOneU32: - return GetAsInsertOneU32() == Other.GetAsInsertOneU32(); - case EReducerTag::InsertOneU64: - return GetAsInsertOneU64() == Other.GetAsInsertOneU64(); - case EReducerTag::InsertOneU8: - return GetAsInsertOneU8() == Other.GetAsInsertOneU8(); - case EReducerTag::InsertOneUnitStruct: - return GetAsInsertOneUnitStruct() == Other.GetAsInsertOneUnitStruct(); - case EReducerTag::InsertOneUuid: - return GetAsInsertOneUuid() == Other.GetAsInsertOneUuid(); - case EReducerTag::InsertOptionEveryPrimitiveStruct: - return GetAsInsertOptionEveryPrimitiveStruct() == Other.GetAsInsertOptionEveryPrimitiveStruct(); - case EReducerTag::InsertOptionI32: - return GetAsInsertOptionI32() == Other.GetAsInsertOptionI32(); - case EReducerTag::InsertOptionIdentity: - return GetAsInsertOptionIdentity() == Other.GetAsInsertOptionIdentity(); - case EReducerTag::InsertOptionSimpleEnum: - return GetAsInsertOptionSimpleEnum() == Other.GetAsInsertOptionSimpleEnum(); - case EReducerTag::InsertOptionString: - return GetAsInsertOptionString() == Other.GetAsInsertOptionString(); - case EReducerTag::InsertOptionUuid: - return GetAsInsertOptionUuid() == Other.GetAsInsertOptionUuid(); - case EReducerTag::InsertOptionVecOptionI32: - return GetAsInsertOptionVecOptionI32() == Other.GetAsInsertOptionVecOptionI32(); - case EReducerTag::InsertPkBool: - return GetAsInsertPkBool() == Other.GetAsInsertPkBool(); - case EReducerTag::InsertPkConnectionId: - return GetAsInsertPkConnectionId() == Other.GetAsInsertPkConnectionId(); - case EReducerTag::InsertPkI128: - return GetAsInsertPkI128() == Other.GetAsInsertPkI128(); - case EReducerTag::InsertPkI16: - return GetAsInsertPkI16() == Other.GetAsInsertPkI16(); - case EReducerTag::InsertPkI256: - return GetAsInsertPkI256() == Other.GetAsInsertPkI256(); - case EReducerTag::InsertPkI32: - return GetAsInsertPkI32() == Other.GetAsInsertPkI32(); - case EReducerTag::InsertPkI64: - return GetAsInsertPkI64() == Other.GetAsInsertPkI64(); - case EReducerTag::InsertPkI8: - return GetAsInsertPkI8() == Other.GetAsInsertPkI8(); - case EReducerTag::InsertPkIdentity: - return GetAsInsertPkIdentity() == Other.GetAsInsertPkIdentity(); - case EReducerTag::InsertPkSimpleEnum: - return GetAsInsertPkSimpleEnum() == Other.GetAsInsertPkSimpleEnum(); - case EReducerTag::InsertPkString: - return GetAsInsertPkString() == Other.GetAsInsertPkString(); - case EReducerTag::InsertPkU128: - return GetAsInsertPkU128() == Other.GetAsInsertPkU128(); - case EReducerTag::InsertPkU16: - return GetAsInsertPkU16() == Other.GetAsInsertPkU16(); - case EReducerTag::InsertPkU256: - return GetAsInsertPkU256() == Other.GetAsInsertPkU256(); - case EReducerTag::InsertPkU32: - return GetAsInsertPkU32() == Other.GetAsInsertPkU32(); - case EReducerTag::InsertPkU32Two: - return GetAsInsertPkU32Two() == Other.GetAsInsertPkU32Two(); - case EReducerTag::InsertPkU64: - return GetAsInsertPkU64() == Other.GetAsInsertPkU64(); - case EReducerTag::InsertPkU8: - return GetAsInsertPkU8() == Other.GetAsInsertPkU8(); - case EReducerTag::InsertPkUuid: - return GetAsInsertPkUuid() == Other.GetAsInsertPkUuid(); - case EReducerTag::InsertPrimitivesAsStrings: - return GetAsInsertPrimitivesAsStrings() == Other.GetAsInsertPrimitivesAsStrings(); - case EReducerTag::InsertResultEveryPrimitiveStructString: - return GetAsInsertResultEveryPrimitiveStructString() == Other.GetAsInsertResultEveryPrimitiveStructString(); - case EReducerTag::InsertResultI32String: - return GetAsInsertResultI32String() == Other.GetAsInsertResultI32String(); - case EReducerTag::InsertResultIdentityString: - return GetAsInsertResultIdentityString() == Other.GetAsInsertResultIdentityString(); - case EReducerTag::InsertResultSimpleEnumI32: - return GetAsInsertResultSimpleEnumI32() == Other.GetAsInsertResultSimpleEnumI32(); - case EReducerTag::InsertResultStringI32: - return GetAsInsertResultStringI32() == Other.GetAsInsertResultStringI32(); - case EReducerTag::InsertResultVecI32String: - return GetAsInsertResultVecI32String() == Other.GetAsInsertResultVecI32String(); - case EReducerTag::InsertTableHoldsTable: - return GetAsInsertTableHoldsTable() == Other.GetAsInsertTableHoldsTable(); - case EReducerTag::InsertUniqueBool: - return GetAsInsertUniqueBool() == Other.GetAsInsertUniqueBool(); - case EReducerTag::InsertUniqueConnectionId: - return GetAsInsertUniqueConnectionId() == Other.GetAsInsertUniqueConnectionId(); - case EReducerTag::InsertUniqueI128: - return GetAsInsertUniqueI128() == Other.GetAsInsertUniqueI128(); - case EReducerTag::InsertUniqueI16: - return GetAsInsertUniqueI16() == Other.GetAsInsertUniqueI16(); - case EReducerTag::InsertUniqueI256: - return GetAsInsertUniqueI256() == Other.GetAsInsertUniqueI256(); - case EReducerTag::InsertUniqueI32: - return GetAsInsertUniqueI32() == Other.GetAsInsertUniqueI32(); - case EReducerTag::InsertUniqueI64: - return GetAsInsertUniqueI64() == Other.GetAsInsertUniqueI64(); - case EReducerTag::InsertUniqueI8: - return GetAsInsertUniqueI8() == Other.GetAsInsertUniqueI8(); - case EReducerTag::InsertUniqueIdentity: - return GetAsInsertUniqueIdentity() == Other.GetAsInsertUniqueIdentity(); - case EReducerTag::InsertUniqueString: - return GetAsInsertUniqueString() == Other.GetAsInsertUniqueString(); - case EReducerTag::InsertUniqueU128: - return GetAsInsertUniqueU128() == Other.GetAsInsertUniqueU128(); - case EReducerTag::InsertUniqueU16: - return GetAsInsertUniqueU16() == Other.GetAsInsertUniqueU16(); - case EReducerTag::InsertUniqueU256: - return GetAsInsertUniqueU256() == Other.GetAsInsertUniqueU256(); - case EReducerTag::InsertUniqueU32: - return GetAsInsertUniqueU32() == Other.GetAsInsertUniqueU32(); - case EReducerTag::InsertUniqueU32UpdatePkU32: - return GetAsInsertUniqueU32UpdatePkU32() == Other.GetAsInsertUniqueU32UpdatePkU32(); - case EReducerTag::InsertUniqueU64: - return GetAsInsertUniqueU64() == Other.GetAsInsertUniqueU64(); - case EReducerTag::InsertUniqueU8: - return GetAsInsertUniqueU8() == Other.GetAsInsertUniqueU8(); - case EReducerTag::InsertUniqueUuid: - return GetAsInsertUniqueUuid() == Other.GetAsInsertUniqueUuid(); - case EReducerTag::InsertUser: - return GetAsInsertUser() == Other.GetAsInsertUser(); - case EReducerTag::InsertVecBool: - return GetAsInsertVecBool() == Other.GetAsInsertVecBool(); - case EReducerTag::InsertVecByteStruct: - return GetAsInsertVecByteStruct() == Other.GetAsInsertVecByteStruct(); - case EReducerTag::InsertVecConnectionId: - return GetAsInsertVecConnectionId() == Other.GetAsInsertVecConnectionId(); - case EReducerTag::InsertVecEnumWithPayload: - return GetAsInsertVecEnumWithPayload() == Other.GetAsInsertVecEnumWithPayload(); - case EReducerTag::InsertVecEveryPrimitiveStruct: - return GetAsInsertVecEveryPrimitiveStruct() == Other.GetAsInsertVecEveryPrimitiveStruct(); - case EReducerTag::InsertVecEveryVecStruct: - return GetAsInsertVecEveryVecStruct() == Other.GetAsInsertVecEveryVecStruct(); - case EReducerTag::InsertVecF32: - return GetAsInsertVecF32() == Other.GetAsInsertVecF32(); - case EReducerTag::InsertVecF64: - return GetAsInsertVecF64() == Other.GetAsInsertVecF64(); - case EReducerTag::InsertVecI128: - return GetAsInsertVecI128() == Other.GetAsInsertVecI128(); - case EReducerTag::InsertVecI16: - return GetAsInsertVecI16() == Other.GetAsInsertVecI16(); - case EReducerTag::InsertVecI256: - return GetAsInsertVecI256() == Other.GetAsInsertVecI256(); - case EReducerTag::InsertVecI32: - return GetAsInsertVecI32() == Other.GetAsInsertVecI32(); - case EReducerTag::InsertVecI64: - return GetAsInsertVecI64() == Other.GetAsInsertVecI64(); - case EReducerTag::InsertVecI8: - return GetAsInsertVecI8() == Other.GetAsInsertVecI8(); - case EReducerTag::InsertVecIdentity: - return GetAsInsertVecIdentity() == Other.GetAsInsertVecIdentity(); - case EReducerTag::InsertVecSimpleEnum: - return GetAsInsertVecSimpleEnum() == Other.GetAsInsertVecSimpleEnum(); - case EReducerTag::InsertVecString: - return GetAsInsertVecString() == Other.GetAsInsertVecString(); - case EReducerTag::InsertVecTimestamp: - return GetAsInsertVecTimestamp() == Other.GetAsInsertVecTimestamp(); - case EReducerTag::InsertVecU128: - return GetAsInsertVecU128() == Other.GetAsInsertVecU128(); - case EReducerTag::InsertVecU16: - return GetAsInsertVecU16() == Other.GetAsInsertVecU16(); - case EReducerTag::InsertVecU256: - return GetAsInsertVecU256() == Other.GetAsInsertVecU256(); - case EReducerTag::InsertVecU32: - return GetAsInsertVecU32() == Other.GetAsInsertVecU32(); - case EReducerTag::InsertVecU64: - return GetAsInsertVecU64() == Other.GetAsInsertVecU64(); - case EReducerTag::InsertVecU8: - return GetAsInsertVecU8() == Other.GetAsInsertVecU8(); - case EReducerTag::InsertVecUnitStruct: - return GetAsInsertVecUnitStruct() == Other.GetAsInsertVecUnitStruct(); - case EReducerTag::InsertVecUuid: - return GetAsInsertVecUuid() == Other.GetAsInsertVecUuid(); - case EReducerTag::NoOpSucceeds: - return GetAsNoOpSucceeds() == Other.GetAsNoOpSucceeds(); - case EReducerTag::SortedUuidsInsert: - return GetAsSortedUuidsInsert() == Other.GetAsSortedUuidsInsert(); - case EReducerTag::UpdateIndexedSimpleEnum: - return GetAsUpdateIndexedSimpleEnum() == Other.GetAsUpdateIndexedSimpleEnum(); - case EReducerTag::UpdatePkBool: - return GetAsUpdatePkBool() == Other.GetAsUpdatePkBool(); - case EReducerTag::UpdatePkConnectionId: - return GetAsUpdatePkConnectionId() == Other.GetAsUpdatePkConnectionId(); - case EReducerTag::UpdatePkI128: - return GetAsUpdatePkI128() == Other.GetAsUpdatePkI128(); - case EReducerTag::UpdatePkI16: - return GetAsUpdatePkI16() == Other.GetAsUpdatePkI16(); - case EReducerTag::UpdatePkI256: - return GetAsUpdatePkI256() == Other.GetAsUpdatePkI256(); - case EReducerTag::UpdatePkI32: - return GetAsUpdatePkI32() == Other.GetAsUpdatePkI32(); - case EReducerTag::UpdatePkI64: - return GetAsUpdatePkI64() == Other.GetAsUpdatePkI64(); - case EReducerTag::UpdatePkI8: - return GetAsUpdatePkI8() == Other.GetAsUpdatePkI8(); - case EReducerTag::UpdatePkIdentity: - return GetAsUpdatePkIdentity() == Other.GetAsUpdatePkIdentity(); - case EReducerTag::UpdatePkSimpleEnum: - return GetAsUpdatePkSimpleEnum() == Other.GetAsUpdatePkSimpleEnum(); - case EReducerTag::UpdatePkString: - return GetAsUpdatePkString() == Other.GetAsUpdatePkString(); - case EReducerTag::UpdatePkU128: - return GetAsUpdatePkU128() == Other.GetAsUpdatePkU128(); - case EReducerTag::UpdatePkU16: - return GetAsUpdatePkU16() == Other.GetAsUpdatePkU16(); - case EReducerTag::UpdatePkU256: - return GetAsUpdatePkU256() == Other.GetAsUpdatePkU256(); - case EReducerTag::UpdatePkU32: - return GetAsUpdatePkU32() == Other.GetAsUpdatePkU32(); - case EReducerTag::UpdatePkU32Two: - return GetAsUpdatePkU32Two() == Other.GetAsUpdatePkU32Two(); - case EReducerTag::UpdatePkU64: - return GetAsUpdatePkU64() == Other.GetAsUpdatePkU64(); - case EReducerTag::UpdatePkU8: - return GetAsUpdatePkU8() == Other.GetAsUpdatePkU8(); - case EReducerTag::UpdatePkUuid: - return GetAsUpdatePkUuid() == Other.GetAsUpdatePkUuid(); - case EReducerTag::UpdateUniqueBool: - return GetAsUpdateUniqueBool() == Other.GetAsUpdateUniqueBool(); - case EReducerTag::UpdateUniqueConnectionId: - return GetAsUpdateUniqueConnectionId() == Other.GetAsUpdateUniqueConnectionId(); - case EReducerTag::UpdateUniqueI128: - return GetAsUpdateUniqueI128() == Other.GetAsUpdateUniqueI128(); - case EReducerTag::UpdateUniqueI16: - return GetAsUpdateUniqueI16() == Other.GetAsUpdateUniqueI16(); - case EReducerTag::UpdateUniqueI256: - return GetAsUpdateUniqueI256() == Other.GetAsUpdateUniqueI256(); - case EReducerTag::UpdateUniqueI32: - return GetAsUpdateUniqueI32() == Other.GetAsUpdateUniqueI32(); - case EReducerTag::UpdateUniqueI64: - return GetAsUpdateUniqueI64() == Other.GetAsUpdateUniqueI64(); - case EReducerTag::UpdateUniqueI8: - return GetAsUpdateUniqueI8() == Other.GetAsUpdateUniqueI8(); - case EReducerTag::UpdateUniqueIdentity: - return GetAsUpdateUniqueIdentity() == Other.GetAsUpdateUniqueIdentity(); - case EReducerTag::UpdateUniqueString: - return GetAsUpdateUniqueString() == Other.GetAsUpdateUniqueString(); - case EReducerTag::UpdateUniqueU128: - return GetAsUpdateUniqueU128() == Other.GetAsUpdateUniqueU128(); - case EReducerTag::UpdateUniqueU16: - return GetAsUpdateUniqueU16() == Other.GetAsUpdateUniqueU16(); - case EReducerTag::UpdateUniqueU256: - return GetAsUpdateUniqueU256() == Other.GetAsUpdateUniqueU256(); - case EReducerTag::UpdateUniqueU32: - return GetAsUpdateUniqueU32() == Other.GetAsUpdateUniqueU32(); - case EReducerTag::UpdateUniqueU64: - return GetAsUpdateUniqueU64() == Other.GetAsUpdateUniqueU64(); - case EReducerTag::UpdateUniqueU8: - return GetAsUpdateUniqueU8() == Other.GetAsUpdateUniqueU8(); - case EReducerTag::UpdateUniqueUuid: - return GetAsUpdateUniqueUuid() == Other.GetAsUpdateUniqueUuid(); - default: return false; - } + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertPrimitivesAsStrings); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_primitives_as_strings"); + return Out; } - FORCEINLINE bool operator!=(const FReducer& Other) const { return !(*this == Other); } + + FORCEINLINE bool IsInsertPrimitivesAsStrings() const { return Tag == static_cast(EReducerTag::InsertPrimitivesAsStrings); } + FORCEINLINE FInsertPrimitivesAsStringsArgs GetAsInsertPrimitivesAsStrings() const + { + ensureMsgf(IsInsertPrimitivesAsStrings(), TEXT("Reducer does not hold InsertPrimitivesAsStrings!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertPrimitivesAsStrings!")); + return TypedData ? TypedData->Value : FInsertPrimitivesAsStringsArgs(); + } + + static FReducer InsertResultEveryPrimitiveStructString(const FInsertResultEveryPrimitiveStructStringArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertResultEveryPrimitiveStructString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_result_every_primitive_struct_string"); + return Out; + } + + FORCEINLINE bool IsInsertResultEveryPrimitiveStructString() const { return Tag == static_cast(EReducerTag::InsertResultEveryPrimitiveStructString); } + FORCEINLINE FInsertResultEveryPrimitiveStructStringArgs GetAsInsertResultEveryPrimitiveStructString() const + { + ensureMsgf(IsInsertResultEveryPrimitiveStructString(), TEXT("Reducer does not hold InsertResultEveryPrimitiveStructString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertResultEveryPrimitiveStructString!")); + return TypedData ? TypedData->Value : FInsertResultEveryPrimitiveStructStringArgs(); + } + + static FReducer InsertResultI32String(const FInsertResultI32StringArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertResultI32String); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_result_i_32_string"); + return Out; + } + + FORCEINLINE bool IsInsertResultI32String() const { return Tag == static_cast(EReducerTag::InsertResultI32String); } + FORCEINLINE FInsertResultI32StringArgs GetAsInsertResultI32String() const + { + ensureMsgf(IsInsertResultI32String(), TEXT("Reducer does not hold InsertResultI32String!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertResultI32String!")); + return TypedData ? TypedData->Value : FInsertResultI32StringArgs(); + } + + static FReducer InsertResultIdentityString(const FInsertResultIdentityStringArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertResultIdentityString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_result_identity_string"); + return Out; + } + + FORCEINLINE bool IsInsertResultIdentityString() const { return Tag == static_cast(EReducerTag::InsertResultIdentityString); } + FORCEINLINE FInsertResultIdentityStringArgs GetAsInsertResultIdentityString() const + { + ensureMsgf(IsInsertResultIdentityString(), TEXT("Reducer does not hold InsertResultIdentityString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertResultIdentityString!")); + return TypedData ? TypedData->Value : FInsertResultIdentityStringArgs(); + } + + static FReducer InsertResultSimpleEnumI32(const FInsertResultSimpleEnumI32Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertResultSimpleEnumI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_result_simple_enum_i_32"); + return Out; + } + + FORCEINLINE bool IsInsertResultSimpleEnumI32() const { return Tag == static_cast(EReducerTag::InsertResultSimpleEnumI32); } + FORCEINLINE FInsertResultSimpleEnumI32Args GetAsInsertResultSimpleEnumI32() const + { + ensureMsgf(IsInsertResultSimpleEnumI32(), TEXT("Reducer does not hold InsertResultSimpleEnumI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertResultSimpleEnumI32!")); + return TypedData ? TypedData->Value : FInsertResultSimpleEnumI32Args(); + } + + static FReducer InsertResultStringI32(const FInsertResultStringI32Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertResultStringI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_result_string_i_32"); + return Out; + } + + FORCEINLINE bool IsInsertResultStringI32() const { return Tag == static_cast(EReducerTag::InsertResultStringI32); } + FORCEINLINE FInsertResultStringI32Args GetAsInsertResultStringI32() const + { + ensureMsgf(IsInsertResultStringI32(), TEXT("Reducer does not hold InsertResultStringI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertResultStringI32!")); + return TypedData ? TypedData->Value : FInsertResultStringI32Args(); + } + + static FReducer InsertResultVecI32String(const FInsertResultVecI32StringArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertResultVecI32String); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_result_vec_i_32_string"); + return Out; + } + + FORCEINLINE bool IsInsertResultVecI32String() const { return Tag == static_cast(EReducerTag::InsertResultVecI32String); } + FORCEINLINE FInsertResultVecI32StringArgs GetAsInsertResultVecI32String() const + { + ensureMsgf(IsInsertResultVecI32String(), TEXT("Reducer does not hold InsertResultVecI32String!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertResultVecI32String!")); + return TypedData ? TypedData->Value : FInsertResultVecI32StringArgs(); + } + + static FReducer InsertTableHoldsTable(const FInsertTableHoldsTableArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertTableHoldsTable); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_table_holds_table"); + return Out; + } + + FORCEINLINE bool IsInsertTableHoldsTable() const { return Tag == static_cast(EReducerTag::InsertTableHoldsTable); } + FORCEINLINE FInsertTableHoldsTableArgs GetAsInsertTableHoldsTable() const + { + ensureMsgf(IsInsertTableHoldsTable(), TEXT("Reducer does not hold InsertTableHoldsTable!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertTableHoldsTable!")); + return TypedData ? TypedData->Value : FInsertTableHoldsTableArgs(); + } + + static FReducer InsertUniqueBool(const FInsertUniqueBoolArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueBool); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_bool"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueBool() const { return Tag == static_cast(EReducerTag::InsertUniqueBool); } + FORCEINLINE FInsertUniqueBoolArgs GetAsInsertUniqueBool() const + { + ensureMsgf(IsInsertUniqueBool(), TEXT("Reducer does not hold InsertUniqueBool!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueBool!")); + return TypedData ? TypedData->Value : FInsertUniqueBoolArgs(); + } + + static FReducer InsertUniqueConnectionId(const FInsertUniqueConnectionIdArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueConnectionId); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_connection_id"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueConnectionId() const { return Tag == static_cast(EReducerTag::InsertUniqueConnectionId); } + FORCEINLINE FInsertUniqueConnectionIdArgs GetAsInsertUniqueConnectionId() const + { + ensureMsgf(IsInsertUniqueConnectionId(), TEXT("Reducer does not hold InsertUniqueConnectionId!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueConnectionId!")); + return TypedData ? TypedData->Value : FInsertUniqueConnectionIdArgs(); + } + + static FReducer InsertUniqueI128(const FInsertUniqueI128Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueI128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_i_128"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueI128() const { return Tag == static_cast(EReducerTag::InsertUniqueI128); } + FORCEINLINE FInsertUniqueI128Args GetAsInsertUniqueI128() const + { + ensureMsgf(IsInsertUniqueI128(), TEXT("Reducer does not hold InsertUniqueI128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueI128!")); + return TypedData ? TypedData->Value : FInsertUniqueI128Args(); + } + + static FReducer InsertUniqueI16(const FInsertUniqueI16Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueI16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_i_16"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueI16() const { return Tag == static_cast(EReducerTag::InsertUniqueI16); } + FORCEINLINE FInsertUniqueI16Args GetAsInsertUniqueI16() const + { + ensureMsgf(IsInsertUniqueI16(), TEXT("Reducer does not hold InsertUniqueI16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueI16!")); + return TypedData ? TypedData->Value : FInsertUniqueI16Args(); + } + + static FReducer InsertUniqueI256(const FInsertUniqueI256Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueI256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_i_256"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueI256() const { return Tag == static_cast(EReducerTag::InsertUniqueI256); } + FORCEINLINE FInsertUniqueI256Args GetAsInsertUniqueI256() const + { + ensureMsgf(IsInsertUniqueI256(), TEXT("Reducer does not hold InsertUniqueI256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueI256!")); + return TypedData ? TypedData->Value : FInsertUniqueI256Args(); + } + + static FReducer InsertUniqueI32(const FInsertUniqueI32Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_i_32"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueI32() const { return Tag == static_cast(EReducerTag::InsertUniqueI32); } + FORCEINLINE FInsertUniqueI32Args GetAsInsertUniqueI32() const + { + ensureMsgf(IsInsertUniqueI32(), TEXT("Reducer does not hold InsertUniqueI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueI32!")); + return TypedData ? TypedData->Value : FInsertUniqueI32Args(); + } + + static FReducer InsertUniqueI64(const FInsertUniqueI64Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueI64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_i_64"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueI64() const { return Tag == static_cast(EReducerTag::InsertUniqueI64); } + FORCEINLINE FInsertUniqueI64Args GetAsInsertUniqueI64() const + { + ensureMsgf(IsInsertUniqueI64(), TEXT("Reducer does not hold InsertUniqueI64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueI64!")); + return TypedData ? TypedData->Value : FInsertUniqueI64Args(); + } + + static FReducer InsertUniqueI8(const FInsertUniqueI8Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueI8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_i_8"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueI8() const { return Tag == static_cast(EReducerTag::InsertUniqueI8); } + FORCEINLINE FInsertUniqueI8Args GetAsInsertUniqueI8() const + { + ensureMsgf(IsInsertUniqueI8(), TEXT("Reducer does not hold InsertUniqueI8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueI8!")); + return TypedData ? TypedData->Value : FInsertUniqueI8Args(); + } + + static FReducer InsertUniqueIdentity(const FInsertUniqueIdentityArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_identity"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueIdentity() const { return Tag == static_cast(EReducerTag::InsertUniqueIdentity); } + FORCEINLINE FInsertUniqueIdentityArgs GetAsInsertUniqueIdentity() const + { + ensureMsgf(IsInsertUniqueIdentity(), TEXT("Reducer does not hold InsertUniqueIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueIdentity!")); + return TypedData ? TypedData->Value : FInsertUniqueIdentityArgs(); + } + + static FReducer InsertUniqueString(const FInsertUniqueStringArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_string"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueString() const { return Tag == static_cast(EReducerTag::InsertUniqueString); } + FORCEINLINE FInsertUniqueStringArgs GetAsInsertUniqueString() const + { + ensureMsgf(IsInsertUniqueString(), TEXT("Reducer does not hold InsertUniqueString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueString!")); + return TypedData ? TypedData->Value : FInsertUniqueStringArgs(); + } + + static FReducer InsertUniqueU128(const FInsertUniqueU128Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueU128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_u_128"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueU128() const { return Tag == static_cast(EReducerTag::InsertUniqueU128); } + FORCEINLINE FInsertUniqueU128Args GetAsInsertUniqueU128() const + { + ensureMsgf(IsInsertUniqueU128(), TEXT("Reducer does not hold InsertUniqueU128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueU128!")); + return TypedData ? TypedData->Value : FInsertUniqueU128Args(); + } + + static FReducer InsertUniqueU16(const FInsertUniqueU16Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueU16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_u_16"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueU16() const { return Tag == static_cast(EReducerTag::InsertUniqueU16); } + FORCEINLINE FInsertUniqueU16Args GetAsInsertUniqueU16() const + { + ensureMsgf(IsInsertUniqueU16(), TEXT("Reducer does not hold InsertUniqueU16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueU16!")); + return TypedData ? TypedData->Value : FInsertUniqueU16Args(); + } + + static FReducer InsertUniqueU256(const FInsertUniqueU256Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueU256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_u_256"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueU256() const { return Tag == static_cast(EReducerTag::InsertUniqueU256); } + FORCEINLINE FInsertUniqueU256Args GetAsInsertUniqueU256() const + { + ensureMsgf(IsInsertUniqueU256(), TEXT("Reducer does not hold InsertUniqueU256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueU256!")); + return TypedData ? TypedData->Value : FInsertUniqueU256Args(); + } + + static FReducer InsertUniqueU32(const FInsertUniqueU32Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_u_32"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueU32() const { return Tag == static_cast(EReducerTag::InsertUniqueU32); } + FORCEINLINE FInsertUniqueU32Args GetAsInsertUniqueU32() const + { + ensureMsgf(IsInsertUniqueU32(), TEXT("Reducer does not hold InsertUniqueU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueU32!")); + return TypedData ? TypedData->Value : FInsertUniqueU32Args(); + } + + static FReducer InsertUniqueU32UpdatePkU32(const FInsertUniqueU32UpdatePkU32Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueU32UpdatePkU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_u_32_update_pk_u_32"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueU32UpdatePkU32() const { return Tag == static_cast(EReducerTag::InsertUniqueU32UpdatePkU32); } + FORCEINLINE FInsertUniqueU32UpdatePkU32Args GetAsInsertUniqueU32UpdatePkU32() const + { + ensureMsgf(IsInsertUniqueU32UpdatePkU32(), TEXT("Reducer does not hold InsertUniqueU32UpdatePkU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueU32UpdatePkU32!")); + return TypedData ? TypedData->Value : FInsertUniqueU32UpdatePkU32Args(); + } + + static FReducer InsertUniqueU64(const FInsertUniqueU64Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueU64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_u_64"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueU64() const { return Tag == static_cast(EReducerTag::InsertUniqueU64); } + FORCEINLINE FInsertUniqueU64Args GetAsInsertUniqueU64() const + { + ensureMsgf(IsInsertUniqueU64(), TEXT("Reducer does not hold InsertUniqueU64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueU64!")); + return TypedData ? TypedData->Value : FInsertUniqueU64Args(); + } + + static FReducer InsertUniqueU8(const FInsertUniqueU8Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueU8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_u_8"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueU8() const { return Tag == static_cast(EReducerTag::InsertUniqueU8); } + FORCEINLINE FInsertUniqueU8Args GetAsInsertUniqueU8() const + { + ensureMsgf(IsInsertUniqueU8(), TEXT("Reducer does not hold InsertUniqueU8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueU8!")); + return TypedData ? TypedData->Value : FInsertUniqueU8Args(); + } + + static FReducer InsertUniqueUuid(const FInsertUniqueUuidArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUniqueUuid); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_unique_uuid"); + return Out; + } + + FORCEINLINE bool IsInsertUniqueUuid() const { return Tag == static_cast(EReducerTag::InsertUniqueUuid); } + FORCEINLINE FInsertUniqueUuidArgs GetAsInsertUniqueUuid() const + { + ensureMsgf(IsInsertUniqueUuid(), TEXT("Reducer does not hold InsertUniqueUuid!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUniqueUuid!")); + return TypedData ? TypedData->Value : FInsertUniqueUuidArgs(); + } + + static FReducer InsertUser(const FInsertUserArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertUser); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_user"); + return Out; + } + + FORCEINLINE bool IsInsertUser() const { return Tag == static_cast(EReducerTag::InsertUser); } + FORCEINLINE FInsertUserArgs GetAsInsertUser() const + { + ensureMsgf(IsInsertUser(), TEXT("Reducer does not hold InsertUser!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertUser!")); + return TypedData ? TypedData->Value : FInsertUserArgs(); + } + + static FReducer InsertVecBool(const FInsertVecBoolArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecBool); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_bool"); + return Out; + } + + FORCEINLINE bool IsInsertVecBool() const { return Tag == static_cast(EReducerTag::InsertVecBool); } + FORCEINLINE FInsertVecBoolArgs GetAsInsertVecBool() const + { + ensureMsgf(IsInsertVecBool(), TEXT("Reducer does not hold InsertVecBool!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecBool!")); + return TypedData ? TypedData->Value : FInsertVecBoolArgs(); + } + + static FReducer InsertVecByteStruct(const FInsertVecByteStructArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecByteStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_byte_struct"); + return Out; + } + + FORCEINLINE bool IsInsertVecByteStruct() const { return Tag == static_cast(EReducerTag::InsertVecByteStruct); } + FORCEINLINE FInsertVecByteStructArgs GetAsInsertVecByteStruct() const + { + ensureMsgf(IsInsertVecByteStruct(), TEXT("Reducer does not hold InsertVecByteStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecByteStruct!")); + return TypedData ? TypedData->Value : FInsertVecByteStructArgs(); + } + + static FReducer InsertVecConnectionId(const FInsertVecConnectionIdArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecConnectionId); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_connection_id"); + return Out; + } + + FORCEINLINE bool IsInsertVecConnectionId() const { return Tag == static_cast(EReducerTag::InsertVecConnectionId); } + FORCEINLINE FInsertVecConnectionIdArgs GetAsInsertVecConnectionId() const + { + ensureMsgf(IsInsertVecConnectionId(), TEXT("Reducer does not hold InsertVecConnectionId!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecConnectionId!")); + return TypedData ? TypedData->Value : FInsertVecConnectionIdArgs(); + } + + static FReducer InsertVecEnumWithPayload(const FInsertVecEnumWithPayloadArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecEnumWithPayload); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_enum_with_payload"); + return Out; + } + + FORCEINLINE bool IsInsertVecEnumWithPayload() const { return Tag == static_cast(EReducerTag::InsertVecEnumWithPayload); } + FORCEINLINE FInsertVecEnumWithPayloadArgs GetAsInsertVecEnumWithPayload() const + { + ensureMsgf(IsInsertVecEnumWithPayload(), TEXT("Reducer does not hold InsertVecEnumWithPayload!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecEnumWithPayload!")); + return TypedData ? TypedData->Value : FInsertVecEnumWithPayloadArgs(); + } + + static FReducer InsertVecEveryPrimitiveStruct(const FInsertVecEveryPrimitiveStructArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecEveryPrimitiveStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_every_primitive_struct"); + return Out; + } + + FORCEINLINE bool IsInsertVecEveryPrimitiveStruct() const { return Tag == static_cast(EReducerTag::InsertVecEveryPrimitiveStruct); } + FORCEINLINE FInsertVecEveryPrimitiveStructArgs GetAsInsertVecEveryPrimitiveStruct() const + { + ensureMsgf(IsInsertVecEveryPrimitiveStruct(), TEXT("Reducer does not hold InsertVecEveryPrimitiveStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecEveryPrimitiveStruct!")); + return TypedData ? TypedData->Value : FInsertVecEveryPrimitiveStructArgs(); + } + + static FReducer InsertVecEveryVecStruct(const FInsertVecEveryVecStructArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecEveryVecStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_every_vec_struct"); + return Out; + } + + FORCEINLINE bool IsInsertVecEveryVecStruct() const { return Tag == static_cast(EReducerTag::InsertVecEveryVecStruct); } + FORCEINLINE FInsertVecEveryVecStructArgs GetAsInsertVecEveryVecStruct() const + { + ensureMsgf(IsInsertVecEveryVecStruct(), TEXT("Reducer does not hold InsertVecEveryVecStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecEveryVecStruct!")); + return TypedData ? TypedData->Value : FInsertVecEveryVecStructArgs(); + } + + static FReducer InsertVecF32(const FInsertVecF32Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecF32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_f_32"); + return Out; + } + + FORCEINLINE bool IsInsertVecF32() const { return Tag == static_cast(EReducerTag::InsertVecF32); } + FORCEINLINE FInsertVecF32Args GetAsInsertVecF32() const + { + ensureMsgf(IsInsertVecF32(), TEXT("Reducer does not hold InsertVecF32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecF32!")); + return TypedData ? TypedData->Value : FInsertVecF32Args(); + } + + static FReducer InsertVecF64(const FInsertVecF64Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecF64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_f_64"); + return Out; + } + + FORCEINLINE bool IsInsertVecF64() const { return Tag == static_cast(EReducerTag::InsertVecF64); } + FORCEINLINE FInsertVecF64Args GetAsInsertVecF64() const + { + ensureMsgf(IsInsertVecF64(), TEXT("Reducer does not hold InsertVecF64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecF64!")); + return TypedData ? TypedData->Value : FInsertVecF64Args(); + } + + static FReducer InsertVecI128(const FInsertVecI128Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecI128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_i_128"); + return Out; + } + + FORCEINLINE bool IsInsertVecI128() const { return Tag == static_cast(EReducerTag::InsertVecI128); } + FORCEINLINE FInsertVecI128Args GetAsInsertVecI128() const + { + ensureMsgf(IsInsertVecI128(), TEXT("Reducer does not hold InsertVecI128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecI128!")); + return TypedData ? TypedData->Value : FInsertVecI128Args(); + } + + static FReducer InsertVecI16(const FInsertVecI16Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecI16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_i_16"); + return Out; + } + + FORCEINLINE bool IsInsertVecI16() const { return Tag == static_cast(EReducerTag::InsertVecI16); } + FORCEINLINE FInsertVecI16Args GetAsInsertVecI16() const + { + ensureMsgf(IsInsertVecI16(), TEXT("Reducer does not hold InsertVecI16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecI16!")); + return TypedData ? TypedData->Value : FInsertVecI16Args(); + } + + static FReducer InsertVecI256(const FInsertVecI256Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecI256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_i_256"); + return Out; + } + + FORCEINLINE bool IsInsertVecI256() const { return Tag == static_cast(EReducerTag::InsertVecI256); } + FORCEINLINE FInsertVecI256Args GetAsInsertVecI256() const + { + ensureMsgf(IsInsertVecI256(), TEXT("Reducer does not hold InsertVecI256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecI256!")); + return TypedData ? TypedData->Value : FInsertVecI256Args(); + } + + static FReducer InsertVecI32(const FInsertVecI32Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_i_32"); + return Out; + } + + FORCEINLINE bool IsInsertVecI32() const { return Tag == static_cast(EReducerTag::InsertVecI32); } + FORCEINLINE FInsertVecI32Args GetAsInsertVecI32() const + { + ensureMsgf(IsInsertVecI32(), TEXT("Reducer does not hold InsertVecI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecI32!")); + return TypedData ? TypedData->Value : FInsertVecI32Args(); + } + + static FReducer InsertVecI64(const FInsertVecI64Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecI64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_i_64"); + return Out; + } + + FORCEINLINE bool IsInsertVecI64() const { return Tag == static_cast(EReducerTag::InsertVecI64); } + FORCEINLINE FInsertVecI64Args GetAsInsertVecI64() const + { + ensureMsgf(IsInsertVecI64(), TEXT("Reducer does not hold InsertVecI64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecI64!")); + return TypedData ? TypedData->Value : FInsertVecI64Args(); + } + + static FReducer InsertVecI8(const FInsertVecI8Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecI8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_i_8"); + return Out; + } + + FORCEINLINE bool IsInsertVecI8() const { return Tag == static_cast(EReducerTag::InsertVecI8); } + FORCEINLINE FInsertVecI8Args GetAsInsertVecI8() const + { + ensureMsgf(IsInsertVecI8(), TEXT("Reducer does not hold InsertVecI8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecI8!")); + return TypedData ? TypedData->Value : FInsertVecI8Args(); + } + + static FReducer InsertVecIdentity(const FInsertVecIdentityArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_identity"); + return Out; + } + + FORCEINLINE bool IsInsertVecIdentity() const { return Tag == static_cast(EReducerTag::InsertVecIdentity); } + FORCEINLINE FInsertVecIdentityArgs GetAsInsertVecIdentity() const + { + ensureMsgf(IsInsertVecIdentity(), TEXT("Reducer does not hold InsertVecIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecIdentity!")); + return TypedData ? TypedData->Value : FInsertVecIdentityArgs(); + } + + static FReducer InsertVecSimpleEnum(const FInsertVecSimpleEnumArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecSimpleEnum); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_simple_enum"); + return Out; + } + + FORCEINLINE bool IsInsertVecSimpleEnum() const { return Tag == static_cast(EReducerTag::InsertVecSimpleEnum); } + FORCEINLINE FInsertVecSimpleEnumArgs GetAsInsertVecSimpleEnum() const + { + ensureMsgf(IsInsertVecSimpleEnum(), TEXT("Reducer does not hold InsertVecSimpleEnum!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecSimpleEnum!")); + return TypedData ? TypedData->Value : FInsertVecSimpleEnumArgs(); + } + + static FReducer InsertVecString(const FInsertVecStringArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_string"); + return Out; + } + + FORCEINLINE bool IsInsertVecString() const { return Tag == static_cast(EReducerTag::InsertVecString); } + FORCEINLINE FInsertVecStringArgs GetAsInsertVecString() const + { + ensureMsgf(IsInsertVecString(), TEXT("Reducer does not hold InsertVecString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecString!")); + return TypedData ? TypedData->Value : FInsertVecStringArgs(); + } + + static FReducer InsertVecTimestamp(const FInsertVecTimestampArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecTimestamp); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_timestamp"); + return Out; + } + + FORCEINLINE bool IsInsertVecTimestamp() const { return Tag == static_cast(EReducerTag::InsertVecTimestamp); } + FORCEINLINE FInsertVecTimestampArgs GetAsInsertVecTimestamp() const + { + ensureMsgf(IsInsertVecTimestamp(), TEXT("Reducer does not hold InsertVecTimestamp!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecTimestamp!")); + return TypedData ? TypedData->Value : FInsertVecTimestampArgs(); + } + + static FReducer InsertVecU128(const FInsertVecU128Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecU128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_u_128"); + return Out; + } + + FORCEINLINE bool IsInsertVecU128() const { return Tag == static_cast(EReducerTag::InsertVecU128); } + FORCEINLINE FInsertVecU128Args GetAsInsertVecU128() const + { + ensureMsgf(IsInsertVecU128(), TEXT("Reducer does not hold InsertVecU128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecU128!")); + return TypedData ? TypedData->Value : FInsertVecU128Args(); + } + + static FReducer InsertVecU16(const FInsertVecU16Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecU16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_u_16"); + return Out; + } + + FORCEINLINE bool IsInsertVecU16() const { return Tag == static_cast(EReducerTag::InsertVecU16); } + FORCEINLINE FInsertVecU16Args GetAsInsertVecU16() const + { + ensureMsgf(IsInsertVecU16(), TEXT("Reducer does not hold InsertVecU16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecU16!")); + return TypedData ? TypedData->Value : FInsertVecU16Args(); + } + + static FReducer InsertVecU256(const FInsertVecU256Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecU256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_u_256"); + return Out; + } + + FORCEINLINE bool IsInsertVecU256() const { return Tag == static_cast(EReducerTag::InsertVecU256); } + FORCEINLINE FInsertVecU256Args GetAsInsertVecU256() const + { + ensureMsgf(IsInsertVecU256(), TEXT("Reducer does not hold InsertVecU256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecU256!")); + return TypedData ? TypedData->Value : FInsertVecU256Args(); + } + + static FReducer InsertVecU32(const FInsertVecU32Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_u_32"); + return Out; + } + + FORCEINLINE bool IsInsertVecU32() const { return Tag == static_cast(EReducerTag::InsertVecU32); } + FORCEINLINE FInsertVecU32Args GetAsInsertVecU32() const + { + ensureMsgf(IsInsertVecU32(), TEXT("Reducer does not hold InsertVecU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecU32!")); + return TypedData ? TypedData->Value : FInsertVecU32Args(); + } + + static FReducer InsertVecU64(const FInsertVecU64Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecU64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_u_64"); + return Out; + } + + FORCEINLINE bool IsInsertVecU64() const { return Tag == static_cast(EReducerTag::InsertVecU64); } + FORCEINLINE FInsertVecU64Args GetAsInsertVecU64() const + { + ensureMsgf(IsInsertVecU64(), TEXT("Reducer does not hold InsertVecU64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecU64!")); + return TypedData ? TypedData->Value : FInsertVecU64Args(); + } + + static FReducer InsertVecU8(const FInsertVecU8Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecU8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_u_8"); + return Out; + } + + FORCEINLINE bool IsInsertVecU8() const { return Tag == static_cast(EReducerTag::InsertVecU8); } + FORCEINLINE FInsertVecU8Args GetAsInsertVecU8() const + { + ensureMsgf(IsInsertVecU8(), TEXT("Reducer does not hold InsertVecU8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecU8!")); + return TypedData ? TypedData->Value : FInsertVecU8Args(); + } + + static FReducer InsertVecUnitStruct(const FInsertVecUnitStructArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecUnitStruct); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_unit_struct"); + return Out; + } + + FORCEINLINE bool IsInsertVecUnitStruct() const { return Tag == static_cast(EReducerTag::InsertVecUnitStruct); } + FORCEINLINE FInsertVecUnitStructArgs GetAsInsertVecUnitStruct() const + { + ensureMsgf(IsInsertVecUnitStruct(), TEXT("Reducer does not hold InsertVecUnitStruct!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecUnitStruct!")); + return TypedData ? TypedData->Value : FInsertVecUnitStructArgs(); + } + + static FReducer InsertVecUuid(const FInsertVecUuidArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::InsertVecUuid); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("insert_vec_uuid"); + return Out; + } + + FORCEINLINE bool IsInsertVecUuid() const { return Tag == static_cast(EReducerTag::InsertVecUuid); } + FORCEINLINE FInsertVecUuidArgs GetAsInsertVecUuid() const + { + ensureMsgf(IsInsertVecUuid(), TEXT("Reducer does not hold InsertVecUuid!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for InsertVecUuid!")); + return TypedData ? TypedData->Value : FInsertVecUuidArgs(); + } + + static FReducer NoOpSucceeds(const FNoOpSucceedsArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::NoOpSucceeds); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("no_op_succeeds"); + return Out; + } + + FORCEINLINE bool IsNoOpSucceeds() const { return Tag == static_cast(EReducerTag::NoOpSucceeds); } + FORCEINLINE FNoOpSucceedsArgs GetAsNoOpSucceeds() const + { + ensureMsgf(IsNoOpSucceeds(), TEXT("Reducer does not hold NoOpSucceeds!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for NoOpSucceeds!")); + return TypedData ? TypedData->Value : FNoOpSucceedsArgs(); + } + + static FReducer SortedUuidsInsert(const FSortedUuidsInsertArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::SortedUuidsInsert); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("sorted_uuids_insert"); + return Out; + } + + FORCEINLINE bool IsSortedUuidsInsert() const { return Tag == static_cast(EReducerTag::SortedUuidsInsert); } + FORCEINLINE FSortedUuidsInsertArgs GetAsSortedUuidsInsert() const + { + ensureMsgf(IsSortedUuidsInsert(), TEXT("Reducer does not hold SortedUuidsInsert!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for SortedUuidsInsert!")); + return TypedData ? TypedData->Value : FSortedUuidsInsertArgs(); + } + + static FReducer UpdateIndexedSimpleEnum(const FUpdateIndexedSimpleEnumArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateIndexedSimpleEnum); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_indexed_simple_enum"); + return Out; + } + + FORCEINLINE bool IsUpdateIndexedSimpleEnum() const { return Tag == static_cast(EReducerTag::UpdateIndexedSimpleEnum); } + FORCEINLINE FUpdateIndexedSimpleEnumArgs GetAsUpdateIndexedSimpleEnum() const + { + ensureMsgf(IsUpdateIndexedSimpleEnum(), TEXT("Reducer does not hold UpdateIndexedSimpleEnum!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateIndexedSimpleEnum!")); + return TypedData ? TypedData->Value : FUpdateIndexedSimpleEnumArgs(); + } + + static FReducer UpdatePkBool(const FUpdatePkBoolArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkBool); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_bool"); + return Out; + } + + FORCEINLINE bool IsUpdatePkBool() const { return Tag == static_cast(EReducerTag::UpdatePkBool); } + FORCEINLINE FUpdatePkBoolArgs GetAsUpdatePkBool() const + { + ensureMsgf(IsUpdatePkBool(), TEXT("Reducer does not hold UpdatePkBool!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkBool!")); + return TypedData ? TypedData->Value : FUpdatePkBoolArgs(); + } + + static FReducer UpdatePkConnectionId(const FUpdatePkConnectionIdArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkConnectionId); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_connection_id"); + return Out; + } + + FORCEINLINE bool IsUpdatePkConnectionId() const { return Tag == static_cast(EReducerTag::UpdatePkConnectionId); } + FORCEINLINE FUpdatePkConnectionIdArgs GetAsUpdatePkConnectionId() const + { + ensureMsgf(IsUpdatePkConnectionId(), TEXT("Reducer does not hold UpdatePkConnectionId!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkConnectionId!")); + return TypedData ? TypedData->Value : FUpdatePkConnectionIdArgs(); + } + + static FReducer UpdatePkI128(const FUpdatePkI128Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkI128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_i_128"); + return Out; + } + + FORCEINLINE bool IsUpdatePkI128() const { return Tag == static_cast(EReducerTag::UpdatePkI128); } + FORCEINLINE FUpdatePkI128Args GetAsUpdatePkI128() const + { + ensureMsgf(IsUpdatePkI128(), TEXT("Reducer does not hold UpdatePkI128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkI128!")); + return TypedData ? TypedData->Value : FUpdatePkI128Args(); + } + + static FReducer UpdatePkI16(const FUpdatePkI16Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkI16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_i_16"); + return Out; + } + + FORCEINLINE bool IsUpdatePkI16() const { return Tag == static_cast(EReducerTag::UpdatePkI16); } + FORCEINLINE FUpdatePkI16Args GetAsUpdatePkI16() const + { + ensureMsgf(IsUpdatePkI16(), TEXT("Reducer does not hold UpdatePkI16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkI16!")); + return TypedData ? TypedData->Value : FUpdatePkI16Args(); + } + + static FReducer UpdatePkI256(const FUpdatePkI256Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkI256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_i_256"); + return Out; + } + + FORCEINLINE bool IsUpdatePkI256() const { return Tag == static_cast(EReducerTag::UpdatePkI256); } + FORCEINLINE FUpdatePkI256Args GetAsUpdatePkI256() const + { + ensureMsgf(IsUpdatePkI256(), TEXT("Reducer does not hold UpdatePkI256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkI256!")); + return TypedData ? TypedData->Value : FUpdatePkI256Args(); + } + + static FReducer UpdatePkI32(const FUpdatePkI32Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_i_32"); + return Out; + } + + FORCEINLINE bool IsUpdatePkI32() const { return Tag == static_cast(EReducerTag::UpdatePkI32); } + FORCEINLINE FUpdatePkI32Args GetAsUpdatePkI32() const + { + ensureMsgf(IsUpdatePkI32(), TEXT("Reducer does not hold UpdatePkI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkI32!")); + return TypedData ? TypedData->Value : FUpdatePkI32Args(); + } + + static FReducer UpdatePkI64(const FUpdatePkI64Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkI64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_i_64"); + return Out; + } + + FORCEINLINE bool IsUpdatePkI64() const { return Tag == static_cast(EReducerTag::UpdatePkI64); } + FORCEINLINE FUpdatePkI64Args GetAsUpdatePkI64() const + { + ensureMsgf(IsUpdatePkI64(), TEXT("Reducer does not hold UpdatePkI64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkI64!")); + return TypedData ? TypedData->Value : FUpdatePkI64Args(); + } + + static FReducer UpdatePkI8(const FUpdatePkI8Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkI8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_i_8"); + return Out; + } + + FORCEINLINE bool IsUpdatePkI8() const { return Tag == static_cast(EReducerTag::UpdatePkI8); } + FORCEINLINE FUpdatePkI8Args GetAsUpdatePkI8() const + { + ensureMsgf(IsUpdatePkI8(), TEXT("Reducer does not hold UpdatePkI8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkI8!")); + return TypedData ? TypedData->Value : FUpdatePkI8Args(); + } + + static FReducer UpdatePkIdentity(const FUpdatePkIdentityArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_identity"); + return Out; + } + + FORCEINLINE bool IsUpdatePkIdentity() const { return Tag == static_cast(EReducerTag::UpdatePkIdentity); } + FORCEINLINE FUpdatePkIdentityArgs GetAsUpdatePkIdentity() const + { + ensureMsgf(IsUpdatePkIdentity(), TEXT("Reducer does not hold UpdatePkIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkIdentity!")); + return TypedData ? TypedData->Value : FUpdatePkIdentityArgs(); + } + + static FReducer UpdatePkSimpleEnum(const FUpdatePkSimpleEnumArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkSimpleEnum); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_simple_enum"); + return Out; + } + + FORCEINLINE bool IsUpdatePkSimpleEnum() const { return Tag == static_cast(EReducerTag::UpdatePkSimpleEnum); } + FORCEINLINE FUpdatePkSimpleEnumArgs GetAsUpdatePkSimpleEnum() const + { + ensureMsgf(IsUpdatePkSimpleEnum(), TEXT("Reducer does not hold UpdatePkSimpleEnum!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkSimpleEnum!")); + return TypedData ? TypedData->Value : FUpdatePkSimpleEnumArgs(); + } + + static FReducer UpdatePkString(const FUpdatePkStringArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_string"); + return Out; + } + + FORCEINLINE bool IsUpdatePkString() const { return Tag == static_cast(EReducerTag::UpdatePkString); } + FORCEINLINE FUpdatePkStringArgs GetAsUpdatePkString() const + { + ensureMsgf(IsUpdatePkString(), TEXT("Reducer does not hold UpdatePkString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkString!")); + return TypedData ? TypedData->Value : FUpdatePkStringArgs(); + } + + static FReducer UpdatePkU128(const FUpdatePkU128Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkU128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_u_128"); + return Out; + } + + FORCEINLINE bool IsUpdatePkU128() const { return Tag == static_cast(EReducerTag::UpdatePkU128); } + FORCEINLINE FUpdatePkU128Args GetAsUpdatePkU128() const + { + ensureMsgf(IsUpdatePkU128(), TEXT("Reducer does not hold UpdatePkU128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkU128!")); + return TypedData ? TypedData->Value : FUpdatePkU128Args(); + } + + static FReducer UpdatePkU16(const FUpdatePkU16Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkU16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_u_16"); + return Out; + } + + FORCEINLINE bool IsUpdatePkU16() const { return Tag == static_cast(EReducerTag::UpdatePkU16); } + FORCEINLINE FUpdatePkU16Args GetAsUpdatePkU16() const + { + ensureMsgf(IsUpdatePkU16(), TEXT("Reducer does not hold UpdatePkU16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkU16!")); + return TypedData ? TypedData->Value : FUpdatePkU16Args(); + } + + static FReducer UpdatePkU256(const FUpdatePkU256Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkU256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_u_256"); + return Out; + } + + FORCEINLINE bool IsUpdatePkU256() const { return Tag == static_cast(EReducerTag::UpdatePkU256); } + FORCEINLINE FUpdatePkU256Args GetAsUpdatePkU256() const + { + ensureMsgf(IsUpdatePkU256(), TEXT("Reducer does not hold UpdatePkU256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkU256!")); + return TypedData ? TypedData->Value : FUpdatePkU256Args(); + } + + static FReducer UpdatePkU32(const FUpdatePkU32Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_u_32"); + return Out; + } + + FORCEINLINE bool IsUpdatePkU32() const { return Tag == static_cast(EReducerTag::UpdatePkU32); } + FORCEINLINE FUpdatePkU32Args GetAsUpdatePkU32() const + { + ensureMsgf(IsUpdatePkU32(), TEXT("Reducer does not hold UpdatePkU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkU32!")); + return TypedData ? TypedData->Value : FUpdatePkU32Args(); + } + + static FReducer UpdatePkU32Two(const FUpdatePkU32TwoArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkU32Two); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_u_32_two"); + return Out; + } + + FORCEINLINE bool IsUpdatePkU32Two() const { return Tag == static_cast(EReducerTag::UpdatePkU32Two); } + FORCEINLINE FUpdatePkU32TwoArgs GetAsUpdatePkU32Two() const + { + ensureMsgf(IsUpdatePkU32Two(), TEXT("Reducer does not hold UpdatePkU32Two!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkU32Two!")); + return TypedData ? TypedData->Value : FUpdatePkU32TwoArgs(); + } + + static FReducer UpdatePkU64(const FUpdatePkU64Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkU64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_u_64"); + return Out; + } + + FORCEINLINE bool IsUpdatePkU64() const { return Tag == static_cast(EReducerTag::UpdatePkU64); } + FORCEINLINE FUpdatePkU64Args GetAsUpdatePkU64() const + { + ensureMsgf(IsUpdatePkU64(), TEXT("Reducer does not hold UpdatePkU64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkU64!")); + return TypedData ? TypedData->Value : FUpdatePkU64Args(); + } + + static FReducer UpdatePkU8(const FUpdatePkU8Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkU8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_u_8"); + return Out; + } + + FORCEINLINE bool IsUpdatePkU8() const { return Tag == static_cast(EReducerTag::UpdatePkU8); } + FORCEINLINE FUpdatePkU8Args GetAsUpdatePkU8() const + { + ensureMsgf(IsUpdatePkU8(), TEXT("Reducer does not hold UpdatePkU8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkU8!")); + return TypedData ? TypedData->Value : FUpdatePkU8Args(); + } + + static FReducer UpdatePkUuid(const FUpdatePkUuidArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdatePkUuid); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_pk_uuid"); + return Out; + } + + FORCEINLINE bool IsUpdatePkUuid() const { return Tag == static_cast(EReducerTag::UpdatePkUuid); } + FORCEINLINE FUpdatePkUuidArgs GetAsUpdatePkUuid() const + { + ensureMsgf(IsUpdatePkUuid(), TEXT("Reducer does not hold UpdatePkUuid!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdatePkUuid!")); + return TypedData ? TypedData->Value : FUpdatePkUuidArgs(); + } + + static FReducer UpdateUniqueBool(const FUpdateUniqueBoolArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueBool); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_bool"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueBool() const { return Tag == static_cast(EReducerTag::UpdateUniqueBool); } + FORCEINLINE FUpdateUniqueBoolArgs GetAsUpdateUniqueBool() const + { + ensureMsgf(IsUpdateUniqueBool(), TEXT("Reducer does not hold UpdateUniqueBool!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueBool!")); + return TypedData ? TypedData->Value : FUpdateUniqueBoolArgs(); + } + + static FReducer UpdateUniqueConnectionId(const FUpdateUniqueConnectionIdArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueConnectionId); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_connection_id"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueConnectionId() const { return Tag == static_cast(EReducerTag::UpdateUniqueConnectionId); } + FORCEINLINE FUpdateUniqueConnectionIdArgs GetAsUpdateUniqueConnectionId() const + { + ensureMsgf(IsUpdateUniqueConnectionId(), TEXT("Reducer does not hold UpdateUniqueConnectionId!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueConnectionId!")); + return TypedData ? TypedData->Value : FUpdateUniqueConnectionIdArgs(); + } + + static FReducer UpdateUniqueI128(const FUpdateUniqueI128Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueI128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_i_128"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueI128() const { return Tag == static_cast(EReducerTag::UpdateUniqueI128); } + FORCEINLINE FUpdateUniqueI128Args GetAsUpdateUniqueI128() const + { + ensureMsgf(IsUpdateUniqueI128(), TEXT("Reducer does not hold UpdateUniqueI128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueI128!")); + return TypedData ? TypedData->Value : FUpdateUniqueI128Args(); + } + + static FReducer UpdateUniqueI16(const FUpdateUniqueI16Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueI16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_i_16"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueI16() const { return Tag == static_cast(EReducerTag::UpdateUniqueI16); } + FORCEINLINE FUpdateUniqueI16Args GetAsUpdateUniqueI16() const + { + ensureMsgf(IsUpdateUniqueI16(), TEXT("Reducer does not hold UpdateUniqueI16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueI16!")); + return TypedData ? TypedData->Value : FUpdateUniqueI16Args(); + } + + static FReducer UpdateUniqueI256(const FUpdateUniqueI256Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueI256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_i_256"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueI256() const { return Tag == static_cast(EReducerTag::UpdateUniqueI256); } + FORCEINLINE FUpdateUniqueI256Args GetAsUpdateUniqueI256() const + { + ensureMsgf(IsUpdateUniqueI256(), TEXT("Reducer does not hold UpdateUniqueI256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueI256!")); + return TypedData ? TypedData->Value : FUpdateUniqueI256Args(); + } + + static FReducer UpdateUniqueI32(const FUpdateUniqueI32Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueI32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_i_32"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueI32() const { return Tag == static_cast(EReducerTag::UpdateUniqueI32); } + FORCEINLINE FUpdateUniqueI32Args GetAsUpdateUniqueI32() const + { + ensureMsgf(IsUpdateUniqueI32(), TEXT("Reducer does not hold UpdateUniqueI32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueI32!")); + return TypedData ? TypedData->Value : FUpdateUniqueI32Args(); + } + + static FReducer UpdateUniqueI64(const FUpdateUniqueI64Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueI64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_i_64"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueI64() const { return Tag == static_cast(EReducerTag::UpdateUniqueI64); } + FORCEINLINE FUpdateUniqueI64Args GetAsUpdateUniqueI64() const + { + ensureMsgf(IsUpdateUniqueI64(), TEXT("Reducer does not hold UpdateUniqueI64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueI64!")); + return TypedData ? TypedData->Value : FUpdateUniqueI64Args(); + } + + static FReducer UpdateUniqueI8(const FUpdateUniqueI8Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueI8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_i_8"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueI8() const { return Tag == static_cast(EReducerTag::UpdateUniqueI8); } + FORCEINLINE FUpdateUniqueI8Args GetAsUpdateUniqueI8() const + { + ensureMsgf(IsUpdateUniqueI8(), TEXT("Reducer does not hold UpdateUniqueI8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueI8!")); + return TypedData ? TypedData->Value : FUpdateUniqueI8Args(); + } + + static FReducer UpdateUniqueIdentity(const FUpdateUniqueIdentityArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueIdentity); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_identity"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueIdentity() const { return Tag == static_cast(EReducerTag::UpdateUniqueIdentity); } + FORCEINLINE FUpdateUniqueIdentityArgs GetAsUpdateUniqueIdentity() const + { + ensureMsgf(IsUpdateUniqueIdentity(), TEXT("Reducer does not hold UpdateUniqueIdentity!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueIdentity!")); + return TypedData ? TypedData->Value : FUpdateUniqueIdentityArgs(); + } + + static FReducer UpdateUniqueString(const FUpdateUniqueStringArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueString); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_string"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueString() const { return Tag == static_cast(EReducerTag::UpdateUniqueString); } + FORCEINLINE FUpdateUniqueStringArgs GetAsUpdateUniqueString() const + { + ensureMsgf(IsUpdateUniqueString(), TEXT("Reducer does not hold UpdateUniqueString!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueString!")); + return TypedData ? TypedData->Value : FUpdateUniqueStringArgs(); + } + + static FReducer UpdateUniqueU128(const FUpdateUniqueU128Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueU128); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_u_128"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueU128() const { return Tag == static_cast(EReducerTag::UpdateUniqueU128); } + FORCEINLINE FUpdateUniqueU128Args GetAsUpdateUniqueU128() const + { + ensureMsgf(IsUpdateUniqueU128(), TEXT("Reducer does not hold UpdateUniqueU128!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueU128!")); + return TypedData ? TypedData->Value : FUpdateUniqueU128Args(); + } + + static FReducer UpdateUniqueU16(const FUpdateUniqueU16Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueU16); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_u_16"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueU16() const { return Tag == static_cast(EReducerTag::UpdateUniqueU16); } + FORCEINLINE FUpdateUniqueU16Args GetAsUpdateUniqueU16() const + { + ensureMsgf(IsUpdateUniqueU16(), TEXT("Reducer does not hold UpdateUniqueU16!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueU16!")); + return TypedData ? TypedData->Value : FUpdateUniqueU16Args(); + } + + static FReducer UpdateUniqueU256(const FUpdateUniqueU256Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueU256); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_u_256"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueU256() const { return Tag == static_cast(EReducerTag::UpdateUniqueU256); } + FORCEINLINE FUpdateUniqueU256Args GetAsUpdateUniqueU256() const + { + ensureMsgf(IsUpdateUniqueU256(), TEXT("Reducer does not hold UpdateUniqueU256!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueU256!")); + return TypedData ? TypedData->Value : FUpdateUniqueU256Args(); + } + + static FReducer UpdateUniqueU32(const FUpdateUniqueU32Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueU32); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_u_32"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueU32() const { return Tag == static_cast(EReducerTag::UpdateUniqueU32); } + FORCEINLINE FUpdateUniqueU32Args GetAsUpdateUniqueU32() const + { + ensureMsgf(IsUpdateUniqueU32(), TEXT("Reducer does not hold UpdateUniqueU32!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueU32!")); + return TypedData ? TypedData->Value : FUpdateUniqueU32Args(); + } + + static FReducer UpdateUniqueU64(const FUpdateUniqueU64Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueU64); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_u_64"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueU64() const { return Tag == static_cast(EReducerTag::UpdateUniqueU64); } + FORCEINLINE FUpdateUniqueU64Args GetAsUpdateUniqueU64() const + { + ensureMsgf(IsUpdateUniqueU64(), TEXT("Reducer does not hold UpdateUniqueU64!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueU64!")); + return TypedData ? TypedData->Value : FUpdateUniqueU64Args(); + } + + static FReducer UpdateUniqueU8(const FUpdateUniqueU8Args& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueU8); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_u_8"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueU8() const { return Tag == static_cast(EReducerTag::UpdateUniqueU8); } + FORCEINLINE FUpdateUniqueU8Args GetAsUpdateUniqueU8() const + { + ensureMsgf(IsUpdateUniqueU8(), TEXT("Reducer does not hold UpdateUniqueU8!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueU8!")); + return TypedData ? TypedData->Value : FUpdateUniqueU8Args(); + } + + static FReducer UpdateUniqueUuid(const FUpdateUniqueUuidArgs& Value) + { + FReducer Out; + Out.Tag = static_cast(EReducerTag::UpdateUniqueUuid); + Out.Data = MakeShared>(Value); + Out.ReducerName = TEXT("update_unique_uuid"); + return Out; + } + + FORCEINLINE bool IsUpdateUniqueUuid() const { return Tag == static_cast(EReducerTag::UpdateUniqueUuid); } + FORCEINLINE FUpdateUniqueUuidArgs GetAsUpdateUniqueUuid() const + { + ensureMsgf(IsUpdateUniqueUuid(), TEXT("Reducer does not hold UpdateUniqueUuid!")); + const auto* TypedData = static_cast*>(Data.Get()); + ensureMsgf(TypedData != nullptr, TEXT("Reducer payload is missing or has the wrong type for UpdateUniqueUuid!")); + return TypedData ? TypedData->Value : FUpdateUniqueUuidArgs(); + } + + FORCEINLINE bool operator==(const FReducer& Other) const + { + if (Tag != Other.Tag || ReducerId != Other.ReducerId || RequestId != Other.RequestId || ReducerName != Other.ReducerName) return false; + switch (Tag) + { + case static_cast(EReducerTag::DeleteAllOneBool): + return GetAsDeleteAllOneBool() == Other.GetAsDeleteAllOneBool(); + case static_cast(EReducerTag::DeleteAllOneByteStruct): + return GetAsDeleteAllOneByteStruct() == Other.GetAsDeleteAllOneByteStruct(); + case static_cast(EReducerTag::DeleteAllOneEnumWithPayload): + return GetAsDeleteAllOneEnumWithPayload() == Other.GetAsDeleteAllOneEnumWithPayload(); + case static_cast(EReducerTag::DeleteAllOneEveryPrimitiveStruct): + return GetAsDeleteAllOneEveryPrimitiveStruct() == Other.GetAsDeleteAllOneEveryPrimitiveStruct(); + case static_cast(EReducerTag::DeleteAllOneEveryVecStruct): + return GetAsDeleteAllOneEveryVecStruct() == Other.GetAsDeleteAllOneEveryVecStruct(); + case static_cast(EReducerTag::DeleteAllOneF32): + return GetAsDeleteAllOneF32() == Other.GetAsDeleteAllOneF32(); + case static_cast(EReducerTag::DeleteAllOneF64): + return GetAsDeleteAllOneF64() == Other.GetAsDeleteAllOneF64(); + case static_cast(EReducerTag::DeleteAllOneI128): + return GetAsDeleteAllOneI128() == Other.GetAsDeleteAllOneI128(); + case static_cast(EReducerTag::DeleteAllOneI16): + return GetAsDeleteAllOneI16() == Other.GetAsDeleteAllOneI16(); + case static_cast(EReducerTag::DeleteAllOneI256): + return GetAsDeleteAllOneI256() == Other.GetAsDeleteAllOneI256(); + case static_cast(EReducerTag::DeleteAllOneI32): + return GetAsDeleteAllOneI32() == Other.GetAsDeleteAllOneI32(); + case static_cast(EReducerTag::DeleteAllOneI64): + return GetAsDeleteAllOneI64() == Other.GetAsDeleteAllOneI64(); + case static_cast(EReducerTag::DeleteAllOneI8): + return GetAsDeleteAllOneI8() == Other.GetAsDeleteAllOneI8(); + case static_cast(EReducerTag::DeleteAllOneIdentity): + return GetAsDeleteAllOneIdentity() == Other.GetAsDeleteAllOneIdentity(); + case static_cast(EReducerTag::DeleteAllOneSimpleEnum): + return GetAsDeleteAllOneSimpleEnum() == Other.GetAsDeleteAllOneSimpleEnum(); + case static_cast(EReducerTag::DeleteAllOneString): + return GetAsDeleteAllOneString() == Other.GetAsDeleteAllOneString(); + case static_cast(EReducerTag::DeleteAllOneTimestamp): + return GetAsDeleteAllOneTimestamp() == Other.GetAsDeleteAllOneTimestamp(); + case static_cast(EReducerTag::DeleteAllOneU128): + return GetAsDeleteAllOneU128() == Other.GetAsDeleteAllOneU128(); + case static_cast(EReducerTag::DeleteAllOneU16): + return GetAsDeleteAllOneU16() == Other.GetAsDeleteAllOneU16(); + case static_cast(EReducerTag::DeleteAllOneU256): + return GetAsDeleteAllOneU256() == Other.GetAsDeleteAllOneU256(); + case static_cast(EReducerTag::DeleteAllOneU32): + return GetAsDeleteAllOneU32() == Other.GetAsDeleteAllOneU32(); + case static_cast(EReducerTag::DeleteAllOneU64): + return GetAsDeleteAllOneU64() == Other.GetAsDeleteAllOneU64(); + case static_cast(EReducerTag::DeleteAllOneU8): + return GetAsDeleteAllOneU8() == Other.GetAsDeleteAllOneU8(); + case static_cast(EReducerTag::DeleteAllOneUnitStruct): + return GetAsDeleteAllOneUnitStruct() == Other.GetAsDeleteAllOneUnitStruct(); + case static_cast(EReducerTag::DeleteAllOneUuid): + return GetAsDeleteAllOneUuid() == Other.GetAsDeleteAllOneUuid(); + case static_cast(EReducerTag::DeleteAllOptionEveryPrimitiveStruct): + return GetAsDeleteAllOptionEveryPrimitiveStruct() == Other.GetAsDeleteAllOptionEveryPrimitiveStruct(); + case static_cast(EReducerTag::DeleteAllOptionI32): + return GetAsDeleteAllOptionI32() == Other.GetAsDeleteAllOptionI32(); + case static_cast(EReducerTag::DeleteAllOptionIdentity): + return GetAsDeleteAllOptionIdentity() == Other.GetAsDeleteAllOptionIdentity(); + case static_cast(EReducerTag::DeleteAllOptionSimpleEnum): + return GetAsDeleteAllOptionSimpleEnum() == Other.GetAsDeleteAllOptionSimpleEnum(); + case static_cast(EReducerTag::DeleteAllOptionString): + return GetAsDeleteAllOptionString() == Other.GetAsDeleteAllOptionString(); + case static_cast(EReducerTag::DeleteAllOptionUuid): + return GetAsDeleteAllOptionUuid() == Other.GetAsDeleteAllOptionUuid(); + case static_cast(EReducerTag::DeleteAllOptionVecOptionI32): + return GetAsDeleteAllOptionVecOptionI32() == Other.GetAsDeleteAllOptionVecOptionI32(); + case static_cast(EReducerTag::DeleteAllPkBool): + return GetAsDeleteAllPkBool() == Other.GetAsDeleteAllPkBool(); + case static_cast(EReducerTag::DeleteAllPkConnectionId): + return GetAsDeleteAllPkConnectionId() == Other.GetAsDeleteAllPkConnectionId(); + case static_cast(EReducerTag::DeleteAllPkI128): + return GetAsDeleteAllPkI128() == Other.GetAsDeleteAllPkI128(); + case static_cast(EReducerTag::DeleteAllPkI16): + return GetAsDeleteAllPkI16() == Other.GetAsDeleteAllPkI16(); + case static_cast(EReducerTag::DeleteAllPkI256): + return GetAsDeleteAllPkI256() == Other.GetAsDeleteAllPkI256(); + case static_cast(EReducerTag::DeleteAllPkI32): + return GetAsDeleteAllPkI32() == Other.GetAsDeleteAllPkI32(); + case static_cast(EReducerTag::DeleteAllPkI64): + return GetAsDeleteAllPkI64() == Other.GetAsDeleteAllPkI64(); + case static_cast(EReducerTag::DeleteAllPkI8): + return GetAsDeleteAllPkI8() == Other.GetAsDeleteAllPkI8(); + case static_cast(EReducerTag::DeleteAllPkIdentity): + return GetAsDeleteAllPkIdentity() == Other.GetAsDeleteAllPkIdentity(); + case static_cast(EReducerTag::DeleteAllPkString): + return GetAsDeleteAllPkString() == Other.GetAsDeleteAllPkString(); + case static_cast(EReducerTag::DeleteAllPkU128): + return GetAsDeleteAllPkU128() == Other.GetAsDeleteAllPkU128(); + case static_cast(EReducerTag::DeleteAllPkU16): + return GetAsDeleteAllPkU16() == Other.GetAsDeleteAllPkU16(); + case static_cast(EReducerTag::DeleteAllPkU256): + return GetAsDeleteAllPkU256() == Other.GetAsDeleteAllPkU256(); + case static_cast(EReducerTag::DeleteAllPkU32): + return GetAsDeleteAllPkU32() == Other.GetAsDeleteAllPkU32(); + case static_cast(EReducerTag::DeleteAllPkU32Two): + return GetAsDeleteAllPkU32Two() == Other.GetAsDeleteAllPkU32Two(); + case static_cast(EReducerTag::DeleteAllPkU64): + return GetAsDeleteAllPkU64() == Other.GetAsDeleteAllPkU64(); + case static_cast(EReducerTag::DeleteAllPkU8): + return GetAsDeleteAllPkU8() == Other.GetAsDeleteAllPkU8(); + case static_cast(EReducerTag::DeleteAllPkUuid): + return GetAsDeleteAllPkUuid() == Other.GetAsDeleteAllPkUuid(); + case static_cast(EReducerTag::DeleteAllUniqueBool): + return GetAsDeleteAllUniqueBool() == Other.GetAsDeleteAllUniqueBool(); + case static_cast(EReducerTag::DeleteAllUniqueConnectionId): + return GetAsDeleteAllUniqueConnectionId() == Other.GetAsDeleteAllUniqueConnectionId(); + case static_cast(EReducerTag::DeleteAllUniqueI128): + return GetAsDeleteAllUniqueI128() == Other.GetAsDeleteAllUniqueI128(); + case static_cast(EReducerTag::DeleteAllUniqueI16): + return GetAsDeleteAllUniqueI16() == Other.GetAsDeleteAllUniqueI16(); + case static_cast(EReducerTag::DeleteAllUniqueI256): + return GetAsDeleteAllUniqueI256() == Other.GetAsDeleteAllUniqueI256(); + case static_cast(EReducerTag::DeleteAllUniqueI32): + return GetAsDeleteAllUniqueI32() == Other.GetAsDeleteAllUniqueI32(); + case static_cast(EReducerTag::DeleteAllUniqueI64): + return GetAsDeleteAllUniqueI64() == Other.GetAsDeleteAllUniqueI64(); + case static_cast(EReducerTag::DeleteAllUniqueI8): + return GetAsDeleteAllUniqueI8() == Other.GetAsDeleteAllUniqueI8(); + case static_cast(EReducerTag::DeleteAllUniqueIdentity): + return GetAsDeleteAllUniqueIdentity() == Other.GetAsDeleteAllUniqueIdentity(); + case static_cast(EReducerTag::DeleteAllUniqueString): + return GetAsDeleteAllUniqueString() == Other.GetAsDeleteAllUniqueString(); + case static_cast(EReducerTag::DeleteAllUniqueU128): + return GetAsDeleteAllUniqueU128() == Other.GetAsDeleteAllUniqueU128(); + case static_cast(EReducerTag::DeleteAllUniqueU16): + return GetAsDeleteAllUniqueU16() == Other.GetAsDeleteAllUniqueU16(); + case static_cast(EReducerTag::DeleteAllUniqueU256): + return GetAsDeleteAllUniqueU256() == Other.GetAsDeleteAllUniqueU256(); + case static_cast(EReducerTag::DeleteAllUniqueU32): + return GetAsDeleteAllUniqueU32() == Other.GetAsDeleteAllUniqueU32(); + case static_cast(EReducerTag::DeleteAllUniqueU64): + return GetAsDeleteAllUniqueU64() == Other.GetAsDeleteAllUniqueU64(); + case static_cast(EReducerTag::DeleteAllUniqueU8): + return GetAsDeleteAllUniqueU8() == Other.GetAsDeleteAllUniqueU8(); + case static_cast(EReducerTag::DeleteAllUniqueUuid): + return GetAsDeleteAllUniqueUuid() == Other.GetAsDeleteAllUniqueUuid(); + case static_cast(EReducerTag::DeleteAllVecBool): + return GetAsDeleteAllVecBool() == Other.GetAsDeleteAllVecBool(); + case static_cast(EReducerTag::DeleteAllVecByteStruct): + return GetAsDeleteAllVecByteStruct() == Other.GetAsDeleteAllVecByteStruct(); + case static_cast(EReducerTag::DeleteAllVecEnumWithPayload): + return GetAsDeleteAllVecEnumWithPayload() == Other.GetAsDeleteAllVecEnumWithPayload(); + case static_cast(EReducerTag::DeleteAllVecEveryPrimitiveStruct): + return GetAsDeleteAllVecEveryPrimitiveStruct() == Other.GetAsDeleteAllVecEveryPrimitiveStruct(); + case static_cast(EReducerTag::DeleteAllVecEveryVecStruct): + return GetAsDeleteAllVecEveryVecStruct() == Other.GetAsDeleteAllVecEveryVecStruct(); + case static_cast(EReducerTag::DeleteAllVecF32): + return GetAsDeleteAllVecF32() == Other.GetAsDeleteAllVecF32(); + case static_cast(EReducerTag::DeleteAllVecF64): + return GetAsDeleteAllVecF64() == Other.GetAsDeleteAllVecF64(); + case static_cast(EReducerTag::DeleteAllVecI128): + return GetAsDeleteAllVecI128() == Other.GetAsDeleteAllVecI128(); + case static_cast(EReducerTag::DeleteAllVecI16): + return GetAsDeleteAllVecI16() == Other.GetAsDeleteAllVecI16(); + case static_cast(EReducerTag::DeleteAllVecI256): + return GetAsDeleteAllVecI256() == Other.GetAsDeleteAllVecI256(); + case static_cast(EReducerTag::DeleteAllVecI32): + return GetAsDeleteAllVecI32() == Other.GetAsDeleteAllVecI32(); + case static_cast(EReducerTag::DeleteAllVecI64): + return GetAsDeleteAllVecI64() == Other.GetAsDeleteAllVecI64(); + case static_cast(EReducerTag::DeleteAllVecI8): + return GetAsDeleteAllVecI8() == Other.GetAsDeleteAllVecI8(); + case static_cast(EReducerTag::DeleteAllVecIdentity): + return GetAsDeleteAllVecIdentity() == Other.GetAsDeleteAllVecIdentity(); + case static_cast(EReducerTag::DeleteAllVecSimpleEnum): + return GetAsDeleteAllVecSimpleEnum() == Other.GetAsDeleteAllVecSimpleEnum(); + case static_cast(EReducerTag::DeleteAllVecString): + return GetAsDeleteAllVecString() == Other.GetAsDeleteAllVecString(); + case static_cast(EReducerTag::DeleteAllVecTimestamp): + return GetAsDeleteAllVecTimestamp() == Other.GetAsDeleteAllVecTimestamp(); + case static_cast(EReducerTag::DeleteAllVecU128): + return GetAsDeleteAllVecU128() == Other.GetAsDeleteAllVecU128(); + case static_cast(EReducerTag::DeleteAllVecU16): + return GetAsDeleteAllVecU16() == Other.GetAsDeleteAllVecU16(); + case static_cast(EReducerTag::DeleteAllVecU256): + return GetAsDeleteAllVecU256() == Other.GetAsDeleteAllVecU256(); + case static_cast(EReducerTag::DeleteAllVecU32): + return GetAsDeleteAllVecU32() == Other.GetAsDeleteAllVecU32(); + case static_cast(EReducerTag::DeleteAllVecU64): + return GetAsDeleteAllVecU64() == Other.GetAsDeleteAllVecU64(); + case static_cast(EReducerTag::DeleteAllVecU8): + return GetAsDeleteAllVecU8() == Other.GetAsDeleteAllVecU8(); + case static_cast(EReducerTag::DeleteAllVecUnitStruct): + return GetAsDeleteAllVecUnitStruct() == Other.GetAsDeleteAllVecUnitStruct(); + case static_cast(EReducerTag::DeleteAllVecUuid): + return GetAsDeleteAllVecUuid() == Other.GetAsDeleteAllVecUuid(); + case static_cast(EReducerTag::DeleteFromBtreeU32): + return GetAsDeleteFromBtreeU32() == Other.GetAsDeleteFromBtreeU32(); + case static_cast(EReducerTag::DeleteLargeTable): + return GetAsDeleteLargeTable() == Other.GetAsDeleteLargeTable(); + case static_cast(EReducerTag::DeletePkBool): + return GetAsDeletePkBool() == Other.GetAsDeletePkBool(); + case static_cast(EReducerTag::DeletePkConnectionId): + return GetAsDeletePkConnectionId() == Other.GetAsDeletePkConnectionId(); + case static_cast(EReducerTag::DeletePkI128): + return GetAsDeletePkI128() == Other.GetAsDeletePkI128(); + case static_cast(EReducerTag::DeletePkI16): + return GetAsDeletePkI16() == Other.GetAsDeletePkI16(); + case static_cast(EReducerTag::DeletePkI256): + return GetAsDeletePkI256() == Other.GetAsDeletePkI256(); + case static_cast(EReducerTag::DeletePkI32): + return GetAsDeletePkI32() == Other.GetAsDeletePkI32(); + case static_cast(EReducerTag::DeletePkI64): + return GetAsDeletePkI64() == Other.GetAsDeletePkI64(); + case static_cast(EReducerTag::DeletePkI8): + return GetAsDeletePkI8() == Other.GetAsDeletePkI8(); + case static_cast(EReducerTag::DeletePkIdentity): + return GetAsDeletePkIdentity() == Other.GetAsDeletePkIdentity(); + case static_cast(EReducerTag::DeletePkString): + return GetAsDeletePkString() == Other.GetAsDeletePkString(); + case static_cast(EReducerTag::DeletePkU128): + return GetAsDeletePkU128() == Other.GetAsDeletePkU128(); + case static_cast(EReducerTag::DeletePkU16): + return GetAsDeletePkU16() == Other.GetAsDeletePkU16(); + case static_cast(EReducerTag::DeletePkU256): + return GetAsDeletePkU256() == Other.GetAsDeletePkU256(); + case static_cast(EReducerTag::DeletePkU32): + return GetAsDeletePkU32() == Other.GetAsDeletePkU32(); + case static_cast(EReducerTag::DeletePkU32InsertPkU32Two): + return GetAsDeletePkU32InsertPkU32Two() == Other.GetAsDeletePkU32InsertPkU32Two(); + case static_cast(EReducerTag::DeletePkU32Two): + return GetAsDeletePkU32Two() == Other.GetAsDeletePkU32Two(); + case static_cast(EReducerTag::DeletePkU64): + return GetAsDeletePkU64() == Other.GetAsDeletePkU64(); + case static_cast(EReducerTag::DeletePkU8): + return GetAsDeletePkU8() == Other.GetAsDeletePkU8(); + case static_cast(EReducerTag::DeletePkUuid): + return GetAsDeletePkUuid() == Other.GetAsDeletePkUuid(); + case static_cast(EReducerTag::DeleteUniqueBool): + return GetAsDeleteUniqueBool() == Other.GetAsDeleteUniqueBool(); + case static_cast(EReducerTag::DeleteUniqueConnectionId): + return GetAsDeleteUniqueConnectionId() == Other.GetAsDeleteUniqueConnectionId(); + case static_cast(EReducerTag::DeleteUniqueI128): + return GetAsDeleteUniqueI128() == Other.GetAsDeleteUniqueI128(); + case static_cast(EReducerTag::DeleteUniqueI16): + return GetAsDeleteUniqueI16() == Other.GetAsDeleteUniqueI16(); + case static_cast(EReducerTag::DeleteUniqueI256): + return GetAsDeleteUniqueI256() == Other.GetAsDeleteUniqueI256(); + case static_cast(EReducerTag::DeleteUniqueI32): + return GetAsDeleteUniqueI32() == Other.GetAsDeleteUniqueI32(); + case static_cast(EReducerTag::DeleteUniqueI64): + return GetAsDeleteUniqueI64() == Other.GetAsDeleteUniqueI64(); + case static_cast(EReducerTag::DeleteUniqueI8): + return GetAsDeleteUniqueI8() == Other.GetAsDeleteUniqueI8(); + case static_cast(EReducerTag::DeleteUniqueIdentity): + return GetAsDeleteUniqueIdentity() == Other.GetAsDeleteUniqueIdentity(); + case static_cast(EReducerTag::DeleteUniqueString): + return GetAsDeleteUniqueString() == Other.GetAsDeleteUniqueString(); + case static_cast(EReducerTag::DeleteUniqueU128): + return GetAsDeleteUniqueU128() == Other.GetAsDeleteUniqueU128(); + case static_cast(EReducerTag::DeleteUniqueU16): + return GetAsDeleteUniqueU16() == Other.GetAsDeleteUniqueU16(); + case static_cast(EReducerTag::DeleteUniqueU256): + return GetAsDeleteUniqueU256() == Other.GetAsDeleteUniqueU256(); + case static_cast(EReducerTag::DeleteUniqueU32): + return GetAsDeleteUniqueU32() == Other.GetAsDeleteUniqueU32(); + case static_cast(EReducerTag::DeleteUniqueU64): + return GetAsDeleteUniqueU64() == Other.GetAsDeleteUniqueU64(); + case static_cast(EReducerTag::DeleteUniqueU8): + return GetAsDeleteUniqueU8() == Other.GetAsDeleteUniqueU8(); + case static_cast(EReducerTag::DeleteUniqueUuid): + return GetAsDeleteUniqueUuid() == Other.GetAsDeleteUniqueUuid(); + case static_cast(EReducerTag::InsertCallTimestamp): + return GetAsInsertCallTimestamp() == Other.GetAsInsertCallTimestamp(); + case static_cast(EReducerTag::InsertCallUuidV4): + return GetAsInsertCallUuidV4() == Other.GetAsInsertCallUuidV4(); + case static_cast(EReducerTag::InsertCallUuidV7): + return GetAsInsertCallUuidV7() == Other.GetAsInsertCallUuidV7(); + case static_cast(EReducerTag::InsertCallerOneConnectionId): + return GetAsInsertCallerOneConnectionId() == Other.GetAsInsertCallerOneConnectionId(); + case static_cast(EReducerTag::InsertCallerOneIdentity): + return GetAsInsertCallerOneIdentity() == Other.GetAsInsertCallerOneIdentity(); + case static_cast(EReducerTag::InsertCallerPkConnectionId): + return GetAsInsertCallerPkConnectionId() == Other.GetAsInsertCallerPkConnectionId(); + case static_cast(EReducerTag::InsertCallerPkIdentity): + return GetAsInsertCallerPkIdentity() == Other.GetAsInsertCallerPkIdentity(); + case static_cast(EReducerTag::InsertCallerUniqueConnectionId): + return GetAsInsertCallerUniqueConnectionId() == Other.GetAsInsertCallerUniqueConnectionId(); + case static_cast(EReducerTag::InsertCallerUniqueIdentity): + return GetAsInsertCallerUniqueIdentity() == Other.GetAsInsertCallerUniqueIdentity(); + case static_cast(EReducerTag::InsertCallerVecConnectionId): + return GetAsInsertCallerVecConnectionId() == Other.GetAsInsertCallerVecConnectionId(); + case static_cast(EReducerTag::InsertCallerVecIdentity): + return GetAsInsertCallerVecIdentity() == Other.GetAsInsertCallerVecIdentity(); + case static_cast(EReducerTag::InsertIntoBtreeU32): + return GetAsInsertIntoBtreeU32() == Other.GetAsInsertIntoBtreeU32(); + case static_cast(EReducerTag::InsertIntoIndexedSimpleEnum): + return GetAsInsertIntoIndexedSimpleEnum() == Other.GetAsInsertIntoIndexedSimpleEnum(); + case static_cast(EReducerTag::InsertIntoPkBtreeU32): + return GetAsInsertIntoPkBtreeU32() == Other.GetAsInsertIntoPkBtreeU32(); + case static_cast(EReducerTag::InsertLargeTable): + return GetAsInsertLargeTable() == Other.GetAsInsertLargeTable(); + case static_cast(EReducerTag::InsertOneBool): + return GetAsInsertOneBool() == Other.GetAsInsertOneBool(); + case static_cast(EReducerTag::InsertOneByteStruct): + return GetAsInsertOneByteStruct() == Other.GetAsInsertOneByteStruct(); + case static_cast(EReducerTag::InsertOneConnectionId): + return GetAsInsertOneConnectionId() == Other.GetAsInsertOneConnectionId(); + case static_cast(EReducerTag::InsertOneEnumWithPayload): + return GetAsInsertOneEnumWithPayload() == Other.GetAsInsertOneEnumWithPayload(); + case static_cast(EReducerTag::InsertOneEveryPrimitiveStruct): + return GetAsInsertOneEveryPrimitiveStruct() == Other.GetAsInsertOneEveryPrimitiveStruct(); + case static_cast(EReducerTag::InsertOneEveryVecStruct): + return GetAsInsertOneEveryVecStruct() == Other.GetAsInsertOneEveryVecStruct(); + case static_cast(EReducerTag::InsertOneF32): + return GetAsInsertOneF32() == Other.GetAsInsertOneF32(); + case static_cast(EReducerTag::InsertOneF64): + return GetAsInsertOneF64() == Other.GetAsInsertOneF64(); + case static_cast(EReducerTag::InsertOneI128): + return GetAsInsertOneI128() == Other.GetAsInsertOneI128(); + case static_cast(EReducerTag::InsertOneI16): + return GetAsInsertOneI16() == Other.GetAsInsertOneI16(); + case static_cast(EReducerTag::InsertOneI256): + return GetAsInsertOneI256() == Other.GetAsInsertOneI256(); + case static_cast(EReducerTag::InsertOneI32): + return GetAsInsertOneI32() == Other.GetAsInsertOneI32(); + case static_cast(EReducerTag::InsertOneI64): + return GetAsInsertOneI64() == Other.GetAsInsertOneI64(); + case static_cast(EReducerTag::InsertOneI8): + return GetAsInsertOneI8() == Other.GetAsInsertOneI8(); + case static_cast(EReducerTag::InsertOneIdentity): + return GetAsInsertOneIdentity() == Other.GetAsInsertOneIdentity(); + case static_cast(EReducerTag::InsertOneSimpleEnum): + return GetAsInsertOneSimpleEnum() == Other.GetAsInsertOneSimpleEnum(); + case static_cast(EReducerTag::InsertOneString): + return GetAsInsertOneString() == Other.GetAsInsertOneString(); + case static_cast(EReducerTag::InsertOneTimestamp): + return GetAsInsertOneTimestamp() == Other.GetAsInsertOneTimestamp(); + case static_cast(EReducerTag::InsertOneU128): + return GetAsInsertOneU128() == Other.GetAsInsertOneU128(); + case static_cast(EReducerTag::InsertOneU16): + return GetAsInsertOneU16() == Other.GetAsInsertOneU16(); + case static_cast(EReducerTag::InsertOneU256): + return GetAsInsertOneU256() == Other.GetAsInsertOneU256(); + case static_cast(EReducerTag::InsertOneU32): + return GetAsInsertOneU32() == Other.GetAsInsertOneU32(); + case static_cast(EReducerTag::InsertOneU64): + return GetAsInsertOneU64() == Other.GetAsInsertOneU64(); + case static_cast(EReducerTag::InsertOneU8): + return GetAsInsertOneU8() == Other.GetAsInsertOneU8(); + case static_cast(EReducerTag::InsertOneUnitStruct): + return GetAsInsertOneUnitStruct() == Other.GetAsInsertOneUnitStruct(); + case static_cast(EReducerTag::InsertOneUuid): + return GetAsInsertOneUuid() == Other.GetAsInsertOneUuid(); + case static_cast(EReducerTag::InsertOptionEveryPrimitiveStruct): + return GetAsInsertOptionEveryPrimitiveStruct() == Other.GetAsInsertOptionEveryPrimitiveStruct(); + case static_cast(EReducerTag::InsertOptionI32): + return GetAsInsertOptionI32() == Other.GetAsInsertOptionI32(); + case static_cast(EReducerTag::InsertOptionIdentity): + return GetAsInsertOptionIdentity() == Other.GetAsInsertOptionIdentity(); + case static_cast(EReducerTag::InsertOptionSimpleEnum): + return GetAsInsertOptionSimpleEnum() == Other.GetAsInsertOptionSimpleEnum(); + case static_cast(EReducerTag::InsertOptionString): + return GetAsInsertOptionString() == Other.GetAsInsertOptionString(); + case static_cast(EReducerTag::InsertOptionUuid): + return GetAsInsertOptionUuid() == Other.GetAsInsertOptionUuid(); + case static_cast(EReducerTag::InsertOptionVecOptionI32): + return GetAsInsertOptionVecOptionI32() == Other.GetAsInsertOptionVecOptionI32(); + case static_cast(EReducerTag::InsertPkBool): + return GetAsInsertPkBool() == Other.GetAsInsertPkBool(); + case static_cast(EReducerTag::InsertPkConnectionId): + return GetAsInsertPkConnectionId() == Other.GetAsInsertPkConnectionId(); + case static_cast(EReducerTag::InsertPkI128): + return GetAsInsertPkI128() == Other.GetAsInsertPkI128(); + case static_cast(EReducerTag::InsertPkI16): + return GetAsInsertPkI16() == Other.GetAsInsertPkI16(); + case static_cast(EReducerTag::InsertPkI256): + return GetAsInsertPkI256() == Other.GetAsInsertPkI256(); + case static_cast(EReducerTag::InsertPkI32): + return GetAsInsertPkI32() == Other.GetAsInsertPkI32(); + case static_cast(EReducerTag::InsertPkI64): + return GetAsInsertPkI64() == Other.GetAsInsertPkI64(); + case static_cast(EReducerTag::InsertPkI8): + return GetAsInsertPkI8() == Other.GetAsInsertPkI8(); + case static_cast(EReducerTag::InsertPkIdentity): + return GetAsInsertPkIdentity() == Other.GetAsInsertPkIdentity(); + case static_cast(EReducerTag::InsertPkSimpleEnum): + return GetAsInsertPkSimpleEnum() == Other.GetAsInsertPkSimpleEnum(); + case static_cast(EReducerTag::InsertPkString): + return GetAsInsertPkString() == Other.GetAsInsertPkString(); + case static_cast(EReducerTag::InsertPkU128): + return GetAsInsertPkU128() == Other.GetAsInsertPkU128(); + case static_cast(EReducerTag::InsertPkU16): + return GetAsInsertPkU16() == Other.GetAsInsertPkU16(); + case static_cast(EReducerTag::InsertPkU256): + return GetAsInsertPkU256() == Other.GetAsInsertPkU256(); + case static_cast(EReducerTag::InsertPkU32): + return GetAsInsertPkU32() == Other.GetAsInsertPkU32(); + case static_cast(EReducerTag::InsertPkU32Two): + return GetAsInsertPkU32Two() == Other.GetAsInsertPkU32Two(); + case static_cast(EReducerTag::InsertPkU64): + return GetAsInsertPkU64() == Other.GetAsInsertPkU64(); + case static_cast(EReducerTag::InsertPkU8): + return GetAsInsertPkU8() == Other.GetAsInsertPkU8(); + case static_cast(EReducerTag::InsertPkUuid): + return GetAsInsertPkUuid() == Other.GetAsInsertPkUuid(); + case static_cast(EReducerTag::InsertPrimitivesAsStrings): + return GetAsInsertPrimitivesAsStrings() == Other.GetAsInsertPrimitivesAsStrings(); + case static_cast(EReducerTag::InsertResultEveryPrimitiveStructString): + return GetAsInsertResultEveryPrimitiveStructString() == Other.GetAsInsertResultEveryPrimitiveStructString(); + case static_cast(EReducerTag::InsertResultI32String): + return GetAsInsertResultI32String() == Other.GetAsInsertResultI32String(); + case static_cast(EReducerTag::InsertResultIdentityString): + return GetAsInsertResultIdentityString() == Other.GetAsInsertResultIdentityString(); + case static_cast(EReducerTag::InsertResultSimpleEnumI32): + return GetAsInsertResultSimpleEnumI32() == Other.GetAsInsertResultSimpleEnumI32(); + case static_cast(EReducerTag::InsertResultStringI32): + return GetAsInsertResultStringI32() == Other.GetAsInsertResultStringI32(); + case static_cast(EReducerTag::InsertResultVecI32String): + return GetAsInsertResultVecI32String() == Other.GetAsInsertResultVecI32String(); + case static_cast(EReducerTag::InsertTableHoldsTable): + return GetAsInsertTableHoldsTable() == Other.GetAsInsertTableHoldsTable(); + case static_cast(EReducerTag::InsertUniqueBool): + return GetAsInsertUniqueBool() == Other.GetAsInsertUniqueBool(); + case static_cast(EReducerTag::InsertUniqueConnectionId): + return GetAsInsertUniqueConnectionId() == Other.GetAsInsertUniqueConnectionId(); + case static_cast(EReducerTag::InsertUniqueI128): + return GetAsInsertUniqueI128() == Other.GetAsInsertUniqueI128(); + case static_cast(EReducerTag::InsertUniqueI16): + return GetAsInsertUniqueI16() == Other.GetAsInsertUniqueI16(); + case static_cast(EReducerTag::InsertUniqueI256): + return GetAsInsertUniqueI256() == Other.GetAsInsertUniqueI256(); + case static_cast(EReducerTag::InsertUniqueI32): + return GetAsInsertUniqueI32() == Other.GetAsInsertUniqueI32(); + case static_cast(EReducerTag::InsertUniqueI64): + return GetAsInsertUniqueI64() == Other.GetAsInsertUniqueI64(); + case static_cast(EReducerTag::InsertUniqueI8): + return GetAsInsertUniqueI8() == Other.GetAsInsertUniqueI8(); + case static_cast(EReducerTag::InsertUniqueIdentity): + return GetAsInsertUniqueIdentity() == Other.GetAsInsertUniqueIdentity(); + case static_cast(EReducerTag::InsertUniqueString): + return GetAsInsertUniqueString() == Other.GetAsInsertUniqueString(); + case static_cast(EReducerTag::InsertUniqueU128): + return GetAsInsertUniqueU128() == Other.GetAsInsertUniqueU128(); + case static_cast(EReducerTag::InsertUniqueU16): + return GetAsInsertUniqueU16() == Other.GetAsInsertUniqueU16(); + case static_cast(EReducerTag::InsertUniqueU256): + return GetAsInsertUniqueU256() == Other.GetAsInsertUniqueU256(); + case static_cast(EReducerTag::InsertUniqueU32): + return GetAsInsertUniqueU32() == Other.GetAsInsertUniqueU32(); + case static_cast(EReducerTag::InsertUniqueU32UpdatePkU32): + return GetAsInsertUniqueU32UpdatePkU32() == Other.GetAsInsertUniqueU32UpdatePkU32(); + case static_cast(EReducerTag::InsertUniqueU64): + return GetAsInsertUniqueU64() == Other.GetAsInsertUniqueU64(); + case static_cast(EReducerTag::InsertUniqueU8): + return GetAsInsertUniqueU8() == Other.GetAsInsertUniqueU8(); + case static_cast(EReducerTag::InsertUniqueUuid): + return GetAsInsertUniqueUuid() == Other.GetAsInsertUniqueUuid(); + case static_cast(EReducerTag::InsertUser): + return GetAsInsertUser() == Other.GetAsInsertUser(); + case static_cast(EReducerTag::InsertVecBool): + return GetAsInsertVecBool() == Other.GetAsInsertVecBool(); + case static_cast(EReducerTag::InsertVecByteStruct): + return GetAsInsertVecByteStruct() == Other.GetAsInsertVecByteStruct(); + case static_cast(EReducerTag::InsertVecConnectionId): + return GetAsInsertVecConnectionId() == Other.GetAsInsertVecConnectionId(); + case static_cast(EReducerTag::InsertVecEnumWithPayload): + return GetAsInsertVecEnumWithPayload() == Other.GetAsInsertVecEnumWithPayload(); + case static_cast(EReducerTag::InsertVecEveryPrimitiveStruct): + return GetAsInsertVecEveryPrimitiveStruct() == Other.GetAsInsertVecEveryPrimitiveStruct(); + case static_cast(EReducerTag::InsertVecEveryVecStruct): + return GetAsInsertVecEveryVecStruct() == Other.GetAsInsertVecEveryVecStruct(); + case static_cast(EReducerTag::InsertVecF32): + return GetAsInsertVecF32() == Other.GetAsInsertVecF32(); + case static_cast(EReducerTag::InsertVecF64): + return GetAsInsertVecF64() == Other.GetAsInsertVecF64(); + case static_cast(EReducerTag::InsertVecI128): + return GetAsInsertVecI128() == Other.GetAsInsertVecI128(); + case static_cast(EReducerTag::InsertVecI16): + return GetAsInsertVecI16() == Other.GetAsInsertVecI16(); + case static_cast(EReducerTag::InsertVecI256): + return GetAsInsertVecI256() == Other.GetAsInsertVecI256(); + case static_cast(EReducerTag::InsertVecI32): + return GetAsInsertVecI32() == Other.GetAsInsertVecI32(); + case static_cast(EReducerTag::InsertVecI64): + return GetAsInsertVecI64() == Other.GetAsInsertVecI64(); + case static_cast(EReducerTag::InsertVecI8): + return GetAsInsertVecI8() == Other.GetAsInsertVecI8(); + case static_cast(EReducerTag::InsertVecIdentity): + return GetAsInsertVecIdentity() == Other.GetAsInsertVecIdentity(); + case static_cast(EReducerTag::InsertVecSimpleEnum): + return GetAsInsertVecSimpleEnum() == Other.GetAsInsertVecSimpleEnum(); + case static_cast(EReducerTag::InsertVecString): + return GetAsInsertVecString() == Other.GetAsInsertVecString(); + case static_cast(EReducerTag::InsertVecTimestamp): + return GetAsInsertVecTimestamp() == Other.GetAsInsertVecTimestamp(); + case static_cast(EReducerTag::InsertVecU128): + return GetAsInsertVecU128() == Other.GetAsInsertVecU128(); + case static_cast(EReducerTag::InsertVecU16): + return GetAsInsertVecU16() == Other.GetAsInsertVecU16(); + case static_cast(EReducerTag::InsertVecU256): + return GetAsInsertVecU256() == Other.GetAsInsertVecU256(); + case static_cast(EReducerTag::InsertVecU32): + return GetAsInsertVecU32() == Other.GetAsInsertVecU32(); + case static_cast(EReducerTag::InsertVecU64): + return GetAsInsertVecU64() == Other.GetAsInsertVecU64(); + case static_cast(EReducerTag::InsertVecU8): + return GetAsInsertVecU8() == Other.GetAsInsertVecU8(); + case static_cast(EReducerTag::InsertVecUnitStruct): + return GetAsInsertVecUnitStruct() == Other.GetAsInsertVecUnitStruct(); + case static_cast(EReducerTag::InsertVecUuid): + return GetAsInsertVecUuid() == Other.GetAsInsertVecUuid(); + case static_cast(EReducerTag::NoOpSucceeds): + return GetAsNoOpSucceeds() == Other.GetAsNoOpSucceeds(); + case static_cast(EReducerTag::SortedUuidsInsert): + return GetAsSortedUuidsInsert() == Other.GetAsSortedUuidsInsert(); + case static_cast(EReducerTag::UpdateIndexedSimpleEnum): + return GetAsUpdateIndexedSimpleEnum() == Other.GetAsUpdateIndexedSimpleEnum(); + case static_cast(EReducerTag::UpdatePkBool): + return GetAsUpdatePkBool() == Other.GetAsUpdatePkBool(); + case static_cast(EReducerTag::UpdatePkConnectionId): + return GetAsUpdatePkConnectionId() == Other.GetAsUpdatePkConnectionId(); + case static_cast(EReducerTag::UpdatePkI128): + return GetAsUpdatePkI128() == Other.GetAsUpdatePkI128(); + case static_cast(EReducerTag::UpdatePkI16): + return GetAsUpdatePkI16() == Other.GetAsUpdatePkI16(); + case static_cast(EReducerTag::UpdatePkI256): + return GetAsUpdatePkI256() == Other.GetAsUpdatePkI256(); + case static_cast(EReducerTag::UpdatePkI32): + return GetAsUpdatePkI32() == Other.GetAsUpdatePkI32(); + case static_cast(EReducerTag::UpdatePkI64): + return GetAsUpdatePkI64() == Other.GetAsUpdatePkI64(); + case static_cast(EReducerTag::UpdatePkI8): + return GetAsUpdatePkI8() == Other.GetAsUpdatePkI8(); + case static_cast(EReducerTag::UpdatePkIdentity): + return GetAsUpdatePkIdentity() == Other.GetAsUpdatePkIdentity(); + case static_cast(EReducerTag::UpdatePkSimpleEnum): + return GetAsUpdatePkSimpleEnum() == Other.GetAsUpdatePkSimpleEnum(); + case static_cast(EReducerTag::UpdatePkString): + return GetAsUpdatePkString() == Other.GetAsUpdatePkString(); + case static_cast(EReducerTag::UpdatePkU128): + return GetAsUpdatePkU128() == Other.GetAsUpdatePkU128(); + case static_cast(EReducerTag::UpdatePkU16): + return GetAsUpdatePkU16() == Other.GetAsUpdatePkU16(); + case static_cast(EReducerTag::UpdatePkU256): + return GetAsUpdatePkU256() == Other.GetAsUpdatePkU256(); + case static_cast(EReducerTag::UpdatePkU32): + return GetAsUpdatePkU32() == Other.GetAsUpdatePkU32(); + case static_cast(EReducerTag::UpdatePkU32Two): + return GetAsUpdatePkU32Two() == Other.GetAsUpdatePkU32Two(); + case static_cast(EReducerTag::UpdatePkU64): + return GetAsUpdatePkU64() == Other.GetAsUpdatePkU64(); + case static_cast(EReducerTag::UpdatePkU8): + return GetAsUpdatePkU8() == Other.GetAsUpdatePkU8(); + case static_cast(EReducerTag::UpdatePkUuid): + return GetAsUpdatePkUuid() == Other.GetAsUpdatePkUuid(); + case static_cast(EReducerTag::UpdateUniqueBool): + return GetAsUpdateUniqueBool() == Other.GetAsUpdateUniqueBool(); + case static_cast(EReducerTag::UpdateUniqueConnectionId): + return GetAsUpdateUniqueConnectionId() == Other.GetAsUpdateUniqueConnectionId(); + case static_cast(EReducerTag::UpdateUniqueI128): + return GetAsUpdateUniqueI128() == Other.GetAsUpdateUniqueI128(); + case static_cast(EReducerTag::UpdateUniqueI16): + return GetAsUpdateUniqueI16() == Other.GetAsUpdateUniqueI16(); + case static_cast(EReducerTag::UpdateUniqueI256): + return GetAsUpdateUniqueI256() == Other.GetAsUpdateUniqueI256(); + case static_cast(EReducerTag::UpdateUniqueI32): + return GetAsUpdateUniqueI32() == Other.GetAsUpdateUniqueI32(); + case static_cast(EReducerTag::UpdateUniqueI64): + return GetAsUpdateUniqueI64() == Other.GetAsUpdateUniqueI64(); + case static_cast(EReducerTag::UpdateUniqueI8): + return GetAsUpdateUniqueI8() == Other.GetAsUpdateUniqueI8(); + case static_cast(EReducerTag::UpdateUniqueIdentity): + return GetAsUpdateUniqueIdentity() == Other.GetAsUpdateUniqueIdentity(); + case static_cast(EReducerTag::UpdateUniqueString): + return GetAsUpdateUniqueString() == Other.GetAsUpdateUniqueString(); + case static_cast(EReducerTag::UpdateUniqueU128): + return GetAsUpdateUniqueU128() == Other.GetAsUpdateUniqueU128(); + case static_cast(EReducerTag::UpdateUniqueU16): + return GetAsUpdateUniqueU16() == Other.GetAsUpdateUniqueU16(); + case static_cast(EReducerTag::UpdateUniqueU256): + return GetAsUpdateUniqueU256() == Other.GetAsUpdateUniqueU256(); + case static_cast(EReducerTag::UpdateUniqueU32): + return GetAsUpdateUniqueU32() == Other.GetAsUpdateUniqueU32(); + case static_cast(EReducerTag::UpdateUniqueU64): + return GetAsUpdateUniqueU64() == Other.GetAsUpdateUniqueU64(); + case static_cast(EReducerTag::UpdateUniqueU8): + return GetAsUpdateUniqueU8() == Other.GetAsUpdateUniqueU8(); + case static_cast(EReducerTag::UpdateUniqueUuid): + return GetAsUpdateUniqueUuid() == Other.GetAsUpdateUniqueUuid(); + default: return false; + } + } + FORCEINLINE bool operator!=(const FReducer& Other) const { return !(*this == Other); } +}; + +UCLASS() +class TESTCLIENT_API UReducerBpLib : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +private: + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneBool(const FDeleteAllOneBoolArgs& Value) { + return FReducer::DeleteAllOneBool(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneBool(const FReducer& Reducer) { return Reducer.IsDeleteAllOneBool(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneBoolArgs GetAsDeleteAllOneBool(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneBool(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneByteStruct(const FDeleteAllOneByteStructArgs& Value) { + return FReducer::DeleteAllOneByteStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneByteStruct(const FReducer& Reducer) { return Reducer.IsDeleteAllOneByteStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneByteStructArgs GetAsDeleteAllOneByteStruct(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneByteStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneEnumWithPayload(const FDeleteAllOneEnumWithPayloadArgs& Value) { + return FReducer::DeleteAllOneEnumWithPayload(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneEnumWithPayload(const FReducer& Reducer) { return Reducer.IsDeleteAllOneEnumWithPayload(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneEnumWithPayloadArgs GetAsDeleteAllOneEnumWithPayload(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneEnumWithPayload(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneEveryPrimitiveStruct(const FDeleteAllOneEveryPrimitiveStructArgs& Value) { + return FReducer::DeleteAllOneEveryPrimitiveStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneEveryPrimitiveStruct(const FReducer& Reducer) { return Reducer.IsDeleteAllOneEveryPrimitiveStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneEveryPrimitiveStructArgs GetAsDeleteAllOneEveryPrimitiveStruct(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneEveryPrimitiveStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneEveryVecStruct(const FDeleteAllOneEveryVecStructArgs& Value) { + return FReducer::DeleteAllOneEveryVecStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneEveryVecStruct(const FReducer& Reducer) { return Reducer.IsDeleteAllOneEveryVecStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneEveryVecStructArgs GetAsDeleteAllOneEveryVecStruct(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneEveryVecStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneF32(const FDeleteAllOneF32Args& Value) { + return FReducer::DeleteAllOneF32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneF32(const FReducer& Reducer) { return Reducer.IsDeleteAllOneF32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneF32Args GetAsDeleteAllOneF32(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneF32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneF64(const FDeleteAllOneF64Args& Value) { + return FReducer::DeleteAllOneF64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneF64(const FReducer& Reducer) { return Reducer.IsDeleteAllOneF64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneF64Args GetAsDeleteAllOneF64(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneF64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneI128(const FDeleteAllOneI128Args& Value) { + return FReducer::DeleteAllOneI128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneI128(const FReducer& Reducer) { return Reducer.IsDeleteAllOneI128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneI128Args GetAsDeleteAllOneI128(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneI128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneI16(const FDeleteAllOneI16Args& Value) { + return FReducer::DeleteAllOneI16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneI16(const FReducer& Reducer) { return Reducer.IsDeleteAllOneI16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneI16Args GetAsDeleteAllOneI16(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneI16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneI256(const FDeleteAllOneI256Args& Value) { + return FReducer::DeleteAllOneI256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneI256(const FReducer& Reducer) { return Reducer.IsDeleteAllOneI256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneI256Args GetAsDeleteAllOneI256(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneI256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneI32(const FDeleteAllOneI32Args& Value) { + return FReducer::DeleteAllOneI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneI32(const FReducer& Reducer) { return Reducer.IsDeleteAllOneI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneI32Args GetAsDeleteAllOneI32(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneI64(const FDeleteAllOneI64Args& Value) { + return FReducer::DeleteAllOneI64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneI64(const FReducer& Reducer) { return Reducer.IsDeleteAllOneI64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneI64Args GetAsDeleteAllOneI64(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneI64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneI8(const FDeleteAllOneI8Args& Value) { + return FReducer::DeleteAllOneI8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneI8(const FReducer& Reducer) { return Reducer.IsDeleteAllOneI8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneI8Args GetAsDeleteAllOneI8(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneI8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneIdentity(const FDeleteAllOneIdentityArgs& Value) { + return FReducer::DeleteAllOneIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneIdentity(const FReducer& Reducer) { return Reducer.IsDeleteAllOneIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneIdentityArgs GetAsDeleteAllOneIdentity(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneSimpleEnum(const FDeleteAllOneSimpleEnumArgs& Value) { + return FReducer::DeleteAllOneSimpleEnum(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneSimpleEnum(const FReducer& Reducer) { return Reducer.IsDeleteAllOneSimpleEnum(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneSimpleEnumArgs GetAsDeleteAllOneSimpleEnum(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneSimpleEnum(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneString(const FDeleteAllOneStringArgs& Value) { + return FReducer::DeleteAllOneString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneString(const FReducer& Reducer) { return Reducer.IsDeleteAllOneString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneStringArgs GetAsDeleteAllOneString(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneTimestamp(const FDeleteAllOneTimestampArgs& Value) { + return FReducer::DeleteAllOneTimestamp(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneTimestamp(const FReducer& Reducer) { return Reducer.IsDeleteAllOneTimestamp(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneTimestampArgs GetAsDeleteAllOneTimestamp(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneTimestamp(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneU128(const FDeleteAllOneU128Args& Value) { + return FReducer::DeleteAllOneU128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneU128(const FReducer& Reducer) { return Reducer.IsDeleteAllOneU128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneU128Args GetAsDeleteAllOneU128(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneU128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneU16(const FDeleteAllOneU16Args& Value) { + return FReducer::DeleteAllOneU16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneU16(const FReducer& Reducer) { return Reducer.IsDeleteAllOneU16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneU16Args GetAsDeleteAllOneU16(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneU16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneU256(const FDeleteAllOneU256Args& Value) { + return FReducer::DeleteAllOneU256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneU256(const FReducer& Reducer) { return Reducer.IsDeleteAllOneU256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneU256Args GetAsDeleteAllOneU256(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneU256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneU32(const FDeleteAllOneU32Args& Value) { + return FReducer::DeleteAllOneU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneU32(const FReducer& Reducer) { return Reducer.IsDeleteAllOneU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneU32Args GetAsDeleteAllOneU32(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneU64(const FDeleteAllOneU64Args& Value) { + return FReducer::DeleteAllOneU64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneU64(const FReducer& Reducer) { return Reducer.IsDeleteAllOneU64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneU64Args GetAsDeleteAllOneU64(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneU64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneU8(const FDeleteAllOneU8Args& Value) { + return FReducer::DeleteAllOneU8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneU8(const FReducer& Reducer) { return Reducer.IsDeleteAllOneU8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneU8Args GetAsDeleteAllOneU8(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneU8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneUnitStruct(const FDeleteAllOneUnitStructArgs& Value) { + return FReducer::DeleteAllOneUnitStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneUnitStruct(const FReducer& Reducer) { return Reducer.IsDeleteAllOneUnitStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneUnitStructArgs GetAsDeleteAllOneUnitStruct(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneUnitStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOneUuid(const FDeleteAllOneUuidArgs& Value) { + return FReducer::DeleteAllOneUuid(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOneUuid(const FReducer& Reducer) { return Reducer.IsDeleteAllOneUuid(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOneUuidArgs GetAsDeleteAllOneUuid(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOneUuid(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOptionEveryPrimitiveStruct(const FDeleteAllOptionEveryPrimitiveStructArgs& Value) { + return FReducer::DeleteAllOptionEveryPrimitiveStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOptionEveryPrimitiveStruct(const FReducer& Reducer) { return Reducer.IsDeleteAllOptionEveryPrimitiveStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOptionEveryPrimitiveStructArgs GetAsDeleteAllOptionEveryPrimitiveStruct(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOptionEveryPrimitiveStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOptionI32(const FDeleteAllOptionI32Args& Value) { + return FReducer::DeleteAllOptionI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOptionI32(const FReducer& Reducer) { return Reducer.IsDeleteAllOptionI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOptionI32Args GetAsDeleteAllOptionI32(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOptionI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOptionIdentity(const FDeleteAllOptionIdentityArgs& Value) { + return FReducer::DeleteAllOptionIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOptionIdentity(const FReducer& Reducer) { return Reducer.IsDeleteAllOptionIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOptionIdentityArgs GetAsDeleteAllOptionIdentity(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOptionIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOptionSimpleEnum(const FDeleteAllOptionSimpleEnumArgs& Value) { + return FReducer::DeleteAllOptionSimpleEnum(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOptionSimpleEnum(const FReducer& Reducer) { return Reducer.IsDeleteAllOptionSimpleEnum(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOptionSimpleEnumArgs GetAsDeleteAllOptionSimpleEnum(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOptionSimpleEnum(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOptionString(const FDeleteAllOptionStringArgs& Value) { + return FReducer::DeleteAllOptionString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOptionString(const FReducer& Reducer) { return Reducer.IsDeleteAllOptionString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOptionStringArgs GetAsDeleteAllOptionString(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOptionString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOptionUuid(const FDeleteAllOptionUuidArgs& Value) { + return FReducer::DeleteAllOptionUuid(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOptionUuid(const FReducer& Reducer) { return Reducer.IsDeleteAllOptionUuid(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOptionUuidArgs GetAsDeleteAllOptionUuid(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOptionUuid(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllOptionVecOptionI32(const FDeleteAllOptionVecOptionI32Args& Value) { + return FReducer::DeleteAllOptionVecOptionI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllOptionVecOptionI32(const FReducer& Reducer) { return Reducer.IsDeleteAllOptionVecOptionI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllOptionVecOptionI32Args GetAsDeleteAllOptionVecOptionI32(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllOptionVecOptionI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkBool(const FDeleteAllPkBoolArgs& Value) { + return FReducer::DeleteAllPkBool(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkBool(const FReducer& Reducer) { return Reducer.IsDeleteAllPkBool(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkBoolArgs GetAsDeleteAllPkBool(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkBool(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkConnectionId(const FDeleteAllPkConnectionIdArgs& Value) { + return FReducer::DeleteAllPkConnectionId(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkConnectionId(const FReducer& Reducer) { return Reducer.IsDeleteAllPkConnectionId(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkConnectionIdArgs GetAsDeleteAllPkConnectionId(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkConnectionId(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkI128(const FDeleteAllPkI128Args& Value) { + return FReducer::DeleteAllPkI128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkI128(const FReducer& Reducer) { return Reducer.IsDeleteAllPkI128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkI128Args GetAsDeleteAllPkI128(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkI128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkI16(const FDeleteAllPkI16Args& Value) { + return FReducer::DeleteAllPkI16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkI16(const FReducer& Reducer) { return Reducer.IsDeleteAllPkI16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkI16Args GetAsDeleteAllPkI16(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkI16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkI256(const FDeleteAllPkI256Args& Value) { + return FReducer::DeleteAllPkI256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkI256(const FReducer& Reducer) { return Reducer.IsDeleteAllPkI256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkI256Args GetAsDeleteAllPkI256(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkI256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkI32(const FDeleteAllPkI32Args& Value) { + return FReducer::DeleteAllPkI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkI32(const FReducer& Reducer) { return Reducer.IsDeleteAllPkI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkI32Args GetAsDeleteAllPkI32(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkI64(const FDeleteAllPkI64Args& Value) { + return FReducer::DeleteAllPkI64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkI64(const FReducer& Reducer) { return Reducer.IsDeleteAllPkI64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkI64Args GetAsDeleteAllPkI64(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkI64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkI8(const FDeleteAllPkI8Args& Value) { + return FReducer::DeleteAllPkI8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkI8(const FReducer& Reducer) { return Reducer.IsDeleteAllPkI8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkI8Args GetAsDeleteAllPkI8(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkI8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkIdentity(const FDeleteAllPkIdentityArgs& Value) { + return FReducer::DeleteAllPkIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkIdentity(const FReducer& Reducer) { return Reducer.IsDeleteAllPkIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkIdentityArgs GetAsDeleteAllPkIdentity(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkString(const FDeleteAllPkStringArgs& Value) { + return FReducer::DeleteAllPkString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkString(const FReducer& Reducer) { return Reducer.IsDeleteAllPkString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkStringArgs GetAsDeleteAllPkString(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkU128(const FDeleteAllPkU128Args& Value) { + return FReducer::DeleteAllPkU128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkU128(const FReducer& Reducer) { return Reducer.IsDeleteAllPkU128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkU128Args GetAsDeleteAllPkU128(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkU128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkU16(const FDeleteAllPkU16Args& Value) { + return FReducer::DeleteAllPkU16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkU16(const FReducer& Reducer) { return Reducer.IsDeleteAllPkU16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkU16Args GetAsDeleteAllPkU16(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkU16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkU256(const FDeleteAllPkU256Args& Value) { + return FReducer::DeleteAllPkU256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkU256(const FReducer& Reducer) { return Reducer.IsDeleteAllPkU256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkU256Args GetAsDeleteAllPkU256(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkU256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkU32(const FDeleteAllPkU32Args& Value) { + return FReducer::DeleteAllPkU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkU32(const FReducer& Reducer) { return Reducer.IsDeleteAllPkU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkU32Args GetAsDeleteAllPkU32(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkU32Two(const FDeleteAllPkU32TwoArgs& Value) { + return FReducer::DeleteAllPkU32Two(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkU32Two(const FReducer& Reducer) { return Reducer.IsDeleteAllPkU32Two(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkU32TwoArgs GetAsDeleteAllPkU32Two(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkU32Two(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkU64(const FDeleteAllPkU64Args& Value) { + return FReducer::DeleteAllPkU64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkU64(const FReducer& Reducer) { return Reducer.IsDeleteAllPkU64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkU64Args GetAsDeleteAllPkU64(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkU64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkU8(const FDeleteAllPkU8Args& Value) { + return FReducer::DeleteAllPkU8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkU8(const FReducer& Reducer) { return Reducer.IsDeleteAllPkU8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkU8Args GetAsDeleteAllPkU8(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkU8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllPkUuid(const FDeleteAllPkUuidArgs& Value) { + return FReducer::DeleteAllPkUuid(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllPkUuid(const FReducer& Reducer) { return Reducer.IsDeleteAllPkUuid(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllPkUuidArgs GetAsDeleteAllPkUuid(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllPkUuid(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueBool(const FDeleteAllUniqueBoolArgs& Value) { + return FReducer::DeleteAllUniqueBool(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueBool(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueBool(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueBoolArgs GetAsDeleteAllUniqueBool(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueBool(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueConnectionId(const FDeleteAllUniqueConnectionIdArgs& Value) { + return FReducer::DeleteAllUniqueConnectionId(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueConnectionId(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueConnectionId(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueConnectionIdArgs GetAsDeleteAllUniqueConnectionId(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueConnectionId(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueI128(const FDeleteAllUniqueI128Args& Value) { + return FReducer::DeleteAllUniqueI128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueI128(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueI128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueI128Args GetAsDeleteAllUniqueI128(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueI128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueI16(const FDeleteAllUniqueI16Args& Value) { + return FReducer::DeleteAllUniqueI16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueI16(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueI16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueI16Args GetAsDeleteAllUniqueI16(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueI16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueI256(const FDeleteAllUniqueI256Args& Value) { + return FReducer::DeleteAllUniqueI256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueI256(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueI256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueI256Args GetAsDeleteAllUniqueI256(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueI256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueI32(const FDeleteAllUniqueI32Args& Value) { + return FReducer::DeleteAllUniqueI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueI32(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueI32Args GetAsDeleteAllUniqueI32(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueI64(const FDeleteAllUniqueI64Args& Value) { + return FReducer::DeleteAllUniqueI64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueI64(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueI64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueI64Args GetAsDeleteAllUniqueI64(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueI64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueI8(const FDeleteAllUniqueI8Args& Value) { + return FReducer::DeleteAllUniqueI8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueI8(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueI8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueI8Args GetAsDeleteAllUniqueI8(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueI8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueIdentity(const FDeleteAllUniqueIdentityArgs& Value) { + return FReducer::DeleteAllUniqueIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueIdentity(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueIdentityArgs GetAsDeleteAllUniqueIdentity(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueString(const FDeleteAllUniqueStringArgs& Value) { + return FReducer::DeleteAllUniqueString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueString(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueStringArgs GetAsDeleteAllUniqueString(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueU128(const FDeleteAllUniqueU128Args& Value) { + return FReducer::DeleteAllUniqueU128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueU128(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueU128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueU128Args GetAsDeleteAllUniqueU128(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueU128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueU16(const FDeleteAllUniqueU16Args& Value) { + return FReducer::DeleteAllUniqueU16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueU16(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueU16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueU16Args GetAsDeleteAllUniqueU16(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueU16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueU256(const FDeleteAllUniqueU256Args& Value) { + return FReducer::DeleteAllUniqueU256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueU256(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueU256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueU256Args GetAsDeleteAllUniqueU256(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueU256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueU32(const FDeleteAllUniqueU32Args& Value) { + return FReducer::DeleteAllUniqueU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueU32(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueU32Args GetAsDeleteAllUniqueU32(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueU64(const FDeleteAllUniqueU64Args& Value) { + return FReducer::DeleteAllUniqueU64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueU64(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueU64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueU64Args GetAsDeleteAllUniqueU64(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueU64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueU8(const FDeleteAllUniqueU8Args& Value) { + return FReducer::DeleteAllUniqueU8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueU8(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueU8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueU8Args GetAsDeleteAllUniqueU8(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueU8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllUniqueUuid(const FDeleteAllUniqueUuidArgs& Value) { + return FReducer::DeleteAllUniqueUuid(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllUniqueUuid(const FReducer& Reducer) { return Reducer.IsDeleteAllUniqueUuid(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllUniqueUuidArgs GetAsDeleteAllUniqueUuid(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllUniqueUuid(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecBool(const FDeleteAllVecBoolArgs& Value) { + return FReducer::DeleteAllVecBool(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecBool(const FReducer& Reducer) { return Reducer.IsDeleteAllVecBool(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecBoolArgs GetAsDeleteAllVecBool(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecBool(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecByteStruct(const FDeleteAllVecByteStructArgs& Value) { + return FReducer::DeleteAllVecByteStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecByteStruct(const FReducer& Reducer) { return Reducer.IsDeleteAllVecByteStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecByteStructArgs GetAsDeleteAllVecByteStruct(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecByteStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecEnumWithPayload(const FDeleteAllVecEnumWithPayloadArgs& Value) { + return FReducer::DeleteAllVecEnumWithPayload(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecEnumWithPayload(const FReducer& Reducer) { return Reducer.IsDeleteAllVecEnumWithPayload(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecEnumWithPayloadArgs GetAsDeleteAllVecEnumWithPayload(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecEnumWithPayload(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecEveryPrimitiveStruct(const FDeleteAllVecEveryPrimitiveStructArgs& Value) { + return FReducer::DeleteAllVecEveryPrimitiveStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecEveryPrimitiveStruct(const FReducer& Reducer) { return Reducer.IsDeleteAllVecEveryPrimitiveStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecEveryPrimitiveStructArgs GetAsDeleteAllVecEveryPrimitiveStruct(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecEveryPrimitiveStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecEveryVecStruct(const FDeleteAllVecEveryVecStructArgs& Value) { + return FReducer::DeleteAllVecEveryVecStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecEveryVecStruct(const FReducer& Reducer) { return Reducer.IsDeleteAllVecEveryVecStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecEveryVecStructArgs GetAsDeleteAllVecEveryVecStruct(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecEveryVecStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecF32(const FDeleteAllVecF32Args& Value) { + return FReducer::DeleteAllVecF32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecF32(const FReducer& Reducer) { return Reducer.IsDeleteAllVecF32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecF32Args GetAsDeleteAllVecF32(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecF32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecF64(const FDeleteAllVecF64Args& Value) { + return FReducer::DeleteAllVecF64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecF64(const FReducer& Reducer) { return Reducer.IsDeleteAllVecF64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecF64Args GetAsDeleteAllVecF64(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecF64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecI128(const FDeleteAllVecI128Args& Value) { + return FReducer::DeleteAllVecI128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecI128(const FReducer& Reducer) { return Reducer.IsDeleteAllVecI128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecI128Args GetAsDeleteAllVecI128(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecI128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecI16(const FDeleteAllVecI16Args& Value) { + return FReducer::DeleteAllVecI16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecI16(const FReducer& Reducer) { return Reducer.IsDeleteAllVecI16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecI16Args GetAsDeleteAllVecI16(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecI16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecI256(const FDeleteAllVecI256Args& Value) { + return FReducer::DeleteAllVecI256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecI256(const FReducer& Reducer) { return Reducer.IsDeleteAllVecI256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecI256Args GetAsDeleteAllVecI256(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecI256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecI32(const FDeleteAllVecI32Args& Value) { + return FReducer::DeleteAllVecI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecI32(const FReducer& Reducer) { return Reducer.IsDeleteAllVecI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecI32Args GetAsDeleteAllVecI32(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecI64(const FDeleteAllVecI64Args& Value) { + return FReducer::DeleteAllVecI64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecI64(const FReducer& Reducer) { return Reducer.IsDeleteAllVecI64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecI64Args GetAsDeleteAllVecI64(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecI64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecI8(const FDeleteAllVecI8Args& Value) { + return FReducer::DeleteAllVecI8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecI8(const FReducer& Reducer) { return Reducer.IsDeleteAllVecI8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecI8Args GetAsDeleteAllVecI8(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecI8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecIdentity(const FDeleteAllVecIdentityArgs& Value) { + return FReducer::DeleteAllVecIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecIdentity(const FReducer& Reducer) { return Reducer.IsDeleteAllVecIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecIdentityArgs GetAsDeleteAllVecIdentity(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecSimpleEnum(const FDeleteAllVecSimpleEnumArgs& Value) { + return FReducer::DeleteAllVecSimpleEnum(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecSimpleEnum(const FReducer& Reducer) { return Reducer.IsDeleteAllVecSimpleEnum(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecSimpleEnumArgs GetAsDeleteAllVecSimpleEnum(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecSimpleEnum(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecString(const FDeleteAllVecStringArgs& Value) { + return FReducer::DeleteAllVecString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecString(const FReducer& Reducer) { return Reducer.IsDeleteAllVecString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecStringArgs GetAsDeleteAllVecString(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecTimestamp(const FDeleteAllVecTimestampArgs& Value) { + return FReducer::DeleteAllVecTimestamp(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecTimestamp(const FReducer& Reducer) { return Reducer.IsDeleteAllVecTimestamp(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecTimestampArgs GetAsDeleteAllVecTimestamp(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecTimestamp(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecU128(const FDeleteAllVecU128Args& Value) { + return FReducer::DeleteAllVecU128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecU128(const FReducer& Reducer) { return Reducer.IsDeleteAllVecU128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecU128Args GetAsDeleteAllVecU128(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecU128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecU16(const FDeleteAllVecU16Args& Value) { + return FReducer::DeleteAllVecU16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecU16(const FReducer& Reducer) { return Reducer.IsDeleteAllVecU16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecU16Args GetAsDeleteAllVecU16(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecU16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecU256(const FDeleteAllVecU256Args& Value) { + return FReducer::DeleteAllVecU256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecU256(const FReducer& Reducer) { return Reducer.IsDeleteAllVecU256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecU256Args GetAsDeleteAllVecU256(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecU256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecU32(const FDeleteAllVecU32Args& Value) { + return FReducer::DeleteAllVecU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecU32(const FReducer& Reducer) { return Reducer.IsDeleteAllVecU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecU32Args GetAsDeleteAllVecU32(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecU64(const FDeleteAllVecU64Args& Value) { + return FReducer::DeleteAllVecU64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecU64(const FReducer& Reducer) { return Reducer.IsDeleteAllVecU64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecU64Args GetAsDeleteAllVecU64(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecU64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecU8(const FDeleteAllVecU8Args& Value) { + return FReducer::DeleteAllVecU8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecU8(const FReducer& Reducer) { return Reducer.IsDeleteAllVecU8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecU8Args GetAsDeleteAllVecU8(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecU8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecUnitStruct(const FDeleteAllVecUnitStructArgs& Value) { + return FReducer::DeleteAllVecUnitStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecUnitStruct(const FReducer& Reducer) { return Reducer.IsDeleteAllVecUnitStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecUnitStructArgs GetAsDeleteAllVecUnitStruct(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecUnitStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteAllVecUuid(const FDeleteAllVecUuidArgs& Value) { + return FReducer::DeleteAllVecUuid(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteAllVecUuid(const FReducer& Reducer) { return Reducer.IsDeleteAllVecUuid(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteAllVecUuidArgs GetAsDeleteAllVecUuid(const FReducer& Reducer) { + return Reducer.GetAsDeleteAllVecUuid(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteFromBtreeU32(const FDeleteFromBtreeU32Args& Value) { + return FReducer::DeleteFromBtreeU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteFromBtreeU32(const FReducer& Reducer) { return Reducer.IsDeleteFromBtreeU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteFromBtreeU32Args GetAsDeleteFromBtreeU32(const FReducer& Reducer) { + return Reducer.GetAsDeleteFromBtreeU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteLargeTable(const FDeleteLargeTableArgs& Value) { + return FReducer::DeleteLargeTable(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteLargeTable(const FReducer& Reducer) { return Reducer.IsDeleteLargeTable(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteLargeTableArgs GetAsDeleteLargeTable(const FReducer& Reducer) { + return Reducer.GetAsDeleteLargeTable(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkBool(const FDeletePkBoolArgs& Value) { + return FReducer::DeletePkBool(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkBool(const FReducer& Reducer) { return Reducer.IsDeletePkBool(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkBoolArgs GetAsDeletePkBool(const FReducer& Reducer) { + return Reducer.GetAsDeletePkBool(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkConnectionId(const FDeletePkConnectionIdArgs& Value) { + return FReducer::DeletePkConnectionId(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkConnectionId(const FReducer& Reducer) { return Reducer.IsDeletePkConnectionId(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkConnectionIdArgs GetAsDeletePkConnectionId(const FReducer& Reducer) { + return Reducer.GetAsDeletePkConnectionId(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkI128(const FDeletePkI128Args& Value) { + return FReducer::DeletePkI128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkI128(const FReducer& Reducer) { return Reducer.IsDeletePkI128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkI128Args GetAsDeletePkI128(const FReducer& Reducer) { + return Reducer.GetAsDeletePkI128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkI16(const FDeletePkI16Args& Value) { + return FReducer::DeletePkI16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkI16(const FReducer& Reducer) { return Reducer.IsDeletePkI16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkI16Args GetAsDeletePkI16(const FReducer& Reducer) { + return Reducer.GetAsDeletePkI16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkI256(const FDeletePkI256Args& Value) { + return FReducer::DeletePkI256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkI256(const FReducer& Reducer) { return Reducer.IsDeletePkI256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkI256Args GetAsDeletePkI256(const FReducer& Reducer) { + return Reducer.GetAsDeletePkI256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkI32(const FDeletePkI32Args& Value) { + return FReducer::DeletePkI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkI32(const FReducer& Reducer) { return Reducer.IsDeletePkI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkI32Args GetAsDeletePkI32(const FReducer& Reducer) { + return Reducer.GetAsDeletePkI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkI64(const FDeletePkI64Args& Value) { + return FReducer::DeletePkI64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkI64(const FReducer& Reducer) { return Reducer.IsDeletePkI64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkI64Args GetAsDeletePkI64(const FReducer& Reducer) { + return Reducer.GetAsDeletePkI64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkI8(const FDeletePkI8Args& Value) { + return FReducer::DeletePkI8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkI8(const FReducer& Reducer) { return Reducer.IsDeletePkI8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkI8Args GetAsDeletePkI8(const FReducer& Reducer) { + return Reducer.GetAsDeletePkI8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkIdentity(const FDeletePkIdentityArgs& Value) { + return FReducer::DeletePkIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkIdentity(const FReducer& Reducer) { return Reducer.IsDeletePkIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkIdentityArgs GetAsDeletePkIdentity(const FReducer& Reducer) { + return Reducer.GetAsDeletePkIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkString(const FDeletePkStringArgs& Value) { + return FReducer::DeletePkString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkString(const FReducer& Reducer) { return Reducer.IsDeletePkString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkStringArgs GetAsDeletePkString(const FReducer& Reducer) { + return Reducer.GetAsDeletePkString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkU128(const FDeletePkU128Args& Value) { + return FReducer::DeletePkU128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkU128(const FReducer& Reducer) { return Reducer.IsDeletePkU128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkU128Args GetAsDeletePkU128(const FReducer& Reducer) { + return Reducer.GetAsDeletePkU128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkU16(const FDeletePkU16Args& Value) { + return FReducer::DeletePkU16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkU16(const FReducer& Reducer) { return Reducer.IsDeletePkU16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkU16Args GetAsDeletePkU16(const FReducer& Reducer) { + return Reducer.GetAsDeletePkU16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkU256(const FDeletePkU256Args& Value) { + return FReducer::DeletePkU256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkU256(const FReducer& Reducer) { return Reducer.IsDeletePkU256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkU256Args GetAsDeletePkU256(const FReducer& Reducer) { + return Reducer.GetAsDeletePkU256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkU32(const FDeletePkU32Args& Value) { + return FReducer::DeletePkU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkU32(const FReducer& Reducer) { return Reducer.IsDeletePkU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkU32Args GetAsDeletePkU32(const FReducer& Reducer) { + return Reducer.GetAsDeletePkU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkU32InsertPkU32Two(const FDeletePkU32InsertPkU32TwoArgs& Value) { + return FReducer::DeletePkU32InsertPkU32Two(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkU32InsertPkU32Two(const FReducer& Reducer) { return Reducer.IsDeletePkU32InsertPkU32Two(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkU32InsertPkU32TwoArgs GetAsDeletePkU32InsertPkU32Two(const FReducer& Reducer) { + return Reducer.GetAsDeletePkU32InsertPkU32Two(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkU32Two(const FDeletePkU32TwoArgs& Value) { + return FReducer::DeletePkU32Two(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkU32Two(const FReducer& Reducer) { return Reducer.IsDeletePkU32Two(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkU32TwoArgs GetAsDeletePkU32Two(const FReducer& Reducer) { + return Reducer.GetAsDeletePkU32Two(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkU64(const FDeletePkU64Args& Value) { + return FReducer::DeletePkU64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkU64(const FReducer& Reducer) { return Reducer.IsDeletePkU64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkU64Args GetAsDeletePkU64(const FReducer& Reducer) { + return Reducer.GetAsDeletePkU64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkU8(const FDeletePkU8Args& Value) { + return FReducer::DeletePkU8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkU8(const FReducer& Reducer) { return Reducer.IsDeletePkU8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkU8Args GetAsDeletePkU8(const FReducer& Reducer) { + return Reducer.GetAsDeletePkU8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePkUuid(const FDeletePkUuidArgs& Value) { + return FReducer::DeletePkUuid(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePkUuid(const FReducer& Reducer) { return Reducer.IsDeletePkUuid(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePkUuidArgs GetAsDeletePkUuid(const FReducer& Reducer) { + return Reducer.GetAsDeletePkUuid(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueBool(const FDeleteUniqueBoolArgs& Value) { + return FReducer::DeleteUniqueBool(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueBool(const FReducer& Reducer) { return Reducer.IsDeleteUniqueBool(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueBoolArgs GetAsDeleteUniqueBool(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueBool(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueConnectionId(const FDeleteUniqueConnectionIdArgs& Value) { + return FReducer::DeleteUniqueConnectionId(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueConnectionId(const FReducer& Reducer) { return Reducer.IsDeleteUniqueConnectionId(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueConnectionIdArgs GetAsDeleteUniqueConnectionId(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueConnectionId(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueI128(const FDeleteUniqueI128Args& Value) { + return FReducer::DeleteUniqueI128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueI128(const FReducer& Reducer) { return Reducer.IsDeleteUniqueI128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueI128Args GetAsDeleteUniqueI128(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueI128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueI16(const FDeleteUniqueI16Args& Value) { + return FReducer::DeleteUniqueI16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueI16(const FReducer& Reducer) { return Reducer.IsDeleteUniqueI16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueI16Args GetAsDeleteUniqueI16(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueI16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueI256(const FDeleteUniqueI256Args& Value) { + return FReducer::DeleteUniqueI256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueI256(const FReducer& Reducer) { return Reducer.IsDeleteUniqueI256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueI256Args GetAsDeleteUniqueI256(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueI256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueI32(const FDeleteUniqueI32Args& Value) { + return FReducer::DeleteUniqueI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueI32(const FReducer& Reducer) { return Reducer.IsDeleteUniqueI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueI32Args GetAsDeleteUniqueI32(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueI64(const FDeleteUniqueI64Args& Value) { + return FReducer::DeleteUniqueI64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueI64(const FReducer& Reducer) { return Reducer.IsDeleteUniqueI64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueI64Args GetAsDeleteUniqueI64(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueI64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueI8(const FDeleteUniqueI8Args& Value) { + return FReducer::DeleteUniqueI8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueI8(const FReducer& Reducer) { return Reducer.IsDeleteUniqueI8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueI8Args GetAsDeleteUniqueI8(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueI8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueIdentity(const FDeleteUniqueIdentityArgs& Value) { + return FReducer::DeleteUniqueIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueIdentity(const FReducer& Reducer) { return Reducer.IsDeleteUniqueIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueIdentityArgs GetAsDeleteUniqueIdentity(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueString(const FDeleteUniqueStringArgs& Value) { + return FReducer::DeleteUniqueString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueString(const FReducer& Reducer) { return Reducer.IsDeleteUniqueString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueStringArgs GetAsDeleteUniqueString(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueU128(const FDeleteUniqueU128Args& Value) { + return FReducer::DeleteUniqueU128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueU128(const FReducer& Reducer) { return Reducer.IsDeleteUniqueU128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueU128Args GetAsDeleteUniqueU128(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueU128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueU16(const FDeleteUniqueU16Args& Value) { + return FReducer::DeleteUniqueU16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueU16(const FReducer& Reducer) { return Reducer.IsDeleteUniqueU16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueU16Args GetAsDeleteUniqueU16(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueU16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueU256(const FDeleteUniqueU256Args& Value) { + return FReducer::DeleteUniqueU256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueU256(const FReducer& Reducer) { return Reducer.IsDeleteUniqueU256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueU256Args GetAsDeleteUniqueU256(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueU256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueU32(const FDeleteUniqueU32Args& Value) { + return FReducer::DeleteUniqueU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueU32(const FReducer& Reducer) { return Reducer.IsDeleteUniqueU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueU32Args GetAsDeleteUniqueU32(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueU64(const FDeleteUniqueU64Args& Value) { + return FReducer::DeleteUniqueU64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueU64(const FReducer& Reducer) { return Reducer.IsDeleteUniqueU64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueU64Args GetAsDeleteUniqueU64(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueU64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueU8(const FDeleteUniqueU8Args& Value) { + return FReducer::DeleteUniqueU8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueU8(const FReducer& Reducer) { return Reducer.IsDeleteUniqueU8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueU8Args GetAsDeleteUniqueU8(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueU8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeleteUniqueUuid(const FDeleteUniqueUuidArgs& Value) { + return FReducer::DeleteUniqueUuid(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeleteUniqueUuid(const FReducer& Reducer) { return Reducer.IsDeleteUniqueUuid(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeleteUniqueUuidArgs GetAsDeleteUniqueUuid(const FReducer& Reducer) { + return Reducer.GetAsDeleteUniqueUuid(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertCallTimestamp(const FInsertCallTimestampArgs& Value) { + return FReducer::InsertCallTimestamp(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertCallTimestamp(const FReducer& Reducer) { return Reducer.IsInsertCallTimestamp(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertCallTimestampArgs GetAsInsertCallTimestamp(const FReducer& Reducer) { + return Reducer.GetAsInsertCallTimestamp(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertCallUuidV4(const FInsertCallUuidV4Args& Value) { + return FReducer::InsertCallUuidV4(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertCallUuidV4(const FReducer& Reducer) { return Reducer.IsInsertCallUuidV4(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertCallUuidV4Args GetAsInsertCallUuidV4(const FReducer& Reducer) { + return Reducer.GetAsInsertCallUuidV4(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertCallUuidV7(const FInsertCallUuidV7Args& Value) { + return FReducer::InsertCallUuidV7(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertCallUuidV7(const FReducer& Reducer) { return Reducer.IsInsertCallUuidV7(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertCallUuidV7Args GetAsInsertCallUuidV7(const FReducer& Reducer) { + return Reducer.GetAsInsertCallUuidV7(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertCallerOneConnectionId(const FInsertCallerOneConnectionIdArgs& Value) { + return FReducer::InsertCallerOneConnectionId(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertCallerOneConnectionId(const FReducer& Reducer) { return Reducer.IsInsertCallerOneConnectionId(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertCallerOneConnectionIdArgs GetAsInsertCallerOneConnectionId(const FReducer& Reducer) { + return Reducer.GetAsInsertCallerOneConnectionId(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertCallerOneIdentity(const FInsertCallerOneIdentityArgs& Value) { + return FReducer::InsertCallerOneIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertCallerOneIdentity(const FReducer& Reducer) { return Reducer.IsInsertCallerOneIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertCallerOneIdentityArgs GetAsInsertCallerOneIdentity(const FReducer& Reducer) { + return Reducer.GetAsInsertCallerOneIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertCallerPkConnectionId(const FInsertCallerPkConnectionIdArgs& Value) { + return FReducer::InsertCallerPkConnectionId(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertCallerPkConnectionId(const FReducer& Reducer) { return Reducer.IsInsertCallerPkConnectionId(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertCallerPkConnectionIdArgs GetAsInsertCallerPkConnectionId(const FReducer& Reducer) { + return Reducer.GetAsInsertCallerPkConnectionId(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertCallerPkIdentity(const FInsertCallerPkIdentityArgs& Value) { + return FReducer::InsertCallerPkIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertCallerPkIdentity(const FReducer& Reducer) { return Reducer.IsInsertCallerPkIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertCallerPkIdentityArgs GetAsInsertCallerPkIdentity(const FReducer& Reducer) { + return Reducer.GetAsInsertCallerPkIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertCallerUniqueConnectionId(const FInsertCallerUniqueConnectionIdArgs& Value) { + return FReducer::InsertCallerUniqueConnectionId(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertCallerUniqueConnectionId(const FReducer& Reducer) { return Reducer.IsInsertCallerUniqueConnectionId(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertCallerUniqueConnectionIdArgs GetAsInsertCallerUniqueConnectionId(const FReducer& Reducer) { + return Reducer.GetAsInsertCallerUniqueConnectionId(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertCallerUniqueIdentity(const FInsertCallerUniqueIdentityArgs& Value) { + return FReducer::InsertCallerUniqueIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertCallerUniqueIdentity(const FReducer& Reducer) { return Reducer.IsInsertCallerUniqueIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertCallerUniqueIdentityArgs GetAsInsertCallerUniqueIdentity(const FReducer& Reducer) { + return Reducer.GetAsInsertCallerUniqueIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertCallerVecConnectionId(const FInsertCallerVecConnectionIdArgs& Value) { + return FReducer::InsertCallerVecConnectionId(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertCallerVecConnectionId(const FReducer& Reducer) { return Reducer.IsInsertCallerVecConnectionId(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertCallerVecConnectionIdArgs GetAsInsertCallerVecConnectionId(const FReducer& Reducer) { + return Reducer.GetAsInsertCallerVecConnectionId(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertCallerVecIdentity(const FInsertCallerVecIdentityArgs& Value) { + return FReducer::InsertCallerVecIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertCallerVecIdentity(const FReducer& Reducer) { return Reducer.IsInsertCallerVecIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertCallerVecIdentityArgs GetAsInsertCallerVecIdentity(const FReducer& Reducer) { + return Reducer.GetAsInsertCallerVecIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertIntoBtreeU32(const FInsertIntoBtreeU32Args& Value) { + return FReducer::InsertIntoBtreeU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertIntoBtreeU32(const FReducer& Reducer) { return Reducer.IsInsertIntoBtreeU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertIntoBtreeU32Args GetAsInsertIntoBtreeU32(const FReducer& Reducer) { + return Reducer.GetAsInsertIntoBtreeU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertIntoIndexedSimpleEnum(const FInsertIntoIndexedSimpleEnumArgs& Value) { + return FReducer::InsertIntoIndexedSimpleEnum(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertIntoIndexedSimpleEnum(const FReducer& Reducer) { return Reducer.IsInsertIntoIndexedSimpleEnum(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertIntoIndexedSimpleEnumArgs GetAsInsertIntoIndexedSimpleEnum(const FReducer& Reducer) { + return Reducer.GetAsInsertIntoIndexedSimpleEnum(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertIntoPkBtreeU32(const FInsertIntoPkBtreeU32Args& Value) { + return FReducer::InsertIntoPkBtreeU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertIntoPkBtreeU32(const FReducer& Reducer) { return Reducer.IsInsertIntoPkBtreeU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertIntoPkBtreeU32Args GetAsInsertIntoPkBtreeU32(const FReducer& Reducer) { + return Reducer.GetAsInsertIntoPkBtreeU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertLargeTable(const FInsertLargeTableArgs& Value) { + return FReducer::InsertLargeTable(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertLargeTable(const FReducer& Reducer) { return Reducer.IsInsertLargeTable(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertLargeTableArgs GetAsInsertLargeTable(const FReducer& Reducer) { + return Reducer.GetAsInsertLargeTable(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneBool(const FInsertOneBoolArgs& Value) { + return FReducer::InsertOneBool(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneBool(const FReducer& Reducer) { return Reducer.IsInsertOneBool(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneBoolArgs GetAsInsertOneBool(const FReducer& Reducer) { + return Reducer.GetAsInsertOneBool(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneByteStruct(const FInsertOneByteStructArgs& Value) { + return FReducer::InsertOneByteStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneByteStruct(const FReducer& Reducer) { return Reducer.IsInsertOneByteStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneByteStructArgs GetAsInsertOneByteStruct(const FReducer& Reducer) { + return Reducer.GetAsInsertOneByteStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneConnectionId(const FInsertOneConnectionIdArgs& Value) { + return FReducer::InsertOneConnectionId(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneConnectionId(const FReducer& Reducer) { return Reducer.IsInsertOneConnectionId(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneConnectionIdArgs GetAsInsertOneConnectionId(const FReducer& Reducer) { + return Reducer.GetAsInsertOneConnectionId(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneEnumWithPayload(const FInsertOneEnumWithPayloadArgs& Value) { + return FReducer::InsertOneEnumWithPayload(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneEnumWithPayload(const FReducer& Reducer) { return Reducer.IsInsertOneEnumWithPayload(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneEnumWithPayloadArgs GetAsInsertOneEnumWithPayload(const FReducer& Reducer) { + return Reducer.GetAsInsertOneEnumWithPayload(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneEveryPrimitiveStruct(const FInsertOneEveryPrimitiveStructArgs& Value) { + return FReducer::InsertOneEveryPrimitiveStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneEveryPrimitiveStruct(const FReducer& Reducer) { return Reducer.IsInsertOneEveryPrimitiveStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneEveryPrimitiveStructArgs GetAsInsertOneEveryPrimitiveStruct(const FReducer& Reducer) { + return Reducer.GetAsInsertOneEveryPrimitiveStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneEveryVecStruct(const FInsertOneEveryVecStructArgs& Value) { + return FReducer::InsertOneEveryVecStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneEveryVecStruct(const FReducer& Reducer) { return Reducer.IsInsertOneEveryVecStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneEveryVecStructArgs GetAsInsertOneEveryVecStruct(const FReducer& Reducer) { + return Reducer.GetAsInsertOneEveryVecStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneF32(const FInsertOneF32Args& Value) { + return FReducer::InsertOneF32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneF32(const FReducer& Reducer) { return Reducer.IsInsertOneF32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneF32Args GetAsInsertOneF32(const FReducer& Reducer) { + return Reducer.GetAsInsertOneF32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneF64(const FInsertOneF64Args& Value) { + return FReducer::InsertOneF64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneF64(const FReducer& Reducer) { return Reducer.IsInsertOneF64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneF64Args GetAsInsertOneF64(const FReducer& Reducer) { + return Reducer.GetAsInsertOneF64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneI128(const FInsertOneI128Args& Value) { + return FReducer::InsertOneI128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneI128(const FReducer& Reducer) { return Reducer.IsInsertOneI128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneI128Args GetAsInsertOneI128(const FReducer& Reducer) { + return Reducer.GetAsInsertOneI128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneI16(const FInsertOneI16Args& Value) { + return FReducer::InsertOneI16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneI16(const FReducer& Reducer) { return Reducer.IsInsertOneI16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneI16Args GetAsInsertOneI16(const FReducer& Reducer) { + return Reducer.GetAsInsertOneI16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneI256(const FInsertOneI256Args& Value) { + return FReducer::InsertOneI256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneI256(const FReducer& Reducer) { return Reducer.IsInsertOneI256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneI256Args GetAsInsertOneI256(const FReducer& Reducer) { + return Reducer.GetAsInsertOneI256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneI32(const FInsertOneI32Args& Value) { + return FReducer::InsertOneI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneI32(const FReducer& Reducer) { return Reducer.IsInsertOneI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneI32Args GetAsInsertOneI32(const FReducer& Reducer) { + return Reducer.GetAsInsertOneI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneI64(const FInsertOneI64Args& Value) { + return FReducer::InsertOneI64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneI64(const FReducer& Reducer) { return Reducer.IsInsertOneI64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneI64Args GetAsInsertOneI64(const FReducer& Reducer) { + return Reducer.GetAsInsertOneI64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneI8(const FInsertOneI8Args& Value) { + return FReducer::InsertOneI8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneI8(const FReducer& Reducer) { return Reducer.IsInsertOneI8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneI8Args GetAsInsertOneI8(const FReducer& Reducer) { + return Reducer.GetAsInsertOneI8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneIdentity(const FInsertOneIdentityArgs& Value) { + return FReducer::InsertOneIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneIdentity(const FReducer& Reducer) { return Reducer.IsInsertOneIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneIdentityArgs GetAsInsertOneIdentity(const FReducer& Reducer) { + return Reducer.GetAsInsertOneIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneSimpleEnum(const FInsertOneSimpleEnumArgs& Value) { + return FReducer::InsertOneSimpleEnum(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneSimpleEnum(const FReducer& Reducer) { return Reducer.IsInsertOneSimpleEnum(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneSimpleEnumArgs GetAsInsertOneSimpleEnum(const FReducer& Reducer) { + return Reducer.GetAsInsertOneSimpleEnum(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneString(const FInsertOneStringArgs& Value) { + return FReducer::InsertOneString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneString(const FReducer& Reducer) { return Reducer.IsInsertOneString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneStringArgs GetAsInsertOneString(const FReducer& Reducer) { + return Reducer.GetAsInsertOneString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneTimestamp(const FInsertOneTimestampArgs& Value) { + return FReducer::InsertOneTimestamp(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneTimestamp(const FReducer& Reducer) { return Reducer.IsInsertOneTimestamp(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneTimestampArgs GetAsInsertOneTimestamp(const FReducer& Reducer) { + return Reducer.GetAsInsertOneTimestamp(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneU128(const FInsertOneU128Args& Value) { + return FReducer::InsertOneU128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneU128(const FReducer& Reducer) { return Reducer.IsInsertOneU128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneU128Args GetAsInsertOneU128(const FReducer& Reducer) { + return Reducer.GetAsInsertOneU128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneU16(const FInsertOneU16Args& Value) { + return FReducer::InsertOneU16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneU16(const FReducer& Reducer) { return Reducer.IsInsertOneU16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneU16Args GetAsInsertOneU16(const FReducer& Reducer) { + return Reducer.GetAsInsertOneU16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneU256(const FInsertOneU256Args& Value) { + return FReducer::InsertOneU256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneU256(const FReducer& Reducer) { return Reducer.IsInsertOneU256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneU256Args GetAsInsertOneU256(const FReducer& Reducer) { + return Reducer.GetAsInsertOneU256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneU32(const FInsertOneU32Args& Value) { + return FReducer::InsertOneU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneU32(const FReducer& Reducer) { return Reducer.IsInsertOneU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneU32Args GetAsInsertOneU32(const FReducer& Reducer) { + return Reducer.GetAsInsertOneU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneU64(const FInsertOneU64Args& Value) { + return FReducer::InsertOneU64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneU64(const FReducer& Reducer) { return Reducer.IsInsertOneU64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneU64Args GetAsInsertOneU64(const FReducer& Reducer) { + return Reducer.GetAsInsertOneU64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneU8(const FInsertOneU8Args& Value) { + return FReducer::InsertOneU8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneU8(const FReducer& Reducer) { return Reducer.IsInsertOneU8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneU8Args GetAsInsertOneU8(const FReducer& Reducer) { + return Reducer.GetAsInsertOneU8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneUnitStruct(const FInsertOneUnitStructArgs& Value) { + return FReducer::InsertOneUnitStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneUnitStruct(const FReducer& Reducer) { return Reducer.IsInsertOneUnitStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneUnitStructArgs GetAsInsertOneUnitStruct(const FReducer& Reducer) { + return Reducer.GetAsInsertOneUnitStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOneUuid(const FInsertOneUuidArgs& Value) { + return FReducer::InsertOneUuid(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOneUuid(const FReducer& Reducer) { return Reducer.IsInsertOneUuid(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOneUuidArgs GetAsInsertOneUuid(const FReducer& Reducer) { + return Reducer.GetAsInsertOneUuid(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOptionEveryPrimitiveStruct(const FInsertOptionEveryPrimitiveStructArgs& Value) { + return FReducer::InsertOptionEveryPrimitiveStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOptionEveryPrimitiveStruct(const FReducer& Reducer) { return Reducer.IsInsertOptionEveryPrimitiveStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOptionEveryPrimitiveStructArgs GetAsInsertOptionEveryPrimitiveStruct(const FReducer& Reducer) { + return Reducer.GetAsInsertOptionEveryPrimitiveStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOptionI32(const FInsertOptionI32Args& Value) { + return FReducer::InsertOptionI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOptionI32(const FReducer& Reducer) { return Reducer.IsInsertOptionI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOptionI32Args GetAsInsertOptionI32(const FReducer& Reducer) { + return Reducer.GetAsInsertOptionI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOptionIdentity(const FInsertOptionIdentityArgs& Value) { + return FReducer::InsertOptionIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOptionIdentity(const FReducer& Reducer) { return Reducer.IsInsertOptionIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOptionIdentityArgs GetAsInsertOptionIdentity(const FReducer& Reducer) { + return Reducer.GetAsInsertOptionIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOptionSimpleEnum(const FInsertOptionSimpleEnumArgs& Value) { + return FReducer::InsertOptionSimpleEnum(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOptionSimpleEnum(const FReducer& Reducer) { return Reducer.IsInsertOptionSimpleEnum(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOptionSimpleEnumArgs GetAsInsertOptionSimpleEnum(const FReducer& Reducer) { + return Reducer.GetAsInsertOptionSimpleEnum(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOptionString(const FInsertOptionStringArgs& Value) { + return FReducer::InsertOptionString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOptionString(const FReducer& Reducer) { return Reducer.IsInsertOptionString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOptionStringArgs GetAsInsertOptionString(const FReducer& Reducer) { + return Reducer.GetAsInsertOptionString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOptionUuid(const FInsertOptionUuidArgs& Value) { + return FReducer::InsertOptionUuid(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOptionUuid(const FReducer& Reducer) { return Reducer.IsInsertOptionUuid(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOptionUuidArgs GetAsInsertOptionUuid(const FReducer& Reducer) { + return Reducer.GetAsInsertOptionUuid(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertOptionVecOptionI32(const FInsertOptionVecOptionI32Args& Value) { + return FReducer::InsertOptionVecOptionI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertOptionVecOptionI32(const FReducer& Reducer) { return Reducer.IsInsertOptionVecOptionI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertOptionVecOptionI32Args GetAsInsertOptionVecOptionI32(const FReducer& Reducer) { + return Reducer.GetAsInsertOptionVecOptionI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkBool(const FInsertPkBoolArgs& Value) { + return FReducer::InsertPkBool(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkBool(const FReducer& Reducer) { return Reducer.IsInsertPkBool(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkBoolArgs GetAsInsertPkBool(const FReducer& Reducer) { + return Reducer.GetAsInsertPkBool(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkConnectionId(const FInsertPkConnectionIdArgs& Value) { + return FReducer::InsertPkConnectionId(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkConnectionId(const FReducer& Reducer) { return Reducer.IsInsertPkConnectionId(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkConnectionIdArgs GetAsInsertPkConnectionId(const FReducer& Reducer) { + return Reducer.GetAsInsertPkConnectionId(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkI128(const FInsertPkI128Args& Value) { + return FReducer::InsertPkI128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkI128(const FReducer& Reducer) { return Reducer.IsInsertPkI128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkI128Args GetAsInsertPkI128(const FReducer& Reducer) { + return Reducer.GetAsInsertPkI128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkI16(const FInsertPkI16Args& Value) { + return FReducer::InsertPkI16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkI16(const FReducer& Reducer) { return Reducer.IsInsertPkI16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkI16Args GetAsInsertPkI16(const FReducer& Reducer) { + return Reducer.GetAsInsertPkI16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkI256(const FInsertPkI256Args& Value) { + return FReducer::InsertPkI256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkI256(const FReducer& Reducer) { return Reducer.IsInsertPkI256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkI256Args GetAsInsertPkI256(const FReducer& Reducer) { + return Reducer.GetAsInsertPkI256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkI32(const FInsertPkI32Args& Value) { + return FReducer::InsertPkI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkI32(const FReducer& Reducer) { return Reducer.IsInsertPkI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkI32Args GetAsInsertPkI32(const FReducer& Reducer) { + return Reducer.GetAsInsertPkI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkI64(const FInsertPkI64Args& Value) { + return FReducer::InsertPkI64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkI64(const FReducer& Reducer) { return Reducer.IsInsertPkI64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkI64Args GetAsInsertPkI64(const FReducer& Reducer) { + return Reducer.GetAsInsertPkI64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkI8(const FInsertPkI8Args& Value) { + return FReducer::InsertPkI8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkI8(const FReducer& Reducer) { return Reducer.IsInsertPkI8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkI8Args GetAsInsertPkI8(const FReducer& Reducer) { + return Reducer.GetAsInsertPkI8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkIdentity(const FInsertPkIdentityArgs& Value) { + return FReducer::InsertPkIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkIdentity(const FReducer& Reducer) { return Reducer.IsInsertPkIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkIdentityArgs GetAsInsertPkIdentity(const FReducer& Reducer) { + return Reducer.GetAsInsertPkIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkSimpleEnum(const FInsertPkSimpleEnumArgs& Value) { + return FReducer::InsertPkSimpleEnum(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkSimpleEnum(const FReducer& Reducer) { return Reducer.IsInsertPkSimpleEnum(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkSimpleEnumArgs GetAsInsertPkSimpleEnum(const FReducer& Reducer) { + return Reducer.GetAsInsertPkSimpleEnum(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkString(const FInsertPkStringArgs& Value) { + return FReducer::InsertPkString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkString(const FReducer& Reducer) { return Reducer.IsInsertPkString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkStringArgs GetAsInsertPkString(const FReducer& Reducer) { + return Reducer.GetAsInsertPkString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkU128(const FInsertPkU128Args& Value) { + return FReducer::InsertPkU128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkU128(const FReducer& Reducer) { return Reducer.IsInsertPkU128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkU128Args GetAsInsertPkU128(const FReducer& Reducer) { + return Reducer.GetAsInsertPkU128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkU16(const FInsertPkU16Args& Value) { + return FReducer::InsertPkU16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkU16(const FReducer& Reducer) { return Reducer.IsInsertPkU16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkU16Args GetAsInsertPkU16(const FReducer& Reducer) { + return Reducer.GetAsInsertPkU16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkU256(const FInsertPkU256Args& Value) { + return FReducer::InsertPkU256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkU256(const FReducer& Reducer) { return Reducer.IsInsertPkU256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkU256Args GetAsInsertPkU256(const FReducer& Reducer) { + return Reducer.GetAsInsertPkU256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkU32(const FInsertPkU32Args& Value) { + return FReducer::InsertPkU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkU32(const FReducer& Reducer) { return Reducer.IsInsertPkU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkU32Args GetAsInsertPkU32(const FReducer& Reducer) { + return Reducer.GetAsInsertPkU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkU32Two(const FInsertPkU32TwoArgs& Value) { + return FReducer::InsertPkU32Two(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkU32Two(const FReducer& Reducer) { return Reducer.IsInsertPkU32Two(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkU32TwoArgs GetAsInsertPkU32Two(const FReducer& Reducer) { + return Reducer.GetAsInsertPkU32Two(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkU64(const FInsertPkU64Args& Value) { + return FReducer::InsertPkU64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkU64(const FReducer& Reducer) { return Reducer.IsInsertPkU64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkU64Args GetAsInsertPkU64(const FReducer& Reducer) { + return Reducer.GetAsInsertPkU64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkU8(const FInsertPkU8Args& Value) { + return FReducer::InsertPkU8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkU8(const FReducer& Reducer) { return Reducer.IsInsertPkU8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkU8Args GetAsInsertPkU8(const FReducer& Reducer) { + return Reducer.GetAsInsertPkU8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPkUuid(const FInsertPkUuidArgs& Value) { + return FReducer::InsertPkUuid(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPkUuid(const FReducer& Reducer) { return Reducer.IsInsertPkUuid(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPkUuidArgs GetAsInsertPkUuid(const FReducer& Reducer) { + return Reducer.GetAsInsertPkUuid(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPrimitivesAsStrings(const FInsertPrimitivesAsStringsArgs& Value) { + return FReducer::InsertPrimitivesAsStrings(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPrimitivesAsStrings(const FReducer& Reducer) { return Reducer.IsInsertPrimitivesAsStrings(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPrimitivesAsStringsArgs GetAsInsertPrimitivesAsStrings(const FReducer& Reducer) { + return Reducer.GetAsInsertPrimitivesAsStrings(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertResultEveryPrimitiveStructString(const FInsertResultEveryPrimitiveStructStringArgs& Value) { + return FReducer::InsertResultEveryPrimitiveStructString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertResultEveryPrimitiveStructString(const FReducer& Reducer) { return Reducer.IsInsertResultEveryPrimitiveStructString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertResultEveryPrimitiveStructStringArgs GetAsInsertResultEveryPrimitiveStructString(const FReducer& Reducer) { + return Reducer.GetAsInsertResultEveryPrimitiveStructString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertResultI32String(const FInsertResultI32StringArgs& Value) { + return FReducer::InsertResultI32String(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertResultI32String(const FReducer& Reducer) { return Reducer.IsInsertResultI32String(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertResultI32StringArgs GetAsInsertResultI32String(const FReducer& Reducer) { + return Reducer.GetAsInsertResultI32String(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertResultIdentityString(const FInsertResultIdentityStringArgs& Value) { + return FReducer::InsertResultIdentityString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertResultIdentityString(const FReducer& Reducer) { return Reducer.IsInsertResultIdentityString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertResultIdentityStringArgs GetAsInsertResultIdentityString(const FReducer& Reducer) { + return Reducer.GetAsInsertResultIdentityString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertResultSimpleEnumI32(const FInsertResultSimpleEnumI32Args& Value) { + return FReducer::InsertResultSimpleEnumI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertResultSimpleEnumI32(const FReducer& Reducer) { return Reducer.IsInsertResultSimpleEnumI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertResultSimpleEnumI32Args GetAsInsertResultSimpleEnumI32(const FReducer& Reducer) { + return Reducer.GetAsInsertResultSimpleEnumI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertResultStringI32(const FInsertResultStringI32Args& Value) { + return FReducer::InsertResultStringI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertResultStringI32(const FReducer& Reducer) { return Reducer.IsInsertResultStringI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertResultStringI32Args GetAsInsertResultStringI32(const FReducer& Reducer) { + return Reducer.GetAsInsertResultStringI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertResultVecI32String(const FInsertResultVecI32StringArgs& Value) { + return FReducer::InsertResultVecI32String(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertResultVecI32String(const FReducer& Reducer) { return Reducer.IsInsertResultVecI32String(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertResultVecI32StringArgs GetAsInsertResultVecI32String(const FReducer& Reducer) { + return Reducer.GetAsInsertResultVecI32String(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertTableHoldsTable(const FInsertTableHoldsTableArgs& Value) { + return FReducer::InsertTableHoldsTable(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertTableHoldsTable(const FReducer& Reducer) { return Reducer.IsInsertTableHoldsTable(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertTableHoldsTableArgs GetAsInsertTableHoldsTable(const FReducer& Reducer) { + return Reducer.GetAsInsertTableHoldsTable(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueBool(const FInsertUniqueBoolArgs& Value) { + return FReducer::InsertUniqueBool(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueBool(const FReducer& Reducer) { return Reducer.IsInsertUniqueBool(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueBoolArgs GetAsInsertUniqueBool(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueBool(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueConnectionId(const FInsertUniqueConnectionIdArgs& Value) { + return FReducer::InsertUniqueConnectionId(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueConnectionId(const FReducer& Reducer) { return Reducer.IsInsertUniqueConnectionId(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueConnectionIdArgs GetAsInsertUniqueConnectionId(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueConnectionId(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueI128(const FInsertUniqueI128Args& Value) { + return FReducer::InsertUniqueI128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueI128(const FReducer& Reducer) { return Reducer.IsInsertUniqueI128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueI128Args GetAsInsertUniqueI128(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueI128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueI16(const FInsertUniqueI16Args& Value) { + return FReducer::InsertUniqueI16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueI16(const FReducer& Reducer) { return Reducer.IsInsertUniqueI16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueI16Args GetAsInsertUniqueI16(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueI16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueI256(const FInsertUniqueI256Args& Value) { + return FReducer::InsertUniqueI256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueI256(const FReducer& Reducer) { return Reducer.IsInsertUniqueI256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueI256Args GetAsInsertUniqueI256(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueI256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueI32(const FInsertUniqueI32Args& Value) { + return FReducer::InsertUniqueI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueI32(const FReducer& Reducer) { return Reducer.IsInsertUniqueI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueI32Args GetAsInsertUniqueI32(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueI64(const FInsertUniqueI64Args& Value) { + return FReducer::InsertUniqueI64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueI64(const FReducer& Reducer) { return Reducer.IsInsertUniqueI64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueI64Args GetAsInsertUniqueI64(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueI64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueI8(const FInsertUniqueI8Args& Value) { + return FReducer::InsertUniqueI8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueI8(const FReducer& Reducer) { return Reducer.IsInsertUniqueI8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueI8Args GetAsInsertUniqueI8(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueI8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueIdentity(const FInsertUniqueIdentityArgs& Value) { + return FReducer::InsertUniqueIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueIdentity(const FReducer& Reducer) { return Reducer.IsInsertUniqueIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueIdentityArgs GetAsInsertUniqueIdentity(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueString(const FInsertUniqueStringArgs& Value) { + return FReducer::InsertUniqueString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueString(const FReducer& Reducer) { return Reducer.IsInsertUniqueString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueStringArgs GetAsInsertUniqueString(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueU128(const FInsertUniqueU128Args& Value) { + return FReducer::InsertUniqueU128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueU128(const FReducer& Reducer) { return Reducer.IsInsertUniqueU128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueU128Args GetAsInsertUniqueU128(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueU128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueU16(const FInsertUniqueU16Args& Value) { + return FReducer::InsertUniqueU16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueU16(const FReducer& Reducer) { return Reducer.IsInsertUniqueU16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueU16Args GetAsInsertUniqueU16(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueU16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueU256(const FInsertUniqueU256Args& Value) { + return FReducer::InsertUniqueU256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueU256(const FReducer& Reducer) { return Reducer.IsInsertUniqueU256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueU256Args GetAsInsertUniqueU256(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueU256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueU32(const FInsertUniqueU32Args& Value) { + return FReducer::InsertUniqueU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueU32(const FReducer& Reducer) { return Reducer.IsInsertUniqueU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueU32Args GetAsInsertUniqueU32(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueU32UpdatePkU32(const FInsertUniqueU32UpdatePkU32Args& Value) { + return FReducer::InsertUniqueU32UpdatePkU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueU32UpdatePkU32(const FReducer& Reducer) { return Reducer.IsInsertUniqueU32UpdatePkU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueU32UpdatePkU32Args GetAsInsertUniqueU32UpdatePkU32(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueU32UpdatePkU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueU64(const FInsertUniqueU64Args& Value) { + return FReducer::InsertUniqueU64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueU64(const FReducer& Reducer) { return Reducer.IsInsertUniqueU64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueU64Args GetAsInsertUniqueU64(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueU64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueU8(const FInsertUniqueU8Args& Value) { + return FReducer::InsertUniqueU8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueU8(const FReducer& Reducer) { return Reducer.IsInsertUniqueU8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueU8Args GetAsInsertUniqueU8(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueU8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUniqueUuid(const FInsertUniqueUuidArgs& Value) { + return FReducer::InsertUniqueUuid(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUniqueUuid(const FReducer& Reducer) { return Reducer.IsInsertUniqueUuid(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUniqueUuidArgs GetAsInsertUniqueUuid(const FReducer& Reducer) { + return Reducer.GetAsInsertUniqueUuid(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertUser(const FInsertUserArgs& Value) { + return FReducer::InsertUser(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertUser(const FReducer& Reducer) { return Reducer.IsInsertUser(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertUserArgs GetAsInsertUser(const FReducer& Reducer) { + return Reducer.GetAsInsertUser(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecBool(const FInsertVecBoolArgs& Value) { + return FReducer::InsertVecBool(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecBool(const FReducer& Reducer) { return Reducer.IsInsertVecBool(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecBoolArgs GetAsInsertVecBool(const FReducer& Reducer) { + return Reducer.GetAsInsertVecBool(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecByteStruct(const FInsertVecByteStructArgs& Value) { + return FReducer::InsertVecByteStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecByteStruct(const FReducer& Reducer) { return Reducer.IsInsertVecByteStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecByteStructArgs GetAsInsertVecByteStruct(const FReducer& Reducer) { + return Reducer.GetAsInsertVecByteStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecConnectionId(const FInsertVecConnectionIdArgs& Value) { + return FReducer::InsertVecConnectionId(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecConnectionId(const FReducer& Reducer) { return Reducer.IsInsertVecConnectionId(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecConnectionIdArgs GetAsInsertVecConnectionId(const FReducer& Reducer) { + return Reducer.GetAsInsertVecConnectionId(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecEnumWithPayload(const FInsertVecEnumWithPayloadArgs& Value) { + return FReducer::InsertVecEnumWithPayload(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecEnumWithPayload(const FReducer& Reducer) { return Reducer.IsInsertVecEnumWithPayload(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecEnumWithPayloadArgs GetAsInsertVecEnumWithPayload(const FReducer& Reducer) { + return Reducer.GetAsInsertVecEnumWithPayload(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecEveryPrimitiveStruct(const FInsertVecEveryPrimitiveStructArgs& Value) { + return FReducer::InsertVecEveryPrimitiveStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecEveryPrimitiveStruct(const FReducer& Reducer) { return Reducer.IsInsertVecEveryPrimitiveStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecEveryPrimitiveStructArgs GetAsInsertVecEveryPrimitiveStruct(const FReducer& Reducer) { + return Reducer.GetAsInsertVecEveryPrimitiveStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecEveryVecStruct(const FInsertVecEveryVecStructArgs& Value) { + return FReducer::InsertVecEveryVecStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecEveryVecStruct(const FReducer& Reducer) { return Reducer.IsInsertVecEveryVecStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecEveryVecStructArgs GetAsInsertVecEveryVecStruct(const FReducer& Reducer) { + return Reducer.GetAsInsertVecEveryVecStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecF32(const FInsertVecF32Args& Value) { + return FReducer::InsertVecF32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecF32(const FReducer& Reducer) { return Reducer.IsInsertVecF32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecF32Args GetAsInsertVecF32(const FReducer& Reducer) { + return Reducer.GetAsInsertVecF32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecF64(const FInsertVecF64Args& Value) { + return FReducer::InsertVecF64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecF64(const FReducer& Reducer) { return Reducer.IsInsertVecF64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecF64Args GetAsInsertVecF64(const FReducer& Reducer) { + return Reducer.GetAsInsertVecF64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecI128(const FInsertVecI128Args& Value) { + return FReducer::InsertVecI128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecI128(const FReducer& Reducer) { return Reducer.IsInsertVecI128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecI128Args GetAsInsertVecI128(const FReducer& Reducer) { + return Reducer.GetAsInsertVecI128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecI16(const FInsertVecI16Args& Value) { + return FReducer::InsertVecI16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecI16(const FReducer& Reducer) { return Reducer.IsInsertVecI16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecI16Args GetAsInsertVecI16(const FReducer& Reducer) { + return Reducer.GetAsInsertVecI16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecI256(const FInsertVecI256Args& Value) { + return FReducer::InsertVecI256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecI256(const FReducer& Reducer) { return Reducer.IsInsertVecI256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecI256Args GetAsInsertVecI256(const FReducer& Reducer) { + return Reducer.GetAsInsertVecI256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecI32(const FInsertVecI32Args& Value) { + return FReducer::InsertVecI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecI32(const FReducer& Reducer) { return Reducer.IsInsertVecI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecI32Args GetAsInsertVecI32(const FReducer& Reducer) { + return Reducer.GetAsInsertVecI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecI64(const FInsertVecI64Args& Value) { + return FReducer::InsertVecI64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecI64(const FReducer& Reducer) { return Reducer.IsInsertVecI64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecI64Args GetAsInsertVecI64(const FReducer& Reducer) { + return Reducer.GetAsInsertVecI64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecI8(const FInsertVecI8Args& Value) { + return FReducer::InsertVecI8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecI8(const FReducer& Reducer) { return Reducer.IsInsertVecI8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecI8Args GetAsInsertVecI8(const FReducer& Reducer) { + return Reducer.GetAsInsertVecI8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecIdentity(const FInsertVecIdentityArgs& Value) { + return FReducer::InsertVecIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecIdentity(const FReducer& Reducer) { return Reducer.IsInsertVecIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecIdentityArgs GetAsInsertVecIdentity(const FReducer& Reducer) { + return Reducer.GetAsInsertVecIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecSimpleEnum(const FInsertVecSimpleEnumArgs& Value) { + return FReducer::InsertVecSimpleEnum(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecSimpleEnum(const FReducer& Reducer) { return Reducer.IsInsertVecSimpleEnum(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecSimpleEnumArgs GetAsInsertVecSimpleEnum(const FReducer& Reducer) { + return Reducer.GetAsInsertVecSimpleEnum(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecString(const FInsertVecStringArgs& Value) { + return FReducer::InsertVecString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecString(const FReducer& Reducer) { return Reducer.IsInsertVecString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecStringArgs GetAsInsertVecString(const FReducer& Reducer) { + return Reducer.GetAsInsertVecString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecTimestamp(const FInsertVecTimestampArgs& Value) { + return FReducer::InsertVecTimestamp(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecTimestamp(const FReducer& Reducer) { return Reducer.IsInsertVecTimestamp(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecTimestampArgs GetAsInsertVecTimestamp(const FReducer& Reducer) { + return Reducer.GetAsInsertVecTimestamp(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecU128(const FInsertVecU128Args& Value) { + return FReducer::InsertVecU128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecU128(const FReducer& Reducer) { return Reducer.IsInsertVecU128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecU128Args GetAsInsertVecU128(const FReducer& Reducer) { + return Reducer.GetAsInsertVecU128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecU16(const FInsertVecU16Args& Value) { + return FReducer::InsertVecU16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecU16(const FReducer& Reducer) { return Reducer.IsInsertVecU16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecU16Args GetAsInsertVecU16(const FReducer& Reducer) { + return Reducer.GetAsInsertVecU16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecU256(const FInsertVecU256Args& Value) { + return FReducer::InsertVecU256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecU256(const FReducer& Reducer) { return Reducer.IsInsertVecU256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecU256Args GetAsInsertVecU256(const FReducer& Reducer) { + return Reducer.GetAsInsertVecU256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecU32(const FInsertVecU32Args& Value) { + return FReducer::InsertVecU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecU32(const FReducer& Reducer) { return Reducer.IsInsertVecU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecU32Args GetAsInsertVecU32(const FReducer& Reducer) { + return Reducer.GetAsInsertVecU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecU64(const FInsertVecU64Args& Value) { + return FReducer::InsertVecU64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecU64(const FReducer& Reducer) { return Reducer.IsInsertVecU64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecU64Args GetAsInsertVecU64(const FReducer& Reducer) { + return Reducer.GetAsInsertVecU64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecU8(const FInsertVecU8Args& Value) { + return FReducer::InsertVecU8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecU8(const FReducer& Reducer) { return Reducer.IsInsertVecU8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecU8Args GetAsInsertVecU8(const FReducer& Reducer) { + return Reducer.GetAsInsertVecU8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecUnitStruct(const FInsertVecUnitStructArgs& Value) { + return FReducer::InsertVecUnitStruct(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecUnitStruct(const FReducer& Reducer) { return Reducer.IsInsertVecUnitStruct(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecUnitStructArgs GetAsInsertVecUnitStruct(const FReducer& Reducer) { + return Reducer.GetAsInsertVecUnitStruct(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertVecUuid(const FInsertVecUuidArgs& Value) { + return FReducer::InsertVecUuid(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertVecUuid(const FReducer& Reducer) { return Reducer.IsInsertVecUuid(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertVecUuidArgs GetAsInsertVecUuid(const FReducer& Reducer) { + return Reducer.GetAsInsertVecUuid(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer NoOpSucceeds(const FNoOpSucceedsArgs& Value) { + return FReducer::NoOpSucceeds(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsNoOpSucceeds(const FReducer& Reducer) { return Reducer.IsNoOpSucceeds(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FNoOpSucceedsArgs GetAsNoOpSucceeds(const FReducer& Reducer) { + return Reducer.GetAsNoOpSucceeds(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer SortedUuidsInsert(const FSortedUuidsInsertArgs& Value) { + return FReducer::SortedUuidsInsert(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsSortedUuidsInsert(const FReducer& Reducer) { return Reducer.IsSortedUuidsInsert(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FSortedUuidsInsertArgs GetAsSortedUuidsInsert(const FReducer& Reducer) { + return Reducer.GetAsSortedUuidsInsert(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateIndexedSimpleEnum(const FUpdateIndexedSimpleEnumArgs& Value) { + return FReducer::UpdateIndexedSimpleEnum(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateIndexedSimpleEnum(const FReducer& Reducer) { return Reducer.IsUpdateIndexedSimpleEnum(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateIndexedSimpleEnumArgs GetAsUpdateIndexedSimpleEnum(const FReducer& Reducer) { + return Reducer.GetAsUpdateIndexedSimpleEnum(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkBool(const FUpdatePkBoolArgs& Value) { + return FReducer::UpdatePkBool(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkBool(const FReducer& Reducer) { return Reducer.IsUpdatePkBool(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkBoolArgs GetAsUpdatePkBool(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkBool(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkConnectionId(const FUpdatePkConnectionIdArgs& Value) { + return FReducer::UpdatePkConnectionId(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkConnectionId(const FReducer& Reducer) { return Reducer.IsUpdatePkConnectionId(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkConnectionIdArgs GetAsUpdatePkConnectionId(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkConnectionId(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkI128(const FUpdatePkI128Args& Value) { + return FReducer::UpdatePkI128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkI128(const FReducer& Reducer) { return Reducer.IsUpdatePkI128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkI128Args GetAsUpdatePkI128(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkI128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkI16(const FUpdatePkI16Args& Value) { + return FReducer::UpdatePkI16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkI16(const FReducer& Reducer) { return Reducer.IsUpdatePkI16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkI16Args GetAsUpdatePkI16(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkI16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkI256(const FUpdatePkI256Args& Value) { + return FReducer::UpdatePkI256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkI256(const FReducer& Reducer) { return Reducer.IsUpdatePkI256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkI256Args GetAsUpdatePkI256(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkI256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkI32(const FUpdatePkI32Args& Value) { + return FReducer::UpdatePkI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkI32(const FReducer& Reducer) { return Reducer.IsUpdatePkI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkI32Args GetAsUpdatePkI32(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkI64(const FUpdatePkI64Args& Value) { + return FReducer::UpdatePkI64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkI64(const FReducer& Reducer) { return Reducer.IsUpdatePkI64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkI64Args GetAsUpdatePkI64(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkI64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkI8(const FUpdatePkI8Args& Value) { + return FReducer::UpdatePkI8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkI8(const FReducer& Reducer) { return Reducer.IsUpdatePkI8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkI8Args GetAsUpdatePkI8(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkI8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkIdentity(const FUpdatePkIdentityArgs& Value) { + return FReducer::UpdatePkIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkIdentity(const FReducer& Reducer) { return Reducer.IsUpdatePkIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkIdentityArgs GetAsUpdatePkIdentity(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkSimpleEnum(const FUpdatePkSimpleEnumArgs& Value) { + return FReducer::UpdatePkSimpleEnum(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkSimpleEnum(const FReducer& Reducer) { return Reducer.IsUpdatePkSimpleEnum(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkSimpleEnumArgs GetAsUpdatePkSimpleEnum(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkSimpleEnum(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkString(const FUpdatePkStringArgs& Value) { + return FReducer::UpdatePkString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkString(const FReducer& Reducer) { return Reducer.IsUpdatePkString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkStringArgs GetAsUpdatePkString(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkU128(const FUpdatePkU128Args& Value) { + return FReducer::UpdatePkU128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkU128(const FReducer& Reducer) { return Reducer.IsUpdatePkU128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkU128Args GetAsUpdatePkU128(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkU128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkU16(const FUpdatePkU16Args& Value) { + return FReducer::UpdatePkU16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkU16(const FReducer& Reducer) { return Reducer.IsUpdatePkU16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkU16Args GetAsUpdatePkU16(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkU16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkU256(const FUpdatePkU256Args& Value) { + return FReducer::UpdatePkU256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkU256(const FReducer& Reducer) { return Reducer.IsUpdatePkU256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkU256Args GetAsUpdatePkU256(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkU256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkU32(const FUpdatePkU32Args& Value) { + return FReducer::UpdatePkU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkU32(const FReducer& Reducer) { return Reducer.IsUpdatePkU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkU32Args GetAsUpdatePkU32(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkU32Two(const FUpdatePkU32TwoArgs& Value) { + return FReducer::UpdatePkU32Two(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkU32Two(const FReducer& Reducer) { return Reducer.IsUpdatePkU32Two(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkU32TwoArgs GetAsUpdatePkU32Two(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkU32Two(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkU64(const FUpdatePkU64Args& Value) { + return FReducer::UpdatePkU64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkU64(const FReducer& Reducer) { return Reducer.IsUpdatePkU64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkU64Args GetAsUpdatePkU64(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkU64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkU8(const FUpdatePkU8Args& Value) { + return FReducer::UpdatePkU8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkU8(const FReducer& Reducer) { return Reducer.IsUpdatePkU8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkU8Args GetAsUpdatePkU8(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkU8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdatePkUuid(const FUpdatePkUuidArgs& Value) { + return FReducer::UpdatePkUuid(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdatePkUuid(const FReducer& Reducer) { return Reducer.IsUpdatePkUuid(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdatePkUuidArgs GetAsUpdatePkUuid(const FReducer& Reducer) { + return Reducer.GetAsUpdatePkUuid(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueBool(const FUpdateUniqueBoolArgs& Value) { + return FReducer::UpdateUniqueBool(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueBool(const FReducer& Reducer) { return Reducer.IsUpdateUniqueBool(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueBoolArgs GetAsUpdateUniqueBool(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueBool(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueConnectionId(const FUpdateUniqueConnectionIdArgs& Value) { + return FReducer::UpdateUniqueConnectionId(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueConnectionId(const FReducer& Reducer) { return Reducer.IsUpdateUniqueConnectionId(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueConnectionIdArgs GetAsUpdateUniqueConnectionId(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueConnectionId(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueI128(const FUpdateUniqueI128Args& Value) { + return FReducer::UpdateUniqueI128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueI128(const FReducer& Reducer) { return Reducer.IsUpdateUniqueI128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueI128Args GetAsUpdateUniqueI128(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueI128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueI16(const FUpdateUniqueI16Args& Value) { + return FReducer::UpdateUniqueI16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueI16(const FReducer& Reducer) { return Reducer.IsUpdateUniqueI16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueI16Args GetAsUpdateUniqueI16(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueI16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueI256(const FUpdateUniqueI256Args& Value) { + return FReducer::UpdateUniqueI256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueI256(const FReducer& Reducer) { return Reducer.IsUpdateUniqueI256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueI256Args GetAsUpdateUniqueI256(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueI256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueI32(const FUpdateUniqueI32Args& Value) { + return FReducer::UpdateUniqueI32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueI32(const FReducer& Reducer) { return Reducer.IsUpdateUniqueI32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueI32Args GetAsUpdateUniqueI32(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueI32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueI64(const FUpdateUniqueI64Args& Value) { + return FReducer::UpdateUniqueI64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueI64(const FReducer& Reducer) { return Reducer.IsUpdateUniqueI64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueI64Args GetAsUpdateUniqueI64(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueI64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueI8(const FUpdateUniqueI8Args& Value) { + return FReducer::UpdateUniqueI8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueI8(const FReducer& Reducer) { return Reducer.IsUpdateUniqueI8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueI8Args GetAsUpdateUniqueI8(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueI8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueIdentity(const FUpdateUniqueIdentityArgs& Value) { + return FReducer::UpdateUniqueIdentity(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueIdentity(const FReducer& Reducer) { return Reducer.IsUpdateUniqueIdentity(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueIdentityArgs GetAsUpdateUniqueIdentity(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueIdentity(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueString(const FUpdateUniqueStringArgs& Value) { + return FReducer::UpdateUniqueString(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueString(const FReducer& Reducer) { return Reducer.IsUpdateUniqueString(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueStringArgs GetAsUpdateUniqueString(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueString(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueU128(const FUpdateUniqueU128Args& Value) { + return FReducer::UpdateUniqueU128(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueU128(const FReducer& Reducer) { return Reducer.IsUpdateUniqueU128(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueU128Args GetAsUpdateUniqueU128(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueU128(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueU16(const FUpdateUniqueU16Args& Value) { + return FReducer::UpdateUniqueU16(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueU16(const FReducer& Reducer) { return Reducer.IsUpdateUniqueU16(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueU16Args GetAsUpdateUniqueU16(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueU16(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueU256(const FUpdateUniqueU256Args& Value) { + return FReducer::UpdateUniqueU256(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueU256(const FReducer& Reducer) { return Reducer.IsUpdateUniqueU256(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueU256Args GetAsUpdateUniqueU256(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueU256(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueU32(const FUpdateUniqueU32Args& Value) { + return FReducer::UpdateUniqueU32(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueU32(const FReducer& Reducer) { return Reducer.IsUpdateUniqueU32(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueU32Args GetAsUpdateUniqueU32(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueU32(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueU64(const FUpdateUniqueU64Args& Value) { + return FReducer::UpdateUniqueU64(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueU64(const FReducer& Reducer) { return Reducer.IsUpdateUniqueU64(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueU64Args GetAsUpdateUniqueU64(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueU64(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueU8(const FUpdateUniqueU8Args& Value) { + return FReducer::UpdateUniqueU8(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueU8(const FReducer& Reducer) { return Reducer.IsUpdateUniqueU8(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueU8Args GetAsUpdateUniqueU8(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueU8(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateUniqueUuid(const FUpdateUniqueUuidArgs& Value) { + return FReducer::UpdateUniqueUuid(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateUniqueUuid(const FReducer& Reducer) { return Reducer.IsUpdateUniqueUuid(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateUniqueUuidArgs GetAsUpdateUniqueUuid(const FReducer& Reducer) { + return Reducer.GetAsUpdateUniqueUuid(); + } +}; + +/** Metadata describing a reducer run. */ +USTRUCT(BlueprintType) +struct TESTCLIENT_API FTestClientReducerEvent +{ + GENERATED_BODY() + + /** Timestamp for when the reducer executed */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBTimestamp Timestamp; + + /** Result status of the reducer */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBStatus Status; + + /** Identity that initiated the call */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBIdentity CallerIdentity; + + /** Connection ID for the caller */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBConnectionId CallerConnectionId; + + /** Energy consumed while executing */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FEnergyQuantaType EnergyConsumed; + + /** Detailed call information */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FReducer Reducer; + + FORCEINLINE bool operator==(const FTestClientReducerEvent& Other) const + { + return Status == Other.Status && Timestamp == Other.Timestamp && CallerIdentity == Other.CallerIdentity && + CallerConnectionId == Other.CallerConnectionId && EnergyConsumed == Other.EnergyConsumed && + Reducer == Other.Reducer; + } + + FORCEINLINE bool operator!=(const FTestClientReducerEvent& Other) const + { + return !(*this == Other); + } +}; + +// No procedures defined in this module. +/** Metadata describing a procedure run. */ +USTRUCT(BlueprintType) +struct TESTCLIENT_API FTestClientProcedureEvent +{ + GENERATED_BODY() + + /** Timestamp for when the procedure executed */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBTimestamp Timestamp; + + /** Result status of the procedure */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBProcedureStatus Status; + + /** Identity that initiated the call */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBTimeDuration TotalHostExecutionDuration; + + FTestClientProcedureEvent() { + } + FTestClientProcedureEvent(FProcedureEvent Event) { + Timestamp = Event.Timestamp; + Status = FSpacetimeDBProcedureStatus::FromStatus(Event.Status); + TotalHostExecutionDuration = Event.TotalHostExecutionDuration; + } + FORCEINLINE bool operator==(const FTestClientProcedureEvent& Other) const + { + return Status == Other.Status && Timestamp == Other.Timestamp && + TotalHostExecutionDuration == Other.TotalHostExecutionDuration; + } + + FORCEINLINE bool operator!=(const FTestClientProcedureEvent& Other) const + { + return !(*this == Other); + } +}; + +/** Represents event with variant message data. */ +USTRUCT(BlueprintType) +struct TESTCLIENT_API FTestClientEvent +{ + GENERATED_BODY() + + /** Tagged union holding reducer call, unit events, or error string */ + TVariant MessageData; + + /** Type tag indicating what this event represents */ + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + ESpacetimeDBEventTag Tag = ESpacetimeDBEventTag::UnknownTransaction; + + /** === Static factory methods ===*/ + static FTestClientEvent Reducer(const FReducer& Value) + { + FTestClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::Reducer; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestClientEvent SubscribeApplied(const FSpacetimeDBUnit& Value) + { + FTestClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::SubscribeApplied; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestClientEvent UnsubscribeApplied(const FSpacetimeDBUnit& Value) + { + FTestClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::UnsubscribeApplied; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestClientEvent Disconnected(const FSpacetimeDBUnit& Value) + { + FTestClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::Disconnected; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestClientEvent Transaction(const FSpacetimeDBUnit& Value) + { + FTestClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::Transaction; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestClientEvent SubscribeError(const FString& Value) + { + FTestClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::SubscribeError; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestClientEvent UnknownTransaction(const FSpacetimeDBUnit& Value) + { + FTestClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::UnknownTransaction; + Obj.MessageData.Set(Value); + return Obj; + } + + FORCEINLINE bool IsReducer() const { return Tag == ESpacetimeDBEventTag::Reducer; } + FORCEINLINE FReducer GetAsReducer() const + { + ensureMsgf(IsReducer(), TEXT("MessageData does not hold Reducer!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsSubscribeApplied() const { return Tag == ESpacetimeDBEventTag::SubscribeApplied; } + FORCEINLINE FSpacetimeDBUnit GetAsSubscribeApplied() const + { + ensureMsgf(IsSubscribeApplied(), TEXT("MessageData does not hold SubscribeApplied!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsUnsubscribeApplied() const { return Tag == ESpacetimeDBEventTag::UnsubscribeApplied; } + FORCEINLINE FSpacetimeDBUnit GetAsUnsubscribeApplied() const + { + ensureMsgf(IsUnsubscribeApplied(), TEXT("MessageData does not hold UnsubscribeApplied!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsDisconnected() const { return Tag == ESpacetimeDBEventTag::Disconnected; } + FORCEINLINE FSpacetimeDBUnit GetAsDisconnected() const + { + ensureMsgf(IsDisconnected(), TEXT("MessageData does not hold Disconnected!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsTransaction() const { return Tag == ESpacetimeDBEventTag::Transaction; } + FORCEINLINE FSpacetimeDBUnit GetAsTransaction() const + { + ensureMsgf(IsTransaction(), TEXT("MessageData does not hold Transaction!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsSubscribeError() const { return Tag == ESpacetimeDBEventTag::SubscribeError; } + FORCEINLINE FString GetAsSubscribeError() const + { + ensureMsgf(IsSubscribeError(), TEXT("MessageData does not hold SubscribeError!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsUnknownTransaction() const { return Tag == ESpacetimeDBEventTag::UnknownTransaction; } + FORCEINLINE FSpacetimeDBUnit GetAsUnknownTransaction() const + { + ensureMsgf(IsUnknownTransaction(), TEXT("MessageData does not hold UnknownTransaction!")); + return MessageData.Get(); + } + + FORCEINLINE bool operator==(const FTestClientEvent& Other) const + { + if (Tag != Other.Tag) return false; + switch (Tag) + { + case ESpacetimeDBEventTag::Reducer: return GetAsReducer() == Other.GetAsReducer(); + case ESpacetimeDBEventTag::SubscribeApplied: return GetAsSubscribeApplied() == Other.GetAsSubscribeApplied(); + case ESpacetimeDBEventTag::UnsubscribeApplied: return GetAsUnsubscribeApplied() == Other.GetAsUnsubscribeApplied(); + case ESpacetimeDBEventTag::Disconnected: return GetAsDisconnected() == Other.GetAsDisconnected(); + case ESpacetimeDBEventTag::Transaction: return GetAsTransaction() == Other.GetAsTransaction(); + case ESpacetimeDBEventTag::SubscribeError: return GetAsSubscribeError() == Other.GetAsSubscribeError(); + case ESpacetimeDBEventTag::UnknownTransaction: return GetAsUnknownTransaction() == Other.GetAsUnknownTransaction(); + default: return false; + } + } + + FORCEINLINE bool operator!=(const FTestClientEvent& Other) const + { + return !(*this == Other); + } +}; + +UCLASS() +class TESTCLIENT_API UTestClientEventBpLib : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +private: + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestClientEvent") + static FTestClientEvent Reducer(const FReducer& InValue) + { + return FTestClientEvent::Reducer(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestClientEvent") + static FTestClientEvent SubscribeApplied(const FSpacetimeDBUnit& InValue) + { + return FTestClientEvent::SubscribeApplied(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestClientEvent") + static FTestClientEvent UnsubscribeApplied(const FSpacetimeDBUnit& InValue) + { + return FTestClientEvent::UnsubscribeApplied(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestClientEvent") + static FTestClientEvent Disconnected(const FSpacetimeDBUnit& InValue) + { + return FTestClientEvent::Disconnected(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestClientEvent") + static FTestClientEvent Transaction(const FSpacetimeDBUnit& InValue) + { + return FTestClientEvent::Transaction(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestClientEvent") + static FTestClientEvent SubscribeError(const FString& InValue) + { + return FTestClientEvent::SubscribeError(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestClientEvent") + static FTestClientEvent UnknownTransaction(const FSpacetimeDBUnit& InValue) + { + return FTestClientEvent::UnknownTransaction(InValue); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") + static bool IsReducer(const FTestClientEvent& Event) { return Event.IsReducer(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") + static bool IsSubscribeApplied(const FTestClientEvent& Event) { return Event.IsSubscribeApplied(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") + static bool IsUnsubscribeApplied(const FTestClientEvent& Event) { return Event.IsUnsubscribeApplied(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") + static bool IsDisconnected(const FTestClientEvent& Event) { return Event.IsDisconnected(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") + static bool IsTransaction(const FTestClientEvent& Event) { return Event.IsTransaction(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") + static bool IsSubscribeError(const FTestClientEvent& Event) { return Event.IsSubscribeError(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") + static bool IsUnknownTransaction(const FTestClientEvent& Event) { return Event.IsUnknownTransaction(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") + static FReducer GetAsReducer(const FTestClientEvent& Event) + { + return Event.GetAsReducer(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") + static FSpacetimeDBUnit GetAsSubscribeApplied(const FTestClientEvent& Event) + { + return Event.GetAsSubscribeApplied(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") + static FSpacetimeDBUnit GetAsUnsubscribeApplied(const FTestClientEvent& Event) + { + return Event.GetAsUnsubscribeApplied(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") + static FSpacetimeDBUnit GetAsDisconnected(const FTestClientEvent& Event) + { + return Event.GetAsDisconnected(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") + static FSpacetimeDBUnit GetAsTransaction(const FTestClientEvent& Event) + { + return Event.GetAsTransaction(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") + static FString GetAsSubscribeError(const FTestClientEvent& Event) + { + return Event.GetAsSubscribeError(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") + static FSpacetimeDBUnit GetAsUnknownTransaction(const FTestClientEvent& Event) + { + return Event.GetAsUnknownTransaction(); + } + +}; + + +USTRUCT(BlueprintType) +struct TESTCLIENT_API FEventContext : public FContextBase +{ + GENERATED_BODY() + + FEventContext() = default; + FEventContext(UDbConnection* InConn, const FTestClientEvent& InEvent) : FContextBase(InConn), Event(InEvent) {} + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestClientEvent Event; +}; + +USTRUCT(BlueprintType) +struct TESTCLIENT_API FReducerEventContext : public FContextBase +{ + GENERATED_BODY() + + FReducerEventContext() = default; + FReducerEventContext(UDbConnection* InConn, FTestClientReducerEvent InEvent) : FContextBase(InConn), Event(InEvent) {} + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestClientReducerEvent Event; +}; + +USTRUCT(BlueprintType) +struct TESTCLIENT_API FProcedureEventContext : public FContextBase +{ + GENERATED_BODY() + + FProcedureEventContext() = default; + FProcedureEventContext(UDbConnection* InConn, FTestClientProcedureEvent InEvent) : FContextBase(InConn), Event(InEvent) {} + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestClientProcedureEvent Event; +}; + +USTRUCT(BlueprintType) +struct TESTCLIENT_API FErrorContext : public FContextBase +{ + GENERATED_BODY() + + FErrorContext() = default; + FErrorContext(UDbConnection* InConn, const FString& InError) : FContextBase(InConn), Error(InError) {} + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FString Error; + +}; + +USTRUCT(BlueprintType) +struct TESTCLIENT_API FSubscriptionEventContext : public FContextBase +{ + GENERATED_BODY() + + FSubscriptionEventContext() = default; + FSubscriptionEventContext(UDbConnection* InConn) : FContextBase(InConn) {} + +}; + +DECLARE_DYNAMIC_DELEGATE_OneParam( + FOnSubscriptionApplied, + FSubscriptionEventContext, Context); + +DECLARE_DYNAMIC_DELEGATE_OneParam( + FOnSubscriptionError, + FErrorContext, Context); + +// RemoteTables class +UCLASS(BlueprintType) +class TESTCLIENT_API URemoteTables : public UObject +{ + GENERATED_BODY() + +public: + void Initialize(); + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UBtreeU32Table* BtreeU32; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UIndexedSimpleEnumTable* IndexedSimpleEnum; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + ULargeTableTable* LargeTable; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneBoolTable* OneBool; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneByteStructTable* OneByteStruct; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneConnectionIdTable* OneConnectionId; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneEnumWithPayloadTable* OneEnumWithPayload; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneEveryPrimitiveStructTable* OneEveryPrimitiveStruct; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneEveryVecStructTable* OneEveryVecStruct; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneF32Table* OneF32; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneF64Table* OneF64; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneI128Table* OneI128; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneI16Table* OneI16; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneI256Table* OneI256; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneI32Table* OneI32; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneI64Table* OneI64; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneI8Table* OneI8; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneIdentityTable* OneIdentity; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneSimpleEnumTable* OneSimpleEnum; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneStringTable* OneString; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneTimestampTable* OneTimestamp; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneU128Table* OneU128; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneU16Table* OneU16; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneU256Table* OneU256; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneU32Table* OneU32; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneU64Table* OneU64; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneU8Table* OneU8; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneUnitStructTable* OneUnitStruct; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOneUuidTable* OneUuid; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOptionEveryPrimitiveStructTable* OptionEveryPrimitiveStruct; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOptionI32Table* OptionI32; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOptionIdentityTable* OptionIdentity; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOptionSimpleEnumTable* OptionSimpleEnum; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOptionStringTable* OptionString; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOptionUuidTable* OptionUuid; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UOptionVecOptionI32Table* OptionVecOptionI32; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkBoolTable* PkBool; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkConnectionIdTable* PkConnectionId; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkI128Table* PkI128; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkI16Table* PkI16; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkI256Table* PkI256; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkI32Table* PkI32; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkI64Table* PkI64; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkI8Table* PkI8; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkIdentityTable* PkIdentity; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkSimpleEnumTable* PkSimpleEnum; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkStringTable* PkString; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkU128Table* PkU128; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkU16Table* PkU16; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkU256Table* PkU256; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkU32Table* PkU32; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkU32TwoTable* PkU32Two; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkU64Table* PkU64; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkU8Table* PkU8; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPkUuidTable* PkUuid; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UResultEveryPrimitiveStructStringTable* ResultEveryPrimitiveStructString; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UResultI32StringTable* ResultI32String; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UResultIdentityStringTable* ResultIdentityString; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UResultSimpleEnumI32Table* ResultSimpleEnumI32; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UResultStringI32Table* ResultStringI32; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UResultVecI32StringTable* ResultVecI32String; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UScheduledTableTable* ScheduledTable; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UTableHoldsTableTable* TableHoldsTable; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueBoolTable* UniqueBool; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueConnectionIdTable* UniqueConnectionId; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueI128Table* UniqueI128; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueI16Table* UniqueI16; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueI256Table* UniqueI256; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueI32Table* UniqueI32; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueI64Table* UniqueI64; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueI8Table* UniqueI8; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueIdentityTable* UniqueIdentity; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueStringTable* UniqueString; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueU128Table* UniqueU128; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueU16Table* UniqueU16; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueU256Table* UniqueU256; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueU32Table* UniqueU32; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueU64Table* UniqueU64; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueU8Table* UniqueU8; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUniqueUuidTable* UniqueUuid; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UUsersTable* Users; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecBoolTable* VecBool; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecByteStructTable* VecByteStruct; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecConnectionIdTable* VecConnectionId; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecEnumWithPayloadTable* VecEnumWithPayload; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecEveryPrimitiveStructTable* VecEveryPrimitiveStruct; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecEveryVecStructTable* VecEveryVecStruct; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecF32Table* VecF32; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecF64Table* VecF64; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecI128Table* VecI128; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecI16Table* VecI16; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecI256Table* VecI256; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecI32Table* VecI32; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecI64Table* VecI64; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecI8Table* VecI8; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecIdentityTable* VecIdentity; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecSimpleEnumTable* VecSimpleEnum; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecStringTable* VecString; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecTimestampTable* VecTimestamp; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecU128Table* VecU128; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecU16Table* VecU16; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecU256Table* VecU256; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecU32Table* VecU32; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecU64Table* VecU64; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecU8Table* VecU8; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecUnitStructTable* VecUnitStruct; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UVecUuidTable* VecUuid; + +}; + +// RemoteReducers class +UCLASS(BlueprintType) +class TESTCLIENT_API URemoteReducers : public UObject +{ + GENERATED_BODY() + +public: + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneBoolHandler, + const FReducerEventContext&, Context, + bool, B + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneBoolHandler OnDeleteAllOneBool; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneBool(const bool B); + + bool InvokeDeleteAllOneBool(const FReducerEventContext& Context, const UDeleteAllOneBoolReducer* Args); + bool InvokeDeleteAllOneBoolWithArgs(const FReducerEventContext& Context, const FDeleteAllOneBoolArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneByteStructHandler, + const FReducerEventContext&, Context, + const FByteStructType&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneByteStructHandler OnDeleteAllOneByteStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneByteStruct(const FByteStructType& S); + + bool InvokeDeleteAllOneByteStruct(const FReducerEventContext& Context, const UDeleteAllOneByteStructReducer* Args); + bool InvokeDeleteAllOneByteStructWithArgs(const FReducerEventContext& Context, const FDeleteAllOneByteStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneEnumWithPayloadHandler, + const FReducerEventContext&, Context, + const FEnumWithPayloadType&, E + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneEnumWithPayloadHandler OnDeleteAllOneEnumWithPayload; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneEnumWithPayload(const FEnumWithPayloadType& E); + + bool InvokeDeleteAllOneEnumWithPayload(const FReducerEventContext& Context, const UDeleteAllOneEnumWithPayloadReducer* Args); + bool InvokeDeleteAllOneEnumWithPayloadWithArgs(const FReducerEventContext& Context, const FDeleteAllOneEnumWithPayloadArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneEveryPrimitiveStructHandler, + const FReducerEventContext&, Context, + const FEveryPrimitiveStructType&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneEveryPrimitiveStructHandler OnDeleteAllOneEveryPrimitiveStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneEveryPrimitiveStruct(const FEveryPrimitiveStructType& S); + + bool InvokeDeleteAllOneEveryPrimitiveStruct(const FReducerEventContext& Context, const UDeleteAllOneEveryPrimitiveStructReducer* Args); + bool InvokeDeleteAllOneEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FDeleteAllOneEveryPrimitiveStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneEveryVecStructHandler, + const FReducerEventContext&, Context, + const FEveryVecStructType&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneEveryVecStructHandler OnDeleteAllOneEveryVecStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneEveryVecStruct(const FEveryVecStructType& S); + + bool InvokeDeleteAllOneEveryVecStruct(const FReducerEventContext& Context, const UDeleteAllOneEveryVecStructReducer* Args); + bool InvokeDeleteAllOneEveryVecStructWithArgs(const FReducerEventContext& Context, const FDeleteAllOneEveryVecStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneF32Handler, + const FReducerEventContext&, Context, + float, F + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneF32Handler OnDeleteAllOneF32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneF32(const float F); + + bool InvokeDeleteAllOneF32(const FReducerEventContext& Context, const UDeleteAllOneF32Reducer* Args); + bool InvokeDeleteAllOneF32WithArgs(const FReducerEventContext& Context, const FDeleteAllOneF32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneF64Handler, + const FReducerEventContext&, Context, + double, F + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneF64Handler OnDeleteAllOneF64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneF64(const double F); + + bool InvokeDeleteAllOneF64(const FReducerEventContext& Context, const UDeleteAllOneF64Reducer* Args); + bool InvokeDeleteAllOneF64WithArgs(const FReducerEventContext& Context, const FDeleteAllOneF64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneI128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt128&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneI128Handler OnDeleteAllOneI128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneI128(const FSpacetimeDBInt128& N); + + bool InvokeDeleteAllOneI128(const FReducerEventContext& Context, const UDeleteAllOneI128Reducer* Args); + bool InvokeDeleteAllOneI128WithArgs(const FReducerEventContext& Context, const FDeleteAllOneI128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneI16Handler, + const FReducerEventContext&, Context, + int16, N + ); + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + FDeleteAllOneI16Handler OnDeleteAllOneI16; + + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + void DeleteAllOneI16(const int16 N); + + bool InvokeDeleteAllOneI16(const FReducerEventContext& Context, const UDeleteAllOneI16Reducer* Args); + bool InvokeDeleteAllOneI16WithArgs(const FReducerEventContext& Context, const FDeleteAllOneI16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneI256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt256&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneI256Handler OnDeleteAllOneI256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneI256(const FSpacetimeDBInt256& N); + + bool InvokeDeleteAllOneI256(const FReducerEventContext& Context, const UDeleteAllOneI256Reducer* Args); + bool InvokeDeleteAllOneI256WithArgs(const FReducerEventContext& Context, const FDeleteAllOneI256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneI32Handler, + const FReducerEventContext&, Context, + int32, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneI32Handler OnDeleteAllOneI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneI32(const int32 N); + + bool InvokeDeleteAllOneI32(const FReducerEventContext& Context, const UDeleteAllOneI32Reducer* Args); + bool InvokeDeleteAllOneI32WithArgs(const FReducerEventContext& Context, const FDeleteAllOneI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneI64Handler, + const FReducerEventContext&, Context, + int64, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneI64Handler OnDeleteAllOneI64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneI64(const int64 N); + + bool InvokeDeleteAllOneI64(const FReducerEventContext& Context, const UDeleteAllOneI64Reducer* Args); + bool InvokeDeleteAllOneI64WithArgs(const FReducerEventContext& Context, const FDeleteAllOneI64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneI8Handler, + const FReducerEventContext&, Context, + int8, N + ); + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + FDeleteAllOneI8Handler OnDeleteAllOneI8; + + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + void DeleteAllOneI8(const int8 N); + + bool InvokeDeleteAllOneI8(const FReducerEventContext& Context, const UDeleteAllOneI8Reducer* Args); + bool InvokeDeleteAllOneI8WithArgs(const FReducerEventContext& Context, const FDeleteAllOneI8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneIdentityHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBIdentity&, I + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneIdentityHandler OnDeleteAllOneIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneIdentity(const FSpacetimeDBIdentity& I); + + bool InvokeDeleteAllOneIdentity(const FReducerEventContext& Context, const UDeleteAllOneIdentityReducer* Args); + bool InvokeDeleteAllOneIdentityWithArgs(const FReducerEventContext& Context, const FDeleteAllOneIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneSimpleEnumHandler, + const FReducerEventContext&, Context, + const ESimpleEnumType&, E + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneSimpleEnumHandler OnDeleteAllOneSimpleEnum; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneSimpleEnum(const ESimpleEnumType& E); + + bool InvokeDeleteAllOneSimpleEnum(const FReducerEventContext& Context, const UDeleteAllOneSimpleEnumReducer* Args); + bool InvokeDeleteAllOneSimpleEnumWithArgs(const FReducerEventContext& Context, const FDeleteAllOneSimpleEnumArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneStringHandler, + const FReducerEventContext&, Context, + const FString&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneStringHandler OnDeleteAllOneString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneString(const FString& S); + + bool InvokeDeleteAllOneString(const FReducerEventContext& Context, const UDeleteAllOneStringReducer* Args); + bool InvokeDeleteAllOneStringWithArgs(const FReducerEventContext& Context, const FDeleteAllOneStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneTimestampHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBTimestamp&, T + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneTimestampHandler OnDeleteAllOneTimestamp; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneTimestamp(const FSpacetimeDBTimestamp& T); + + bool InvokeDeleteAllOneTimestamp(const FReducerEventContext& Context, const UDeleteAllOneTimestampReducer* Args); + bool InvokeDeleteAllOneTimestampWithArgs(const FReducerEventContext& Context, const FDeleteAllOneTimestampArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneU128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt128&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneU128Handler OnDeleteAllOneU128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneU128(const FSpacetimeDBUInt128& N); + + bool InvokeDeleteAllOneU128(const FReducerEventContext& Context, const UDeleteAllOneU128Reducer* Args); + bool InvokeDeleteAllOneU128WithArgs(const FReducerEventContext& Context, const FDeleteAllOneU128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneU16Handler, + const FReducerEventContext&, Context, + uint16, N + ); + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + FDeleteAllOneU16Handler OnDeleteAllOneU16; + + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + void DeleteAllOneU16(const uint16 N); + + bool InvokeDeleteAllOneU16(const FReducerEventContext& Context, const UDeleteAllOneU16Reducer* Args); + bool InvokeDeleteAllOneU16WithArgs(const FReducerEventContext& Context, const FDeleteAllOneU16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneU256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt256&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneU256Handler OnDeleteAllOneU256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneU256(const FSpacetimeDBUInt256& N); + + bool InvokeDeleteAllOneU256(const FReducerEventContext& Context, const UDeleteAllOneU256Reducer* Args); + bool InvokeDeleteAllOneU256WithArgs(const FReducerEventContext& Context, const FDeleteAllOneU256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneU32Handler, + const FReducerEventContext&, Context, + uint32, N + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FDeleteAllOneU32Handler OnDeleteAllOneU32; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void DeleteAllOneU32(const uint32 N); + + bool InvokeDeleteAllOneU32(const FReducerEventContext& Context, const UDeleteAllOneU32Reducer* Args); + bool InvokeDeleteAllOneU32WithArgs(const FReducerEventContext& Context, const FDeleteAllOneU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneU64Handler, + const FReducerEventContext&, Context, + uint64, N + ); + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FDeleteAllOneU64Handler OnDeleteAllOneU64; + + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + void DeleteAllOneU64(const uint64 N); + + bool InvokeDeleteAllOneU64(const FReducerEventContext& Context, const UDeleteAllOneU64Reducer* Args); + bool InvokeDeleteAllOneU64WithArgs(const FReducerEventContext& Context, const FDeleteAllOneU64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneU8Handler, + const FReducerEventContext&, Context, + uint8, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneU8Handler OnDeleteAllOneU8; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneU8(const uint8 N); + + bool InvokeDeleteAllOneU8(const FReducerEventContext& Context, const UDeleteAllOneU8Reducer* Args); + bool InvokeDeleteAllOneU8WithArgs(const FReducerEventContext& Context, const FDeleteAllOneU8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneUnitStructHandler, + const FReducerEventContext&, Context, + const FUnitStructType&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneUnitStructHandler OnDeleteAllOneUnitStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneUnitStruct(const FUnitStructType& S); + + bool InvokeDeleteAllOneUnitStruct(const FReducerEventContext& Context, const UDeleteAllOneUnitStructReducer* Args); + bool InvokeDeleteAllOneUnitStructWithArgs(const FReducerEventContext& Context, const FDeleteAllOneUnitStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOneUuidHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBUuid&, U + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOneUuidHandler OnDeleteAllOneUuid; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOneUuid(const FSpacetimeDBUuid& U); + + bool InvokeDeleteAllOneUuid(const FReducerEventContext& Context, const UDeleteAllOneUuidReducer* Args); + bool InvokeDeleteAllOneUuidWithArgs(const FReducerEventContext& Context, const FDeleteAllOneUuidArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOptionEveryPrimitiveStructHandler, + const FReducerEventContext&, Context, + const FTestClientOptionalEveryPrimitiveStruct&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOptionEveryPrimitiveStructHandler OnDeleteAllOptionEveryPrimitiveStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOptionEveryPrimitiveStruct(const FTestClientOptionalEveryPrimitiveStruct& S); + + bool InvokeDeleteAllOptionEveryPrimitiveStruct(const FReducerEventContext& Context, const UDeleteAllOptionEveryPrimitiveStructReducer* Args); + bool InvokeDeleteAllOptionEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FDeleteAllOptionEveryPrimitiveStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOptionI32Handler, + const FReducerEventContext&, Context, + FTestClientOptionalInt32, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOptionI32Handler OnDeleteAllOptionI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOptionI32(const FTestClientOptionalInt32 N); + + bool InvokeDeleteAllOptionI32(const FReducerEventContext& Context, const UDeleteAllOptionI32Reducer* Args); + bool InvokeDeleteAllOptionI32WithArgs(const FReducerEventContext& Context, const FDeleteAllOptionI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOptionIdentityHandler, + const FReducerEventContext&, Context, + const FTestClientOptionalIdentity&, I + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOptionIdentityHandler OnDeleteAllOptionIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOptionIdentity(const FTestClientOptionalIdentity& I); + + bool InvokeDeleteAllOptionIdentity(const FReducerEventContext& Context, const UDeleteAllOptionIdentityReducer* Args); + bool InvokeDeleteAllOptionIdentityWithArgs(const FReducerEventContext& Context, const FDeleteAllOptionIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOptionSimpleEnumHandler, + const FReducerEventContext&, Context, + const FTestClientOptionalSimpleEnum&, E + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOptionSimpleEnumHandler OnDeleteAllOptionSimpleEnum; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOptionSimpleEnum(const FTestClientOptionalSimpleEnum& E); + + bool InvokeDeleteAllOptionSimpleEnum(const FReducerEventContext& Context, const UDeleteAllOptionSimpleEnumReducer* Args); + bool InvokeDeleteAllOptionSimpleEnumWithArgs(const FReducerEventContext& Context, const FDeleteAllOptionSimpleEnumArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOptionStringHandler, + const FReducerEventContext&, Context, + const FTestClientOptionalString&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOptionStringHandler OnDeleteAllOptionString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOptionString(const FTestClientOptionalString& S); + + bool InvokeDeleteAllOptionString(const FReducerEventContext& Context, const UDeleteAllOptionStringReducer* Args); + bool InvokeDeleteAllOptionStringWithArgs(const FReducerEventContext& Context, const FDeleteAllOptionStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOptionUuidHandler, + const FReducerEventContext&, Context, + const FTestClientOptionalUuid&, U + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOptionUuidHandler OnDeleteAllOptionUuid; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOptionUuid(const FTestClientOptionalUuid& U); + + bool InvokeDeleteAllOptionUuid(const FReducerEventContext& Context, const UDeleteAllOptionUuidReducer* Args); + bool InvokeDeleteAllOptionUuidWithArgs(const FReducerEventContext& Context, const FDeleteAllOptionUuidArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllOptionVecOptionI32Handler, + const FReducerEventContext&, Context, + const FTestClientOptionalVecOptionalInt32&, V + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllOptionVecOptionI32Handler OnDeleteAllOptionVecOptionI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllOptionVecOptionI32(const FTestClientOptionalVecOptionalInt32& V); + + bool InvokeDeleteAllOptionVecOptionI32(const FReducerEventContext& Context, const UDeleteAllOptionVecOptionI32Reducer* Args); + bool InvokeDeleteAllOptionVecOptionI32WithArgs(const FReducerEventContext& Context, const FDeleteAllOptionVecOptionI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkBoolHandler, + const FReducerEventContext&, Context, + bool, B, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllPkBoolHandler OnDeleteAllPkBool; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllPkBool(const bool B, const int32 Data); + + bool InvokeDeleteAllPkBool(const FReducerEventContext& Context, const UDeleteAllPkBoolReducer* Args); + bool InvokeDeleteAllPkBoolWithArgs(const FReducerEventContext& Context, const FDeleteAllPkBoolArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkConnectionIdHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBConnectionId&, A, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllPkConnectionIdHandler OnDeleteAllPkConnectionId; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllPkConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data); + + bool InvokeDeleteAllPkConnectionId(const FReducerEventContext& Context, const UDeleteAllPkConnectionIdReducer* Args); + bool InvokeDeleteAllPkConnectionIdWithArgs(const FReducerEventContext& Context, const FDeleteAllPkConnectionIdArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkI128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt128&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllPkI128Handler OnDeleteAllPkI128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllPkI128(const FSpacetimeDBInt128& N, const int32 Data); + + bool InvokeDeleteAllPkI128(const FReducerEventContext& Context, const UDeleteAllPkI128Reducer* Args); + bool InvokeDeleteAllPkI128WithArgs(const FReducerEventContext& Context, const FDeleteAllPkI128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkI16Handler, + const FReducerEventContext&, Context, + int16, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + FDeleteAllPkI16Handler OnDeleteAllPkI16; + + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + void DeleteAllPkI16(const int16 N, const int32 Data); + + bool InvokeDeleteAllPkI16(const FReducerEventContext& Context, const UDeleteAllPkI16Reducer* Args); + bool InvokeDeleteAllPkI16WithArgs(const FReducerEventContext& Context, const FDeleteAllPkI16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkI256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt256&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllPkI256Handler OnDeleteAllPkI256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllPkI256(const FSpacetimeDBInt256& N, const int32 Data); + + bool InvokeDeleteAllPkI256(const FReducerEventContext& Context, const UDeleteAllPkI256Reducer* Args); + bool InvokeDeleteAllPkI256WithArgs(const FReducerEventContext& Context, const FDeleteAllPkI256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkI32Handler, + const FReducerEventContext&, Context, + int32, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllPkI32Handler OnDeleteAllPkI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllPkI32(const int32 N, const int32 Data); + + bool InvokeDeleteAllPkI32(const FReducerEventContext& Context, const UDeleteAllPkI32Reducer* Args); + bool InvokeDeleteAllPkI32WithArgs(const FReducerEventContext& Context, const FDeleteAllPkI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkI64Handler, + const FReducerEventContext&, Context, + int64, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllPkI64Handler OnDeleteAllPkI64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllPkI64(const int64 N, const int32 Data); + + bool InvokeDeleteAllPkI64(const FReducerEventContext& Context, const UDeleteAllPkI64Reducer* Args); + bool InvokeDeleteAllPkI64WithArgs(const FReducerEventContext& Context, const FDeleteAllPkI64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkI8Handler, + const FReducerEventContext&, Context, + int8, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + FDeleteAllPkI8Handler OnDeleteAllPkI8; + + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + void DeleteAllPkI8(const int8 N, const int32 Data); + + bool InvokeDeleteAllPkI8(const FReducerEventContext& Context, const UDeleteAllPkI8Reducer* Args); + bool InvokeDeleteAllPkI8WithArgs(const FReducerEventContext& Context, const FDeleteAllPkI8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkIdentityHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBIdentity&, I, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllPkIdentityHandler OnDeleteAllPkIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllPkIdentity(const FSpacetimeDBIdentity& I, const int32 Data); + + bool InvokeDeleteAllPkIdentity(const FReducerEventContext& Context, const UDeleteAllPkIdentityReducer* Args); + bool InvokeDeleteAllPkIdentityWithArgs(const FReducerEventContext& Context, const FDeleteAllPkIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkStringHandler, + const FReducerEventContext&, Context, + const FString&, S, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllPkStringHandler OnDeleteAllPkString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllPkString(const FString& S, const int32 Data); + + bool InvokeDeleteAllPkString(const FReducerEventContext& Context, const UDeleteAllPkStringReducer* Args); + bool InvokeDeleteAllPkStringWithArgs(const FReducerEventContext& Context, const FDeleteAllPkStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkU128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt128&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllPkU128Handler OnDeleteAllPkU128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllPkU128(const FSpacetimeDBUInt128& N, const int32 Data); + + bool InvokeDeleteAllPkU128(const FReducerEventContext& Context, const UDeleteAllPkU128Reducer* Args); + bool InvokeDeleteAllPkU128WithArgs(const FReducerEventContext& Context, const FDeleteAllPkU128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkU16Handler, + const FReducerEventContext&, Context, + uint16, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + FDeleteAllPkU16Handler OnDeleteAllPkU16; + + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + void DeleteAllPkU16(const uint16 N, const int32 Data); + + bool InvokeDeleteAllPkU16(const FReducerEventContext& Context, const UDeleteAllPkU16Reducer* Args); + bool InvokeDeleteAllPkU16WithArgs(const FReducerEventContext& Context, const FDeleteAllPkU16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkU256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt256&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllPkU256Handler OnDeleteAllPkU256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllPkU256(const FSpacetimeDBUInt256& N, const int32 Data); + + bool InvokeDeleteAllPkU256(const FReducerEventContext& Context, const UDeleteAllPkU256Reducer* Args); + bool InvokeDeleteAllPkU256WithArgs(const FReducerEventContext& Context, const FDeleteAllPkU256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkU32Handler, + const FReducerEventContext&, Context, + uint32, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FDeleteAllPkU32Handler OnDeleteAllPkU32; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void DeleteAllPkU32(const uint32 N, const int32 Data); + + bool InvokeDeleteAllPkU32(const FReducerEventContext& Context, const UDeleteAllPkU32Reducer* Args); + bool InvokeDeleteAllPkU32WithArgs(const FReducerEventContext& Context, const FDeleteAllPkU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkU32TwoHandler, + const FReducerEventContext&, Context, + uint32, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FDeleteAllPkU32TwoHandler OnDeleteAllPkU32Two; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void DeleteAllPkU32Two(const uint32 N, const int32 Data); + + bool InvokeDeleteAllPkU32Two(const FReducerEventContext& Context, const UDeleteAllPkU32TwoReducer* Args); + bool InvokeDeleteAllPkU32TwoWithArgs(const FReducerEventContext& Context, const FDeleteAllPkU32TwoArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkU64Handler, + const FReducerEventContext&, Context, + uint64, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FDeleteAllPkU64Handler OnDeleteAllPkU64; + + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + void DeleteAllPkU64(const uint64 N, const int32 Data); + + bool InvokeDeleteAllPkU64(const FReducerEventContext& Context, const UDeleteAllPkU64Reducer* Args); + bool InvokeDeleteAllPkU64WithArgs(const FReducerEventContext& Context, const FDeleteAllPkU64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkU8Handler, + const FReducerEventContext&, Context, + uint8, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllPkU8Handler OnDeleteAllPkU8; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllPkU8(const uint8 N, const int32 Data); + + bool InvokeDeleteAllPkU8(const FReducerEventContext& Context, const UDeleteAllPkU8Reducer* Args); + bool InvokeDeleteAllPkU8WithArgs(const FReducerEventContext& Context, const FDeleteAllPkU8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllPkUuidHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBUuid&, U, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllPkUuidHandler OnDeleteAllPkUuid; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllPkUuid(const FSpacetimeDBUuid& U, const int32 Data); + + bool InvokeDeleteAllPkUuid(const FReducerEventContext& Context, const UDeleteAllPkUuidReducer* Args); + bool InvokeDeleteAllPkUuidWithArgs(const FReducerEventContext& Context, const FDeleteAllPkUuidArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueBoolHandler, + const FReducerEventContext&, Context, + bool, B, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllUniqueBoolHandler OnDeleteAllUniqueBool; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllUniqueBool(const bool B, const int32 Data); + + bool InvokeDeleteAllUniqueBool(const FReducerEventContext& Context, const UDeleteAllUniqueBoolReducer* Args); + bool InvokeDeleteAllUniqueBoolWithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueBoolArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueConnectionIdHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBConnectionId&, A, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllUniqueConnectionIdHandler OnDeleteAllUniqueConnectionId; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllUniqueConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data); + + bool InvokeDeleteAllUniqueConnectionId(const FReducerEventContext& Context, const UDeleteAllUniqueConnectionIdReducer* Args); + bool InvokeDeleteAllUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueConnectionIdArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueI128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt128&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllUniqueI128Handler OnDeleteAllUniqueI128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllUniqueI128(const FSpacetimeDBInt128& N, const int32 Data); + + bool InvokeDeleteAllUniqueI128(const FReducerEventContext& Context, const UDeleteAllUniqueI128Reducer* Args); + bool InvokeDeleteAllUniqueI128WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueI128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueI16Handler, + const FReducerEventContext&, Context, + int16, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + FDeleteAllUniqueI16Handler OnDeleteAllUniqueI16; + + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + void DeleteAllUniqueI16(const int16 N, const int32 Data); + + bool InvokeDeleteAllUniqueI16(const FReducerEventContext& Context, const UDeleteAllUniqueI16Reducer* Args); + bool InvokeDeleteAllUniqueI16WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueI16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueI256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt256&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllUniqueI256Handler OnDeleteAllUniqueI256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllUniqueI256(const FSpacetimeDBInt256& N, const int32 Data); + + bool InvokeDeleteAllUniqueI256(const FReducerEventContext& Context, const UDeleteAllUniqueI256Reducer* Args); + bool InvokeDeleteAllUniqueI256WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueI256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueI32Handler, + const FReducerEventContext&, Context, + int32, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllUniqueI32Handler OnDeleteAllUniqueI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllUniqueI32(const int32 N, const int32 Data); + + bool InvokeDeleteAllUniqueI32(const FReducerEventContext& Context, const UDeleteAllUniqueI32Reducer* Args); + bool InvokeDeleteAllUniqueI32WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueI64Handler, + const FReducerEventContext&, Context, + int64, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllUniqueI64Handler OnDeleteAllUniqueI64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllUniqueI64(const int64 N, const int32 Data); + + bool InvokeDeleteAllUniqueI64(const FReducerEventContext& Context, const UDeleteAllUniqueI64Reducer* Args); + bool InvokeDeleteAllUniqueI64WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueI64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueI8Handler, + const FReducerEventContext&, Context, + int8, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + FDeleteAllUniqueI8Handler OnDeleteAllUniqueI8; + + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + void DeleteAllUniqueI8(const int8 N, const int32 Data); + + bool InvokeDeleteAllUniqueI8(const FReducerEventContext& Context, const UDeleteAllUniqueI8Reducer* Args); + bool InvokeDeleteAllUniqueI8WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueI8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueIdentityHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBIdentity&, I, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllUniqueIdentityHandler OnDeleteAllUniqueIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllUniqueIdentity(const FSpacetimeDBIdentity& I, const int32 Data); + + bool InvokeDeleteAllUniqueIdentity(const FReducerEventContext& Context, const UDeleteAllUniqueIdentityReducer* Args); + bool InvokeDeleteAllUniqueIdentityWithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueStringHandler, + const FReducerEventContext&, Context, + const FString&, S, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllUniqueStringHandler OnDeleteAllUniqueString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllUniqueString(const FString& S, const int32 Data); + + bool InvokeDeleteAllUniqueString(const FReducerEventContext& Context, const UDeleteAllUniqueStringReducer* Args); + bool InvokeDeleteAllUniqueStringWithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueU128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt128&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllUniqueU128Handler OnDeleteAllUniqueU128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllUniqueU128(const FSpacetimeDBUInt128& N, const int32 Data); + + bool InvokeDeleteAllUniqueU128(const FReducerEventContext& Context, const UDeleteAllUniqueU128Reducer* Args); + bool InvokeDeleteAllUniqueU128WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueU128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueU16Handler, + const FReducerEventContext&, Context, + uint16, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + FDeleteAllUniqueU16Handler OnDeleteAllUniqueU16; + + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + void DeleteAllUniqueU16(const uint16 N, const int32 Data); + + bool InvokeDeleteAllUniqueU16(const FReducerEventContext& Context, const UDeleteAllUniqueU16Reducer* Args); + bool InvokeDeleteAllUniqueU16WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueU16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueU256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt256&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllUniqueU256Handler OnDeleteAllUniqueU256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllUniqueU256(const FSpacetimeDBUInt256& N, const int32 Data); + + bool InvokeDeleteAllUniqueU256(const FReducerEventContext& Context, const UDeleteAllUniqueU256Reducer* Args); + bool InvokeDeleteAllUniqueU256WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueU256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueU32Handler, + const FReducerEventContext&, Context, + uint32, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FDeleteAllUniqueU32Handler OnDeleteAllUniqueU32; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void DeleteAllUniqueU32(const uint32 N, const int32 Data); + + bool InvokeDeleteAllUniqueU32(const FReducerEventContext& Context, const UDeleteAllUniqueU32Reducer* Args); + bool InvokeDeleteAllUniqueU32WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueU64Handler, + const FReducerEventContext&, Context, + uint64, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FDeleteAllUniqueU64Handler OnDeleteAllUniqueU64; + + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + void DeleteAllUniqueU64(const uint64 N, const int32 Data); + + bool InvokeDeleteAllUniqueU64(const FReducerEventContext& Context, const UDeleteAllUniqueU64Reducer* Args); + bool InvokeDeleteAllUniqueU64WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueU64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueU8Handler, + const FReducerEventContext&, Context, + uint8, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllUniqueU8Handler OnDeleteAllUniqueU8; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllUniqueU8(const uint8 N, const int32 Data); + + bool InvokeDeleteAllUniqueU8(const FReducerEventContext& Context, const UDeleteAllUniqueU8Reducer* Args); + bool InvokeDeleteAllUniqueU8WithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueU8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeleteAllUniqueUuidHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBUuid&, U, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllUniqueUuidHandler OnDeleteAllUniqueUuid; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllUniqueUuid(const FSpacetimeDBUuid& U, const int32 Data); + + bool InvokeDeleteAllUniqueUuid(const FReducerEventContext& Context, const UDeleteAllUniqueUuidReducer* Args); + bool InvokeDeleteAllUniqueUuidWithArgs(const FReducerEventContext& Context, const FDeleteAllUniqueUuidArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecBoolHandler, + const FReducerEventContext&, Context, + const TArray&, B + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecBoolHandler OnDeleteAllVecBool; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecBool(const TArray& B); + + bool InvokeDeleteAllVecBool(const FReducerEventContext& Context, const UDeleteAllVecBoolReducer* Args); + bool InvokeDeleteAllVecBoolWithArgs(const FReducerEventContext& Context, const FDeleteAllVecBoolArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecByteStructHandler, + const FReducerEventContext&, Context, + const TArray&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecByteStructHandler OnDeleteAllVecByteStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecByteStruct(const TArray& S); + + bool InvokeDeleteAllVecByteStruct(const FReducerEventContext& Context, const UDeleteAllVecByteStructReducer* Args); + bool InvokeDeleteAllVecByteStructWithArgs(const FReducerEventContext& Context, const FDeleteAllVecByteStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecEnumWithPayloadHandler, + const FReducerEventContext&, Context, + const TArray&, E + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecEnumWithPayloadHandler OnDeleteAllVecEnumWithPayload; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecEnumWithPayload(const TArray& E); + + bool InvokeDeleteAllVecEnumWithPayload(const FReducerEventContext& Context, const UDeleteAllVecEnumWithPayloadReducer* Args); + bool InvokeDeleteAllVecEnumWithPayloadWithArgs(const FReducerEventContext& Context, const FDeleteAllVecEnumWithPayloadArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecEveryPrimitiveStructHandler, + const FReducerEventContext&, Context, + const TArray&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecEveryPrimitiveStructHandler OnDeleteAllVecEveryPrimitiveStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecEveryPrimitiveStruct(const TArray& S); + + bool InvokeDeleteAllVecEveryPrimitiveStruct(const FReducerEventContext& Context, const UDeleteAllVecEveryPrimitiveStructReducer* Args); + bool InvokeDeleteAllVecEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FDeleteAllVecEveryPrimitiveStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecEveryVecStructHandler, + const FReducerEventContext&, Context, + const TArray&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecEveryVecStructHandler OnDeleteAllVecEveryVecStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecEveryVecStruct(const TArray& S); + + bool InvokeDeleteAllVecEveryVecStruct(const FReducerEventContext& Context, const UDeleteAllVecEveryVecStructReducer* Args); + bool InvokeDeleteAllVecEveryVecStructWithArgs(const FReducerEventContext& Context, const FDeleteAllVecEveryVecStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecF32Handler, + const FReducerEventContext&, Context, + const TArray&, F + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecF32Handler OnDeleteAllVecF32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecF32(const TArray& F); + + bool InvokeDeleteAllVecF32(const FReducerEventContext& Context, const UDeleteAllVecF32Reducer* Args); + bool InvokeDeleteAllVecF32WithArgs(const FReducerEventContext& Context, const FDeleteAllVecF32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecF64Handler, + const FReducerEventContext&, Context, + const TArray&, F + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecF64Handler OnDeleteAllVecF64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecF64(const TArray& F); + + bool InvokeDeleteAllVecF64(const FReducerEventContext& Context, const UDeleteAllVecF64Reducer* Args); + bool InvokeDeleteAllVecF64WithArgs(const FReducerEventContext& Context, const FDeleteAllVecF64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecI128Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecI128Handler OnDeleteAllVecI128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecI128(const TArray& N); + + bool InvokeDeleteAllVecI128(const FReducerEventContext& Context, const UDeleteAllVecI128Reducer* Args); + bool InvokeDeleteAllVecI128WithArgs(const FReducerEventContext& Context, const FDeleteAllVecI128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecI16Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + FDeleteAllVecI16Handler OnDeleteAllVecI16; + + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + void DeleteAllVecI16(const TArray& N); + + bool InvokeDeleteAllVecI16(const FReducerEventContext& Context, const UDeleteAllVecI16Reducer* Args); + bool InvokeDeleteAllVecI16WithArgs(const FReducerEventContext& Context, const FDeleteAllVecI16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecI256Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecI256Handler OnDeleteAllVecI256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecI256(const TArray& N); + + bool InvokeDeleteAllVecI256(const FReducerEventContext& Context, const UDeleteAllVecI256Reducer* Args); + bool InvokeDeleteAllVecI256WithArgs(const FReducerEventContext& Context, const FDeleteAllVecI256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecI32Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecI32Handler OnDeleteAllVecI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecI32(const TArray& N); + + bool InvokeDeleteAllVecI32(const FReducerEventContext& Context, const UDeleteAllVecI32Reducer* Args); + bool InvokeDeleteAllVecI32WithArgs(const FReducerEventContext& Context, const FDeleteAllVecI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecI64Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecI64Handler OnDeleteAllVecI64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecI64(const TArray& N); + + bool InvokeDeleteAllVecI64(const FReducerEventContext& Context, const UDeleteAllVecI64Reducer* Args); + bool InvokeDeleteAllVecI64WithArgs(const FReducerEventContext& Context, const FDeleteAllVecI64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecI8Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + FDeleteAllVecI8Handler OnDeleteAllVecI8; + + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + void DeleteAllVecI8(const TArray& N); + + bool InvokeDeleteAllVecI8(const FReducerEventContext& Context, const UDeleteAllVecI8Reducer* Args); + bool InvokeDeleteAllVecI8WithArgs(const FReducerEventContext& Context, const FDeleteAllVecI8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecIdentityHandler, + const FReducerEventContext&, Context, + const TArray&, I + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecIdentityHandler OnDeleteAllVecIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecIdentity(const TArray& I); + + bool InvokeDeleteAllVecIdentity(const FReducerEventContext& Context, const UDeleteAllVecIdentityReducer* Args); + bool InvokeDeleteAllVecIdentityWithArgs(const FReducerEventContext& Context, const FDeleteAllVecIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecSimpleEnumHandler, + const FReducerEventContext&, Context, + const TArray&, E + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecSimpleEnumHandler OnDeleteAllVecSimpleEnum; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecSimpleEnum(const TArray& E); + + bool InvokeDeleteAllVecSimpleEnum(const FReducerEventContext& Context, const UDeleteAllVecSimpleEnumReducer* Args); + bool InvokeDeleteAllVecSimpleEnumWithArgs(const FReducerEventContext& Context, const FDeleteAllVecSimpleEnumArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecStringHandler, + const FReducerEventContext&, Context, + const TArray&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecStringHandler OnDeleteAllVecString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecString(const TArray& S); + + bool InvokeDeleteAllVecString(const FReducerEventContext& Context, const UDeleteAllVecStringReducer* Args); + bool InvokeDeleteAllVecStringWithArgs(const FReducerEventContext& Context, const FDeleteAllVecStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecTimestampHandler, + const FReducerEventContext&, Context, + const TArray&, T + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecTimestampHandler OnDeleteAllVecTimestamp; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecTimestamp(const TArray& T); + + bool InvokeDeleteAllVecTimestamp(const FReducerEventContext& Context, const UDeleteAllVecTimestampReducer* Args); + bool InvokeDeleteAllVecTimestampWithArgs(const FReducerEventContext& Context, const FDeleteAllVecTimestampArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecU128Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecU128Handler OnDeleteAllVecU128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecU128(const TArray& N); + + bool InvokeDeleteAllVecU128(const FReducerEventContext& Context, const UDeleteAllVecU128Reducer* Args); + bool InvokeDeleteAllVecU128WithArgs(const FReducerEventContext& Context, const FDeleteAllVecU128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecU16Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + FDeleteAllVecU16Handler OnDeleteAllVecU16; + + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + void DeleteAllVecU16(const TArray& N); + + bool InvokeDeleteAllVecU16(const FReducerEventContext& Context, const UDeleteAllVecU16Reducer* Args); + bool InvokeDeleteAllVecU16WithArgs(const FReducerEventContext& Context, const FDeleteAllVecU16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecU256Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecU256Handler OnDeleteAllVecU256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecU256(const TArray& N); + + bool InvokeDeleteAllVecU256(const FReducerEventContext& Context, const UDeleteAllVecU256Reducer* Args); + bool InvokeDeleteAllVecU256WithArgs(const FReducerEventContext& Context, const FDeleteAllVecU256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecU32Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + FDeleteAllVecU32Handler OnDeleteAllVecU32; + + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + void DeleteAllVecU32(const TArray& N); + + bool InvokeDeleteAllVecU32(const FReducerEventContext& Context, const UDeleteAllVecU32Reducer* Args); + bool InvokeDeleteAllVecU32WithArgs(const FReducerEventContext& Context, const FDeleteAllVecU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecU64Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + FDeleteAllVecU64Handler OnDeleteAllVecU64; + + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + void DeleteAllVecU64(const TArray& N); + + bool InvokeDeleteAllVecU64(const FReducerEventContext& Context, const UDeleteAllVecU64Reducer* Args); + bool InvokeDeleteAllVecU64WithArgs(const FReducerEventContext& Context, const FDeleteAllVecU64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecU8Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecU8Handler OnDeleteAllVecU8; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecU8(const TArray& N); + + bool InvokeDeleteAllVecU8(const FReducerEventContext& Context, const UDeleteAllVecU8Reducer* Args); + bool InvokeDeleteAllVecU8WithArgs(const FReducerEventContext& Context, const FDeleteAllVecU8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecUnitStructHandler, + const FReducerEventContext&, Context, + const TArray&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecUnitStructHandler OnDeleteAllVecUnitStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecUnitStruct(const TArray& S); + + bool InvokeDeleteAllVecUnitStruct(const FReducerEventContext& Context, const UDeleteAllVecUnitStructReducer* Args); + bool InvokeDeleteAllVecUnitStructWithArgs(const FReducerEventContext& Context, const FDeleteAllVecUnitStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteAllVecUuidHandler, + const FReducerEventContext&, Context, + const TArray&, U + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteAllVecUuidHandler OnDeleteAllVecUuid; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteAllVecUuid(const TArray& U); + + bool InvokeDeleteAllVecUuid(const FReducerEventContext& Context, const UDeleteAllVecUuidReducer* Args); + bool InvokeDeleteAllVecUuidWithArgs(const FReducerEventContext& Context, const FDeleteAllVecUuidArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteFromBtreeU32Handler, + const FReducerEventContext&, Context, + const TArray&, Rows + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteFromBtreeU32Handler OnDeleteFromBtreeU32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteFromBtreeU32(const TArray& Rows); + + bool InvokeDeleteFromBtreeU32(const FReducerEventContext& Context, const UDeleteFromBtreeU32Reducer* Args); + bool InvokeDeleteFromBtreeU32WithArgs(const FReducerEventContext& Context, const FDeleteFromBtreeU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteLargeTableHandler, + const FReducerEventContext&, Context, + const FDeleteLargeTableArgs&, Args + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteLargeTableHandler OnDeleteLargeTable; + + // NOTE: Not exposed to Blueprint because uint16, uint32, uint64, int8, int16 types are not Blueprint-compatible + void DeleteLargeTable(const uint8 A, const uint16 B, const uint32 C, const uint64 D, const FSpacetimeDBUInt128& E, const FSpacetimeDBUInt256& F, const int8 G, const int16 H, const int32 I, const int64 J, const FSpacetimeDBInt128& K, const FSpacetimeDBInt256& L, const bool M, const float N, const double O, const FString& P, const ESimpleEnumType& Q, const FEnumWithPayloadType& R, const FUnitStructType& S, const FByteStructType& T, const FEveryPrimitiveStructType& U, const FEveryVecStructType& V); + + bool InvokeDeleteLargeTable(const FReducerEventContext& Context, const UDeleteLargeTableReducer* Args); + bool InvokeDeleteLargeTableWithArgs(const FReducerEventContext& Context, const FDeleteLargeTableArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkBoolHandler, + const FReducerEventContext&, Context, + bool, B + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeletePkBoolHandler OnDeletePkBool; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeletePkBool(const bool B); + + bool InvokeDeletePkBool(const FReducerEventContext& Context, const UDeletePkBoolReducer* Args); + bool InvokeDeletePkBoolWithArgs(const FReducerEventContext& Context, const FDeletePkBoolArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkConnectionIdHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBConnectionId&, A + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeletePkConnectionIdHandler OnDeletePkConnectionId; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeletePkConnectionId(const FSpacetimeDBConnectionId& A); + + bool InvokeDeletePkConnectionId(const FReducerEventContext& Context, const UDeletePkConnectionIdReducer* Args); + bool InvokeDeletePkConnectionIdWithArgs(const FReducerEventContext& Context, const FDeletePkConnectionIdArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkI128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt128&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeletePkI128Handler OnDeletePkI128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeletePkI128(const FSpacetimeDBInt128& N); + + bool InvokeDeletePkI128(const FReducerEventContext& Context, const UDeletePkI128Reducer* Args); + bool InvokeDeletePkI128WithArgs(const FReducerEventContext& Context, const FDeletePkI128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkI16Handler, + const FReducerEventContext&, Context, + int16, N + ); + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + FDeletePkI16Handler OnDeletePkI16; + + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + void DeletePkI16(const int16 N); + + bool InvokeDeletePkI16(const FReducerEventContext& Context, const UDeletePkI16Reducer* Args); + bool InvokeDeletePkI16WithArgs(const FReducerEventContext& Context, const FDeletePkI16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkI256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt256&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeletePkI256Handler OnDeletePkI256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeletePkI256(const FSpacetimeDBInt256& N); + + bool InvokeDeletePkI256(const FReducerEventContext& Context, const UDeletePkI256Reducer* Args); + bool InvokeDeletePkI256WithArgs(const FReducerEventContext& Context, const FDeletePkI256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkI32Handler, + const FReducerEventContext&, Context, + int32, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeletePkI32Handler OnDeletePkI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeletePkI32(const int32 N); + + bool InvokeDeletePkI32(const FReducerEventContext& Context, const UDeletePkI32Reducer* Args); + bool InvokeDeletePkI32WithArgs(const FReducerEventContext& Context, const FDeletePkI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkI64Handler, + const FReducerEventContext&, Context, + int64, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeletePkI64Handler OnDeletePkI64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeletePkI64(const int64 N); + + bool InvokeDeletePkI64(const FReducerEventContext& Context, const UDeletePkI64Reducer* Args); + bool InvokeDeletePkI64WithArgs(const FReducerEventContext& Context, const FDeletePkI64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkI8Handler, + const FReducerEventContext&, Context, + int8, N + ); + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + FDeletePkI8Handler OnDeletePkI8; + + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + void DeletePkI8(const int8 N); + + bool InvokeDeletePkI8(const FReducerEventContext& Context, const UDeletePkI8Reducer* Args); + bool InvokeDeletePkI8WithArgs(const FReducerEventContext& Context, const FDeletePkI8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkIdentityHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBIdentity&, I + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeletePkIdentityHandler OnDeletePkIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeletePkIdentity(const FSpacetimeDBIdentity& I); + + bool InvokeDeletePkIdentity(const FReducerEventContext& Context, const UDeletePkIdentityReducer* Args); + bool InvokeDeletePkIdentityWithArgs(const FReducerEventContext& Context, const FDeletePkIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkStringHandler, + const FReducerEventContext&, Context, + const FString&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeletePkStringHandler OnDeletePkString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeletePkString(const FString& S); + + bool InvokeDeletePkString(const FReducerEventContext& Context, const UDeletePkStringReducer* Args); + bool InvokeDeletePkStringWithArgs(const FReducerEventContext& Context, const FDeletePkStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkU128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt128&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeletePkU128Handler OnDeletePkU128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeletePkU128(const FSpacetimeDBUInt128& N); + + bool InvokeDeletePkU128(const FReducerEventContext& Context, const UDeletePkU128Reducer* Args); + bool InvokeDeletePkU128WithArgs(const FReducerEventContext& Context, const FDeletePkU128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkU16Handler, + const FReducerEventContext&, Context, + uint16, N + ); + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + FDeletePkU16Handler OnDeletePkU16; + + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + void DeletePkU16(const uint16 N); + + bool InvokeDeletePkU16(const FReducerEventContext& Context, const UDeletePkU16Reducer* Args); + bool InvokeDeletePkU16WithArgs(const FReducerEventContext& Context, const FDeletePkU16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkU256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt256&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeletePkU256Handler OnDeletePkU256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeletePkU256(const FSpacetimeDBUInt256& N); + + bool InvokeDeletePkU256(const FReducerEventContext& Context, const UDeletePkU256Reducer* Args); + bool InvokeDeletePkU256WithArgs(const FReducerEventContext& Context, const FDeletePkU256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkU32Handler, + const FReducerEventContext&, Context, + uint32, N + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FDeletePkU32Handler OnDeletePkU32; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void DeletePkU32(const uint32 N); + + bool InvokeDeletePkU32(const FReducerEventContext& Context, const UDeletePkU32Reducer* Args); + bool InvokeDeletePkU32WithArgs(const FReducerEventContext& Context, const FDeletePkU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FDeletePkU32InsertPkU32TwoHandler, + const FReducerEventContext&, Context, + uint32, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FDeletePkU32InsertPkU32TwoHandler OnDeletePkU32InsertPkU32Two; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void DeletePkU32InsertPkU32Two(const uint32 N, const int32 Data); + + bool InvokeDeletePkU32InsertPkU32Two(const FReducerEventContext& Context, const UDeletePkU32InsertPkU32TwoReducer* Args); + bool InvokeDeletePkU32InsertPkU32TwoWithArgs(const FReducerEventContext& Context, const FDeletePkU32InsertPkU32TwoArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkU32TwoHandler, + const FReducerEventContext&, Context, + uint32, N + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FDeletePkU32TwoHandler OnDeletePkU32Two; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void DeletePkU32Two(const uint32 N); + + bool InvokeDeletePkU32Two(const FReducerEventContext& Context, const UDeletePkU32TwoReducer* Args); + bool InvokeDeletePkU32TwoWithArgs(const FReducerEventContext& Context, const FDeletePkU32TwoArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkU64Handler, + const FReducerEventContext&, Context, + uint64, N + ); + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FDeletePkU64Handler OnDeletePkU64; + + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + void DeletePkU64(const uint64 N); + + bool InvokeDeletePkU64(const FReducerEventContext& Context, const UDeletePkU64Reducer* Args); + bool InvokeDeletePkU64WithArgs(const FReducerEventContext& Context, const FDeletePkU64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkU8Handler, + const FReducerEventContext&, Context, + uint8, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeletePkU8Handler OnDeletePkU8; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeletePkU8(const uint8 N); + + bool InvokeDeletePkU8(const FReducerEventContext& Context, const UDeletePkU8Reducer* Args); + bool InvokeDeletePkU8WithArgs(const FReducerEventContext& Context, const FDeletePkU8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePkUuidHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBUuid&, U + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeletePkUuidHandler OnDeletePkUuid; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeletePkUuid(const FSpacetimeDBUuid& U); + + bool InvokeDeletePkUuid(const FReducerEventContext& Context, const UDeletePkUuidReducer* Args); + bool InvokeDeletePkUuidWithArgs(const FReducerEventContext& Context, const FDeletePkUuidArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueBoolHandler, + const FReducerEventContext&, Context, + bool, B + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteUniqueBoolHandler OnDeleteUniqueBool; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteUniqueBool(const bool B); + + bool InvokeDeleteUniqueBool(const FReducerEventContext& Context, const UDeleteUniqueBoolReducer* Args); + bool InvokeDeleteUniqueBoolWithArgs(const FReducerEventContext& Context, const FDeleteUniqueBoolArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueConnectionIdHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBConnectionId&, A + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteUniqueConnectionIdHandler OnDeleteUniqueConnectionId; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteUniqueConnectionId(const FSpacetimeDBConnectionId& A); + + bool InvokeDeleteUniqueConnectionId(const FReducerEventContext& Context, const UDeleteUniqueConnectionIdReducer* Args); + bool InvokeDeleteUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FDeleteUniqueConnectionIdArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueI128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt128&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteUniqueI128Handler OnDeleteUniqueI128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteUniqueI128(const FSpacetimeDBInt128& N); + + bool InvokeDeleteUniqueI128(const FReducerEventContext& Context, const UDeleteUniqueI128Reducer* Args); + bool InvokeDeleteUniqueI128WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueI16Handler, + const FReducerEventContext&, Context, + int16, N + ); + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + FDeleteUniqueI16Handler OnDeleteUniqueI16; + + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + void DeleteUniqueI16(const int16 N); + + bool InvokeDeleteUniqueI16(const FReducerEventContext& Context, const UDeleteUniqueI16Reducer* Args); + bool InvokeDeleteUniqueI16WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueI256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt256&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteUniqueI256Handler OnDeleteUniqueI256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteUniqueI256(const FSpacetimeDBInt256& N); + + bool InvokeDeleteUniqueI256(const FReducerEventContext& Context, const UDeleteUniqueI256Reducer* Args); + bool InvokeDeleteUniqueI256WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueI32Handler, + const FReducerEventContext&, Context, + int32, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteUniqueI32Handler OnDeleteUniqueI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteUniqueI32(const int32 N); + + bool InvokeDeleteUniqueI32(const FReducerEventContext& Context, const UDeleteUniqueI32Reducer* Args); + bool InvokeDeleteUniqueI32WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueI64Handler, + const FReducerEventContext&, Context, + int64, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteUniqueI64Handler OnDeleteUniqueI64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteUniqueI64(const int64 N); + + bool InvokeDeleteUniqueI64(const FReducerEventContext& Context, const UDeleteUniqueI64Reducer* Args); + bool InvokeDeleteUniqueI64WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueI8Handler, + const FReducerEventContext&, Context, + int8, N + ); + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + FDeleteUniqueI8Handler OnDeleteUniqueI8; + + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + void DeleteUniqueI8(const int8 N); + + bool InvokeDeleteUniqueI8(const FReducerEventContext& Context, const UDeleteUniqueI8Reducer* Args); + bool InvokeDeleteUniqueI8WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueIdentityHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBIdentity&, I + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteUniqueIdentityHandler OnDeleteUniqueIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteUniqueIdentity(const FSpacetimeDBIdentity& I); + + bool InvokeDeleteUniqueIdentity(const FReducerEventContext& Context, const UDeleteUniqueIdentityReducer* Args); + bool InvokeDeleteUniqueIdentityWithArgs(const FReducerEventContext& Context, const FDeleteUniqueIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueStringHandler, + const FReducerEventContext&, Context, + const FString&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteUniqueStringHandler OnDeleteUniqueString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteUniqueString(const FString& S); + + bool InvokeDeleteUniqueString(const FReducerEventContext& Context, const UDeleteUniqueStringReducer* Args); + bool InvokeDeleteUniqueStringWithArgs(const FReducerEventContext& Context, const FDeleteUniqueStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueU128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt128&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteUniqueU128Handler OnDeleteUniqueU128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteUniqueU128(const FSpacetimeDBUInt128& N); + + bool InvokeDeleteUniqueU128(const FReducerEventContext& Context, const UDeleteUniqueU128Reducer* Args); + bool InvokeDeleteUniqueU128WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueU16Handler, + const FReducerEventContext&, Context, + uint16, N + ); + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + FDeleteUniqueU16Handler OnDeleteUniqueU16; + + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + void DeleteUniqueU16(const uint16 N); + + bool InvokeDeleteUniqueU16(const FReducerEventContext& Context, const UDeleteUniqueU16Reducer* Args); + bool InvokeDeleteUniqueU16WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueU256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt256&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteUniqueU256Handler OnDeleteUniqueU256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteUniqueU256(const FSpacetimeDBUInt256& N); + + bool InvokeDeleteUniqueU256(const FReducerEventContext& Context, const UDeleteUniqueU256Reducer* Args); + bool InvokeDeleteUniqueU256WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueU32Handler, + const FReducerEventContext&, Context, + uint32, N + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FDeleteUniqueU32Handler OnDeleteUniqueU32; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void DeleteUniqueU32(const uint32 N); + + bool InvokeDeleteUniqueU32(const FReducerEventContext& Context, const UDeleteUniqueU32Reducer* Args); + bool InvokeDeleteUniqueU32WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueU64Handler, + const FReducerEventContext&, Context, + uint64, N + ); + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FDeleteUniqueU64Handler OnDeleteUniqueU64; + + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + void DeleteUniqueU64(const uint64 N); + + bool InvokeDeleteUniqueU64(const FReducerEventContext& Context, const UDeleteUniqueU64Reducer* Args); + bool InvokeDeleteUniqueU64WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueU8Handler, + const FReducerEventContext&, Context, + uint8, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteUniqueU8Handler OnDeleteUniqueU8; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteUniqueU8(const uint8 N); + + bool InvokeDeleteUniqueU8(const FReducerEventContext& Context, const UDeleteUniqueU8Reducer* Args); + bool InvokeDeleteUniqueU8WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeleteUniqueUuidHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBUuid&, U + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeleteUniqueUuidHandler OnDeleteUniqueUuid; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeleteUniqueUuid(const FSpacetimeDBUuid& U); + + bool InvokeDeleteUniqueUuid(const FReducerEventContext& Context, const UDeleteUniqueUuidReducer* Args); + bool InvokeDeleteUniqueUuidWithArgs(const FReducerEventContext& Context, const FDeleteUniqueUuidArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( + FInsertCallTimestampHandler, + const FReducerEventContext&, Context + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertCallTimestampHandler OnInsertCallTimestamp; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertCallTimestamp(); + + bool InvokeInsertCallTimestamp(const FReducerEventContext& Context, const UInsertCallTimestampReducer* Args); + bool InvokeInsertCallTimestampWithArgs(const FReducerEventContext& Context, const FInsertCallTimestampArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( + FInsertCallUuidV4Handler, + const FReducerEventContext&, Context + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertCallUuidV4Handler OnInsertCallUuidV4; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertCallUuidV4(); + + bool InvokeInsertCallUuidV4(const FReducerEventContext& Context, const UInsertCallUuidV4Reducer* Args); + bool InvokeInsertCallUuidV4WithArgs(const FReducerEventContext& Context, const FInsertCallUuidV4Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( + FInsertCallUuidV7Handler, + const FReducerEventContext&, Context + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertCallUuidV7Handler OnInsertCallUuidV7; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertCallUuidV7(); + + bool InvokeInsertCallUuidV7(const FReducerEventContext& Context, const UInsertCallUuidV7Reducer* Args); + bool InvokeInsertCallUuidV7WithArgs(const FReducerEventContext& Context, const FInsertCallUuidV7Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( + FInsertCallerOneConnectionIdHandler, + const FReducerEventContext&, Context + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertCallerOneConnectionIdHandler OnInsertCallerOneConnectionId; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertCallerOneConnectionId(); + + bool InvokeInsertCallerOneConnectionId(const FReducerEventContext& Context, const UInsertCallerOneConnectionIdReducer* Args); + bool InvokeInsertCallerOneConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerOneConnectionIdArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( + FInsertCallerOneIdentityHandler, + const FReducerEventContext&, Context + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertCallerOneIdentityHandler OnInsertCallerOneIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertCallerOneIdentity(); + + bool InvokeInsertCallerOneIdentity(const FReducerEventContext& Context, const UInsertCallerOneIdentityReducer* Args); + bool InvokeInsertCallerOneIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerOneIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertCallerPkConnectionIdHandler, + const FReducerEventContext&, Context, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertCallerPkConnectionIdHandler OnInsertCallerPkConnectionId; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertCallerPkConnectionId(const int32 Data); + + bool InvokeInsertCallerPkConnectionId(const FReducerEventContext& Context, const UInsertCallerPkConnectionIdReducer* Args); + bool InvokeInsertCallerPkConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerPkConnectionIdArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertCallerPkIdentityHandler, + const FReducerEventContext&, Context, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertCallerPkIdentityHandler OnInsertCallerPkIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertCallerPkIdentity(const int32 Data); + + bool InvokeInsertCallerPkIdentity(const FReducerEventContext& Context, const UInsertCallerPkIdentityReducer* Args); + bool InvokeInsertCallerPkIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerPkIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertCallerUniqueConnectionIdHandler, + const FReducerEventContext&, Context, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertCallerUniqueConnectionIdHandler OnInsertCallerUniqueConnectionId; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertCallerUniqueConnectionId(const int32 Data); + + bool InvokeInsertCallerUniqueConnectionId(const FReducerEventContext& Context, const UInsertCallerUniqueConnectionIdReducer* Args); + bool InvokeInsertCallerUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerUniqueConnectionIdArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertCallerUniqueIdentityHandler, + const FReducerEventContext&, Context, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertCallerUniqueIdentityHandler OnInsertCallerUniqueIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertCallerUniqueIdentity(const int32 Data); + + bool InvokeInsertCallerUniqueIdentity(const FReducerEventContext& Context, const UInsertCallerUniqueIdentityReducer* Args); + bool InvokeInsertCallerUniqueIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerUniqueIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( + FInsertCallerVecConnectionIdHandler, + const FReducerEventContext&, Context + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertCallerVecConnectionIdHandler OnInsertCallerVecConnectionId; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertCallerVecConnectionId(); + + bool InvokeInsertCallerVecConnectionId(const FReducerEventContext& Context, const UInsertCallerVecConnectionIdReducer* Args); + bool InvokeInsertCallerVecConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerVecConnectionIdArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( + FInsertCallerVecIdentityHandler, + const FReducerEventContext&, Context + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertCallerVecIdentityHandler OnInsertCallerVecIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertCallerVecIdentity(); + + bool InvokeInsertCallerVecIdentity(const FReducerEventContext& Context, const UInsertCallerVecIdentityReducer* Args); + bool InvokeInsertCallerVecIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerVecIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertIntoBtreeU32Handler, + const FReducerEventContext&, Context, + const TArray&, Rows + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertIntoBtreeU32Handler OnInsertIntoBtreeU32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertIntoBtreeU32(const TArray& Rows); + + bool InvokeInsertIntoBtreeU32(const FReducerEventContext& Context, const UInsertIntoBtreeU32Reducer* Args); + bool InvokeInsertIntoBtreeU32WithArgs(const FReducerEventContext& Context, const FInsertIntoBtreeU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertIntoIndexedSimpleEnumHandler, + const FReducerEventContext&, Context, + const ESimpleEnumType&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertIntoIndexedSimpleEnumHandler OnInsertIntoIndexedSimpleEnum; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertIntoIndexedSimpleEnum(const ESimpleEnumType& N); + + bool InvokeInsertIntoIndexedSimpleEnum(const FReducerEventContext& Context, const UInsertIntoIndexedSimpleEnumReducer* Args); + bool InvokeInsertIntoIndexedSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertIntoIndexedSimpleEnumArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertIntoPkBtreeU32Handler, + const FReducerEventContext&, Context, + const TArray&, PkU32, + const TArray&, BtU32 + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertIntoPkBtreeU32Handler OnInsertIntoPkBtreeU32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertIntoPkBtreeU32(const TArray& PkU32, const TArray& BtU32); + + bool InvokeInsertIntoPkBtreeU32(const FReducerEventContext& Context, const UInsertIntoPkBtreeU32Reducer* Args); + bool InvokeInsertIntoPkBtreeU32WithArgs(const FReducerEventContext& Context, const FInsertIntoPkBtreeU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertLargeTableHandler, + const FReducerEventContext&, Context, + const FInsertLargeTableArgs&, Args + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertLargeTableHandler OnInsertLargeTable; + + // NOTE: Not exposed to Blueprint because uint16, uint32, uint64, int8, int16 types are not Blueprint-compatible + void InsertLargeTable(const uint8 A, const uint16 B, const uint32 C, const uint64 D, const FSpacetimeDBUInt128& E, const FSpacetimeDBUInt256& F, const int8 G, const int16 H, const int32 I, const int64 J, const FSpacetimeDBInt128& K, const FSpacetimeDBInt256& L, const bool M, const float N, const double O, const FString& P, const ESimpleEnumType& Q, const FEnumWithPayloadType& R, const FUnitStructType& S, const FByteStructType& T, const FEveryPrimitiveStructType& U, const FEveryVecStructType& V); + + bool InvokeInsertLargeTable(const FReducerEventContext& Context, const UInsertLargeTableReducer* Args); + bool InvokeInsertLargeTableWithArgs(const FReducerEventContext& Context, const FInsertLargeTableArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneBoolHandler, + const FReducerEventContext&, Context, + bool, B + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneBoolHandler OnInsertOneBool; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneBool(const bool B); + + bool InvokeInsertOneBool(const FReducerEventContext& Context, const UInsertOneBoolReducer* Args); + bool InvokeInsertOneBoolWithArgs(const FReducerEventContext& Context, const FInsertOneBoolArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneByteStructHandler, + const FReducerEventContext&, Context, + const FByteStructType&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneByteStructHandler OnInsertOneByteStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneByteStruct(const FByteStructType& S); + + bool InvokeInsertOneByteStruct(const FReducerEventContext& Context, const UInsertOneByteStructReducer* Args); + bool InvokeInsertOneByteStructWithArgs(const FReducerEventContext& Context, const FInsertOneByteStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneConnectionIdHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBConnectionId&, A + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneConnectionIdHandler OnInsertOneConnectionId; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneConnectionId(const FSpacetimeDBConnectionId& A); + + bool InvokeInsertOneConnectionId(const FReducerEventContext& Context, const UInsertOneConnectionIdReducer* Args); + bool InvokeInsertOneConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertOneConnectionIdArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneEnumWithPayloadHandler, + const FReducerEventContext&, Context, + const FEnumWithPayloadType&, E + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneEnumWithPayloadHandler OnInsertOneEnumWithPayload; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneEnumWithPayload(const FEnumWithPayloadType& E); + + bool InvokeInsertOneEnumWithPayload(const FReducerEventContext& Context, const UInsertOneEnumWithPayloadReducer* Args); + bool InvokeInsertOneEnumWithPayloadWithArgs(const FReducerEventContext& Context, const FInsertOneEnumWithPayloadArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneEveryPrimitiveStructHandler, + const FReducerEventContext&, Context, + const FEveryPrimitiveStructType&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneEveryPrimitiveStructHandler OnInsertOneEveryPrimitiveStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneEveryPrimitiveStruct(const FEveryPrimitiveStructType& S); + + bool InvokeInsertOneEveryPrimitiveStruct(const FReducerEventContext& Context, const UInsertOneEveryPrimitiveStructReducer* Args); + bool InvokeInsertOneEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FInsertOneEveryPrimitiveStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneEveryVecStructHandler, + const FReducerEventContext&, Context, + const FEveryVecStructType&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneEveryVecStructHandler OnInsertOneEveryVecStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneEveryVecStruct(const FEveryVecStructType& S); + + bool InvokeInsertOneEveryVecStruct(const FReducerEventContext& Context, const UInsertOneEveryVecStructReducer* Args); + bool InvokeInsertOneEveryVecStructWithArgs(const FReducerEventContext& Context, const FInsertOneEveryVecStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneF32Handler, + const FReducerEventContext&, Context, + float, F + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneF32Handler OnInsertOneF32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneF32(const float F); + + bool InvokeInsertOneF32(const FReducerEventContext& Context, const UInsertOneF32Reducer* Args); + bool InvokeInsertOneF32WithArgs(const FReducerEventContext& Context, const FInsertOneF32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneF64Handler, + const FReducerEventContext&, Context, + double, F + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneF64Handler OnInsertOneF64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneF64(const double F); + + bool InvokeInsertOneF64(const FReducerEventContext& Context, const UInsertOneF64Reducer* Args); + bool InvokeInsertOneF64WithArgs(const FReducerEventContext& Context, const FInsertOneF64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneI128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt128&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneI128Handler OnInsertOneI128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneI128(const FSpacetimeDBInt128& N); + + bool InvokeInsertOneI128(const FReducerEventContext& Context, const UInsertOneI128Reducer* Args); + bool InvokeInsertOneI128WithArgs(const FReducerEventContext& Context, const FInsertOneI128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneI16Handler, + const FReducerEventContext&, Context, + int16, N + ); + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + FInsertOneI16Handler OnInsertOneI16; + + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + void InsertOneI16(const int16 N); + + bool InvokeInsertOneI16(const FReducerEventContext& Context, const UInsertOneI16Reducer* Args); + bool InvokeInsertOneI16WithArgs(const FReducerEventContext& Context, const FInsertOneI16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneI256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt256&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneI256Handler OnInsertOneI256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneI256(const FSpacetimeDBInt256& N); + + bool InvokeInsertOneI256(const FReducerEventContext& Context, const UInsertOneI256Reducer* Args); + bool InvokeInsertOneI256WithArgs(const FReducerEventContext& Context, const FInsertOneI256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneI32Handler, + const FReducerEventContext&, Context, + int32, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneI32Handler OnInsertOneI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneI32(const int32 N); + + bool InvokeInsertOneI32(const FReducerEventContext& Context, const UInsertOneI32Reducer* Args); + bool InvokeInsertOneI32WithArgs(const FReducerEventContext& Context, const FInsertOneI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneI64Handler, + const FReducerEventContext&, Context, + int64, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneI64Handler OnInsertOneI64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneI64(const int64 N); + + bool InvokeInsertOneI64(const FReducerEventContext& Context, const UInsertOneI64Reducer* Args); + bool InvokeInsertOneI64WithArgs(const FReducerEventContext& Context, const FInsertOneI64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneI8Handler, + const FReducerEventContext&, Context, + int8, N + ); + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + FInsertOneI8Handler OnInsertOneI8; + + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + void InsertOneI8(const int8 N); + + bool InvokeInsertOneI8(const FReducerEventContext& Context, const UInsertOneI8Reducer* Args); + bool InvokeInsertOneI8WithArgs(const FReducerEventContext& Context, const FInsertOneI8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneIdentityHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBIdentity&, I + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneIdentityHandler OnInsertOneIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneIdentity(const FSpacetimeDBIdentity& I); + + bool InvokeInsertOneIdentity(const FReducerEventContext& Context, const UInsertOneIdentityReducer* Args); + bool InvokeInsertOneIdentityWithArgs(const FReducerEventContext& Context, const FInsertOneIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneSimpleEnumHandler, + const FReducerEventContext&, Context, + const ESimpleEnumType&, E + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneSimpleEnumHandler OnInsertOneSimpleEnum; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneSimpleEnum(const ESimpleEnumType& E); + + bool InvokeInsertOneSimpleEnum(const FReducerEventContext& Context, const UInsertOneSimpleEnumReducer* Args); + bool InvokeInsertOneSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertOneSimpleEnumArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneStringHandler, + const FReducerEventContext&, Context, + const FString&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneStringHandler OnInsertOneString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneString(const FString& S); + + bool InvokeInsertOneString(const FReducerEventContext& Context, const UInsertOneStringReducer* Args); + bool InvokeInsertOneStringWithArgs(const FReducerEventContext& Context, const FInsertOneStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneTimestampHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBTimestamp&, T + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneTimestampHandler OnInsertOneTimestamp; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneTimestamp(const FSpacetimeDBTimestamp& T); + + bool InvokeInsertOneTimestamp(const FReducerEventContext& Context, const UInsertOneTimestampReducer* Args); + bool InvokeInsertOneTimestampWithArgs(const FReducerEventContext& Context, const FInsertOneTimestampArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneU128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt128&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneU128Handler OnInsertOneU128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneU128(const FSpacetimeDBUInt128& N); + + bool InvokeInsertOneU128(const FReducerEventContext& Context, const UInsertOneU128Reducer* Args); + bool InvokeInsertOneU128WithArgs(const FReducerEventContext& Context, const FInsertOneU128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneU16Handler, + const FReducerEventContext&, Context, + uint16, N + ); + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + FInsertOneU16Handler OnInsertOneU16; + + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + void InsertOneU16(const uint16 N); + + bool InvokeInsertOneU16(const FReducerEventContext& Context, const UInsertOneU16Reducer* Args); + bool InvokeInsertOneU16WithArgs(const FReducerEventContext& Context, const FInsertOneU16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneU256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt256&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneU256Handler OnInsertOneU256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneU256(const FSpacetimeDBUInt256& N); + + bool InvokeInsertOneU256(const FReducerEventContext& Context, const UInsertOneU256Reducer* Args); + bool InvokeInsertOneU256WithArgs(const FReducerEventContext& Context, const FInsertOneU256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneU32Handler, + const FReducerEventContext&, Context, + uint32, N + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FInsertOneU32Handler OnInsertOneU32; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void InsertOneU32(const uint32 N); + + bool InvokeInsertOneU32(const FReducerEventContext& Context, const UInsertOneU32Reducer* Args); + bool InvokeInsertOneU32WithArgs(const FReducerEventContext& Context, const FInsertOneU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneU64Handler, + const FReducerEventContext&, Context, + uint64, N + ); + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FInsertOneU64Handler OnInsertOneU64; + + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + void InsertOneU64(const uint64 N); + + bool InvokeInsertOneU64(const FReducerEventContext& Context, const UInsertOneU64Reducer* Args); + bool InvokeInsertOneU64WithArgs(const FReducerEventContext& Context, const FInsertOneU64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneU8Handler, + const FReducerEventContext&, Context, + uint8, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneU8Handler OnInsertOneU8; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneU8(const uint8 N); + + bool InvokeInsertOneU8(const FReducerEventContext& Context, const UInsertOneU8Reducer* Args); + bool InvokeInsertOneU8WithArgs(const FReducerEventContext& Context, const FInsertOneU8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneUnitStructHandler, + const FReducerEventContext&, Context, + const FUnitStructType&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneUnitStructHandler OnInsertOneUnitStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneUnitStruct(const FUnitStructType& S); + + bool InvokeInsertOneUnitStruct(const FReducerEventContext& Context, const UInsertOneUnitStructReducer* Args); + bool InvokeInsertOneUnitStructWithArgs(const FReducerEventContext& Context, const FInsertOneUnitStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOneUuidHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBUuid&, U + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOneUuidHandler OnInsertOneUuid; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOneUuid(const FSpacetimeDBUuid& U); + + bool InvokeInsertOneUuid(const FReducerEventContext& Context, const UInsertOneUuidReducer* Args); + bool InvokeInsertOneUuidWithArgs(const FReducerEventContext& Context, const FInsertOneUuidArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOptionEveryPrimitiveStructHandler, + const FReducerEventContext&, Context, + const FTestClientOptionalEveryPrimitiveStruct&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOptionEveryPrimitiveStructHandler OnInsertOptionEveryPrimitiveStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOptionEveryPrimitiveStruct(const FTestClientOptionalEveryPrimitiveStruct& S); + + bool InvokeInsertOptionEveryPrimitiveStruct(const FReducerEventContext& Context, const UInsertOptionEveryPrimitiveStructReducer* Args); + bool InvokeInsertOptionEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FInsertOptionEveryPrimitiveStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOptionI32Handler, + const FReducerEventContext&, Context, + FTestClientOptionalInt32, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOptionI32Handler OnInsertOptionI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOptionI32(const FTestClientOptionalInt32 N); + + bool InvokeInsertOptionI32(const FReducerEventContext& Context, const UInsertOptionI32Reducer* Args); + bool InvokeInsertOptionI32WithArgs(const FReducerEventContext& Context, const FInsertOptionI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOptionIdentityHandler, + const FReducerEventContext&, Context, + const FTestClientOptionalIdentity&, I + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOptionIdentityHandler OnInsertOptionIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOptionIdentity(const FTestClientOptionalIdentity& I); + + bool InvokeInsertOptionIdentity(const FReducerEventContext& Context, const UInsertOptionIdentityReducer* Args); + bool InvokeInsertOptionIdentityWithArgs(const FReducerEventContext& Context, const FInsertOptionIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOptionSimpleEnumHandler, + const FReducerEventContext&, Context, + const FTestClientOptionalSimpleEnum&, E + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOptionSimpleEnumHandler OnInsertOptionSimpleEnum; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOptionSimpleEnum(const FTestClientOptionalSimpleEnum& E); + + bool InvokeInsertOptionSimpleEnum(const FReducerEventContext& Context, const UInsertOptionSimpleEnumReducer* Args); + bool InvokeInsertOptionSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertOptionSimpleEnumArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOptionStringHandler, + const FReducerEventContext&, Context, + const FTestClientOptionalString&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOptionStringHandler OnInsertOptionString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOptionString(const FTestClientOptionalString& S); + + bool InvokeInsertOptionString(const FReducerEventContext& Context, const UInsertOptionStringReducer* Args); + bool InvokeInsertOptionStringWithArgs(const FReducerEventContext& Context, const FInsertOptionStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOptionUuidHandler, + const FReducerEventContext&, Context, + const FTestClientOptionalUuid&, U + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOptionUuidHandler OnInsertOptionUuid; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOptionUuid(const FTestClientOptionalUuid& U); + + bool InvokeInsertOptionUuid(const FReducerEventContext& Context, const UInsertOptionUuidReducer* Args); + bool InvokeInsertOptionUuidWithArgs(const FReducerEventContext& Context, const FInsertOptionUuidArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertOptionVecOptionI32Handler, + const FReducerEventContext&, Context, + const FTestClientOptionalVecOptionalInt32&, V + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertOptionVecOptionI32Handler OnInsertOptionVecOptionI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertOptionVecOptionI32(const FTestClientOptionalVecOptionalInt32& V); + + bool InvokeInsertOptionVecOptionI32(const FReducerEventContext& Context, const UInsertOptionVecOptionI32Reducer* Args); + bool InvokeInsertOptionVecOptionI32WithArgs(const FReducerEventContext& Context, const FInsertOptionVecOptionI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkBoolHandler, + const FReducerEventContext&, Context, + bool, B, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertPkBoolHandler OnInsertPkBool; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertPkBool(const bool B, const int32 Data); + + bool InvokeInsertPkBool(const FReducerEventContext& Context, const UInsertPkBoolReducer* Args); + bool InvokeInsertPkBoolWithArgs(const FReducerEventContext& Context, const FInsertPkBoolArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkConnectionIdHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBConnectionId&, A, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertPkConnectionIdHandler OnInsertPkConnectionId; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertPkConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data); + + bool InvokeInsertPkConnectionId(const FReducerEventContext& Context, const UInsertPkConnectionIdReducer* Args); + bool InvokeInsertPkConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertPkConnectionIdArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkI128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt128&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertPkI128Handler OnInsertPkI128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertPkI128(const FSpacetimeDBInt128& N, const int32 Data); + + bool InvokeInsertPkI128(const FReducerEventContext& Context, const UInsertPkI128Reducer* Args); + bool InvokeInsertPkI128WithArgs(const FReducerEventContext& Context, const FInsertPkI128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkI16Handler, + const FReducerEventContext&, Context, + int16, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + FInsertPkI16Handler OnInsertPkI16; + + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + void InsertPkI16(const int16 N, const int32 Data); + + bool InvokeInsertPkI16(const FReducerEventContext& Context, const UInsertPkI16Reducer* Args); + bool InvokeInsertPkI16WithArgs(const FReducerEventContext& Context, const FInsertPkI16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkI256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt256&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertPkI256Handler OnInsertPkI256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertPkI256(const FSpacetimeDBInt256& N, const int32 Data); + + bool InvokeInsertPkI256(const FReducerEventContext& Context, const UInsertPkI256Reducer* Args); + bool InvokeInsertPkI256WithArgs(const FReducerEventContext& Context, const FInsertPkI256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkI32Handler, + const FReducerEventContext&, Context, + int32, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertPkI32Handler OnInsertPkI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertPkI32(const int32 N, const int32 Data); + + bool InvokeInsertPkI32(const FReducerEventContext& Context, const UInsertPkI32Reducer* Args); + bool InvokeInsertPkI32WithArgs(const FReducerEventContext& Context, const FInsertPkI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkI64Handler, + const FReducerEventContext&, Context, + int64, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertPkI64Handler OnInsertPkI64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertPkI64(const int64 N, const int32 Data); + + bool InvokeInsertPkI64(const FReducerEventContext& Context, const UInsertPkI64Reducer* Args); + bool InvokeInsertPkI64WithArgs(const FReducerEventContext& Context, const FInsertPkI64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkI8Handler, + const FReducerEventContext&, Context, + int8, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + FInsertPkI8Handler OnInsertPkI8; + + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + void InsertPkI8(const int8 N, const int32 Data); + + bool InvokeInsertPkI8(const FReducerEventContext& Context, const UInsertPkI8Reducer* Args); + bool InvokeInsertPkI8WithArgs(const FReducerEventContext& Context, const FInsertPkI8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkIdentityHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBIdentity&, I, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertPkIdentityHandler OnInsertPkIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertPkIdentity(const FSpacetimeDBIdentity& I, const int32 Data); + + bool InvokeInsertPkIdentity(const FReducerEventContext& Context, const UInsertPkIdentityReducer* Args); + bool InvokeInsertPkIdentityWithArgs(const FReducerEventContext& Context, const FInsertPkIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkSimpleEnumHandler, + const FReducerEventContext&, Context, + const ESimpleEnumType&, A, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertPkSimpleEnumHandler OnInsertPkSimpleEnum; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertPkSimpleEnum(const ESimpleEnumType& A, const int32 Data); + + bool InvokeInsertPkSimpleEnum(const FReducerEventContext& Context, const UInsertPkSimpleEnumReducer* Args); + bool InvokeInsertPkSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertPkSimpleEnumArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkStringHandler, + const FReducerEventContext&, Context, + const FString&, S, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertPkStringHandler OnInsertPkString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertPkString(const FString& S, const int32 Data); + + bool InvokeInsertPkString(const FReducerEventContext& Context, const UInsertPkStringReducer* Args); + bool InvokeInsertPkStringWithArgs(const FReducerEventContext& Context, const FInsertPkStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkU128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt128&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertPkU128Handler OnInsertPkU128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertPkU128(const FSpacetimeDBUInt128& N, const int32 Data); + + bool InvokeInsertPkU128(const FReducerEventContext& Context, const UInsertPkU128Reducer* Args); + bool InvokeInsertPkU128WithArgs(const FReducerEventContext& Context, const FInsertPkU128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkU16Handler, + const FReducerEventContext&, Context, + uint16, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + FInsertPkU16Handler OnInsertPkU16; + + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + void InsertPkU16(const uint16 N, const int32 Data); + + bool InvokeInsertPkU16(const FReducerEventContext& Context, const UInsertPkU16Reducer* Args); + bool InvokeInsertPkU16WithArgs(const FReducerEventContext& Context, const FInsertPkU16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkU256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt256&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertPkU256Handler OnInsertPkU256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertPkU256(const FSpacetimeDBUInt256& N, const int32 Data); + + bool InvokeInsertPkU256(const FReducerEventContext& Context, const UInsertPkU256Reducer* Args); + bool InvokeInsertPkU256WithArgs(const FReducerEventContext& Context, const FInsertPkU256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkU32Handler, + const FReducerEventContext&, Context, + uint32, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FInsertPkU32Handler OnInsertPkU32; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void InsertPkU32(const uint32 N, const int32 Data); + + bool InvokeInsertPkU32(const FReducerEventContext& Context, const UInsertPkU32Reducer* Args); + bool InvokeInsertPkU32WithArgs(const FReducerEventContext& Context, const FInsertPkU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkU32TwoHandler, + const FReducerEventContext&, Context, + uint32, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FInsertPkU32TwoHandler OnInsertPkU32Two; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void InsertPkU32Two(const uint32 N, const int32 Data); + + bool InvokeInsertPkU32Two(const FReducerEventContext& Context, const UInsertPkU32TwoReducer* Args); + bool InvokeInsertPkU32TwoWithArgs(const FReducerEventContext& Context, const FInsertPkU32TwoArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkU64Handler, + const FReducerEventContext&, Context, + uint64, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FInsertPkU64Handler OnInsertPkU64; + + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + void InsertPkU64(const uint64 N, const int32 Data); + + bool InvokeInsertPkU64(const FReducerEventContext& Context, const UInsertPkU64Reducer* Args); + bool InvokeInsertPkU64WithArgs(const FReducerEventContext& Context, const FInsertPkU64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkU8Handler, + const FReducerEventContext&, Context, + uint8, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertPkU8Handler OnInsertPkU8; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertPkU8(const uint8 N, const int32 Data); + + bool InvokeInsertPkU8(const FReducerEventContext& Context, const UInsertPkU8Reducer* Args); + bool InvokeInsertPkU8WithArgs(const FReducerEventContext& Context, const FInsertPkU8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPkUuidHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBUuid&, U, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertPkUuidHandler OnInsertPkUuid; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertPkUuid(const FSpacetimeDBUuid& U, const int32 Data); + + bool InvokeInsertPkUuid(const FReducerEventContext& Context, const UInsertPkUuidReducer* Args); + bool InvokeInsertPkUuidWithArgs(const FReducerEventContext& Context, const FInsertPkUuidArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertPrimitivesAsStringsHandler, + const FReducerEventContext&, Context, + const FEveryPrimitiveStructType&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertPrimitivesAsStringsHandler OnInsertPrimitivesAsStrings; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertPrimitivesAsStrings(const FEveryPrimitiveStructType& S); + + bool InvokeInsertPrimitivesAsStrings(const FReducerEventContext& Context, const UInsertPrimitivesAsStringsReducer* Args); + bool InvokeInsertPrimitivesAsStringsWithArgs(const FReducerEventContext& Context, const FInsertPrimitivesAsStringsArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertResultEveryPrimitiveStructStringHandler, + const FReducerEventContext&, Context, + const FTestClientResultEveryPrimitiveStructString&, R + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertResultEveryPrimitiveStructStringHandler OnInsertResultEveryPrimitiveStructString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertResultEveryPrimitiveStructString(const FTestClientResultEveryPrimitiveStructString& R); + + bool InvokeInsertResultEveryPrimitiveStructString(const FReducerEventContext& Context, const UInsertResultEveryPrimitiveStructStringReducer* Args); + bool InvokeInsertResultEveryPrimitiveStructStringWithArgs(const FReducerEventContext& Context, const FInsertResultEveryPrimitiveStructStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertResultI32StringHandler, + const FReducerEventContext&, Context, + const FTestClientResultInt32String&, R + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertResultI32StringHandler OnInsertResultI32String; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertResultI32String(const FTestClientResultInt32String& R); + + bool InvokeInsertResultI32String(const FReducerEventContext& Context, const UInsertResultI32StringReducer* Args); + bool InvokeInsertResultI32StringWithArgs(const FReducerEventContext& Context, const FInsertResultI32StringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertResultIdentityStringHandler, + const FReducerEventContext&, Context, + const FTestClientResultIdentityString&, R + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertResultIdentityStringHandler OnInsertResultIdentityString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertResultIdentityString(const FTestClientResultIdentityString& R); + + bool InvokeInsertResultIdentityString(const FReducerEventContext& Context, const UInsertResultIdentityStringReducer* Args); + bool InvokeInsertResultIdentityStringWithArgs(const FReducerEventContext& Context, const FInsertResultIdentityStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertResultSimpleEnumI32Handler, + const FReducerEventContext&, Context, + const FTestClientResultSimpleEnumInt32&, R + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertResultSimpleEnumI32Handler OnInsertResultSimpleEnumI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertResultSimpleEnumI32(const FTestClientResultSimpleEnumInt32& R); + + bool InvokeInsertResultSimpleEnumI32(const FReducerEventContext& Context, const UInsertResultSimpleEnumI32Reducer* Args); + bool InvokeInsertResultSimpleEnumI32WithArgs(const FReducerEventContext& Context, const FInsertResultSimpleEnumI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertResultStringI32Handler, + const FReducerEventContext&, Context, + const FTestClientResultStringInt32&, R + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertResultStringI32Handler OnInsertResultStringI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertResultStringI32(const FTestClientResultStringInt32& R); + + bool InvokeInsertResultStringI32(const FReducerEventContext& Context, const UInsertResultStringI32Reducer* Args); + bool InvokeInsertResultStringI32WithArgs(const FReducerEventContext& Context, const FInsertResultStringI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertResultVecI32StringHandler, + const FReducerEventContext&, Context, + const FTestClientResultVecInt32String&, R + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertResultVecI32StringHandler OnInsertResultVecI32String; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertResultVecI32String(const FTestClientResultVecInt32String& R); + + bool InvokeInsertResultVecI32String(const FReducerEventContext& Context, const UInsertResultVecI32StringReducer* Args); + bool InvokeInsertResultVecI32StringWithArgs(const FReducerEventContext& Context, const FInsertResultVecI32StringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertTableHoldsTableHandler, + const FReducerEventContext&, Context, + const FOneU8Type&, A, + const FVecU8Type&, B + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertTableHoldsTableHandler OnInsertTableHoldsTable; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertTableHoldsTable(const FOneU8Type& A, const FVecU8Type& B); + + bool InvokeInsertTableHoldsTable(const FReducerEventContext& Context, const UInsertTableHoldsTableReducer* Args); + bool InvokeInsertTableHoldsTableWithArgs(const FReducerEventContext& Context, const FInsertTableHoldsTableArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueBoolHandler, + const FReducerEventContext&, Context, + bool, B, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertUniqueBoolHandler OnInsertUniqueBool; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertUniqueBool(const bool B, const int32 Data); + + bool InvokeInsertUniqueBool(const FReducerEventContext& Context, const UInsertUniqueBoolReducer* Args); + bool InvokeInsertUniqueBoolWithArgs(const FReducerEventContext& Context, const FInsertUniqueBoolArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueConnectionIdHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBConnectionId&, A, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertUniqueConnectionIdHandler OnInsertUniqueConnectionId; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertUniqueConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data); + + bool InvokeInsertUniqueConnectionId(const FReducerEventContext& Context, const UInsertUniqueConnectionIdReducer* Args); + bool InvokeInsertUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertUniqueConnectionIdArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueI128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt128&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertUniqueI128Handler OnInsertUniqueI128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertUniqueI128(const FSpacetimeDBInt128& N, const int32 Data); + + bool InvokeInsertUniqueI128(const FReducerEventContext& Context, const UInsertUniqueI128Reducer* Args); + bool InvokeInsertUniqueI128WithArgs(const FReducerEventContext& Context, const FInsertUniqueI128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueI16Handler, + const FReducerEventContext&, Context, + int16, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + FInsertUniqueI16Handler OnInsertUniqueI16; + + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + void InsertUniqueI16(const int16 N, const int32 Data); + + bool InvokeInsertUniqueI16(const FReducerEventContext& Context, const UInsertUniqueI16Reducer* Args); + bool InvokeInsertUniqueI16WithArgs(const FReducerEventContext& Context, const FInsertUniqueI16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueI256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt256&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertUniqueI256Handler OnInsertUniqueI256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertUniqueI256(const FSpacetimeDBInt256& N, const int32 Data); + + bool InvokeInsertUniqueI256(const FReducerEventContext& Context, const UInsertUniqueI256Reducer* Args); + bool InvokeInsertUniqueI256WithArgs(const FReducerEventContext& Context, const FInsertUniqueI256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueI32Handler, + const FReducerEventContext&, Context, + int32, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertUniqueI32Handler OnInsertUniqueI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertUniqueI32(const int32 N, const int32 Data); + + bool InvokeInsertUniqueI32(const FReducerEventContext& Context, const UInsertUniqueI32Reducer* Args); + bool InvokeInsertUniqueI32WithArgs(const FReducerEventContext& Context, const FInsertUniqueI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueI64Handler, + const FReducerEventContext&, Context, + int64, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertUniqueI64Handler OnInsertUniqueI64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertUniqueI64(const int64 N, const int32 Data); + + bool InvokeInsertUniqueI64(const FReducerEventContext& Context, const UInsertUniqueI64Reducer* Args); + bool InvokeInsertUniqueI64WithArgs(const FReducerEventContext& Context, const FInsertUniqueI64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueI8Handler, + const FReducerEventContext&, Context, + int8, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + FInsertUniqueI8Handler OnInsertUniqueI8; + + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + void InsertUniqueI8(const int8 N, const int32 Data); + + bool InvokeInsertUniqueI8(const FReducerEventContext& Context, const UInsertUniqueI8Reducer* Args); + bool InvokeInsertUniqueI8WithArgs(const FReducerEventContext& Context, const FInsertUniqueI8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueIdentityHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBIdentity&, I, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertUniqueIdentityHandler OnInsertUniqueIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertUniqueIdentity(const FSpacetimeDBIdentity& I, const int32 Data); + + bool InvokeInsertUniqueIdentity(const FReducerEventContext& Context, const UInsertUniqueIdentityReducer* Args); + bool InvokeInsertUniqueIdentityWithArgs(const FReducerEventContext& Context, const FInsertUniqueIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueStringHandler, + const FReducerEventContext&, Context, + const FString&, S, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertUniqueStringHandler OnInsertUniqueString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertUniqueString(const FString& S, const int32 Data); + + bool InvokeInsertUniqueString(const FReducerEventContext& Context, const UInsertUniqueStringReducer* Args); + bool InvokeInsertUniqueStringWithArgs(const FReducerEventContext& Context, const FInsertUniqueStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueU128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt128&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertUniqueU128Handler OnInsertUniqueU128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertUniqueU128(const FSpacetimeDBUInt128& N, const int32 Data); + + bool InvokeInsertUniqueU128(const FReducerEventContext& Context, const UInsertUniqueU128Reducer* Args); + bool InvokeInsertUniqueU128WithArgs(const FReducerEventContext& Context, const FInsertUniqueU128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueU16Handler, + const FReducerEventContext&, Context, + uint16, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + FInsertUniqueU16Handler OnInsertUniqueU16; + + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + void InsertUniqueU16(const uint16 N, const int32 Data); + + bool InvokeInsertUniqueU16(const FReducerEventContext& Context, const UInsertUniqueU16Reducer* Args); + bool InvokeInsertUniqueU16WithArgs(const FReducerEventContext& Context, const FInsertUniqueU16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueU256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt256&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertUniqueU256Handler OnInsertUniqueU256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertUniqueU256(const FSpacetimeDBUInt256& N, const int32 Data); + + bool InvokeInsertUniqueU256(const FReducerEventContext& Context, const UInsertUniqueU256Reducer* Args); + bool InvokeInsertUniqueU256WithArgs(const FReducerEventContext& Context, const FInsertUniqueU256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueU32Handler, + const FReducerEventContext&, Context, + uint32, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FInsertUniqueU32Handler OnInsertUniqueU32; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void InsertUniqueU32(const uint32 N, const int32 Data); + + bool InvokeInsertUniqueU32(const FReducerEventContext& Context, const UInsertUniqueU32Reducer* Args); + bool InvokeInsertUniqueU32WithArgs(const FReducerEventContext& Context, const FInsertUniqueU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams( + FInsertUniqueU32UpdatePkU32Handler, + const FReducerEventContext&, Context, + uint32, N, + int32, DUnique, + int32, DPk + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FInsertUniqueU32UpdatePkU32Handler OnInsertUniqueU32UpdatePkU32; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void InsertUniqueU32UpdatePkU32(const uint32 N, const int32 DUnique, const int32 DPk); + + bool InvokeInsertUniqueU32UpdatePkU32(const FReducerEventContext& Context, const UInsertUniqueU32UpdatePkU32Reducer* Args); + bool InvokeInsertUniqueU32UpdatePkU32WithArgs(const FReducerEventContext& Context, const FInsertUniqueU32UpdatePkU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueU64Handler, + const FReducerEventContext&, Context, + uint64, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FInsertUniqueU64Handler OnInsertUniqueU64; + + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + void InsertUniqueU64(const uint64 N, const int32 Data); + + bool InvokeInsertUniqueU64(const FReducerEventContext& Context, const UInsertUniqueU64Reducer* Args); + bool InvokeInsertUniqueU64WithArgs(const FReducerEventContext& Context, const FInsertUniqueU64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueU8Handler, + const FReducerEventContext&, Context, + uint8, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertUniqueU8Handler OnInsertUniqueU8; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertUniqueU8(const uint8 N, const int32 Data); + + bool InvokeInsertUniqueU8(const FReducerEventContext& Context, const UInsertUniqueU8Reducer* Args); + bool InvokeInsertUniqueU8WithArgs(const FReducerEventContext& Context, const FInsertUniqueU8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUniqueUuidHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBUuid&, U, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertUniqueUuidHandler OnInsertUniqueUuid; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertUniqueUuid(const FSpacetimeDBUuid& U, const int32 Data); + + bool InvokeInsertUniqueUuid(const FReducerEventContext& Context, const UInsertUniqueUuidReducer* Args); + bool InvokeInsertUniqueUuidWithArgs(const FReducerEventContext& Context, const FInsertUniqueUuidArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertUserHandler, + const FReducerEventContext&, Context, + const FString&, Name, + const FSpacetimeDBIdentity&, Identity + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertUserHandler OnInsertUser; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertUser(const FString& Name, const FSpacetimeDBIdentity& Identity); + + bool InvokeInsertUser(const FReducerEventContext& Context, const UInsertUserReducer* Args); + bool InvokeInsertUserWithArgs(const FReducerEventContext& Context, const FInsertUserArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecBoolHandler, + const FReducerEventContext&, Context, + const TArray&, B + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecBoolHandler OnInsertVecBool; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecBool(const TArray& B); + + bool InvokeInsertVecBool(const FReducerEventContext& Context, const UInsertVecBoolReducer* Args); + bool InvokeInsertVecBoolWithArgs(const FReducerEventContext& Context, const FInsertVecBoolArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecByteStructHandler, + const FReducerEventContext&, Context, + const TArray&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecByteStructHandler OnInsertVecByteStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecByteStruct(const TArray& S); + + bool InvokeInsertVecByteStruct(const FReducerEventContext& Context, const UInsertVecByteStructReducer* Args); + bool InvokeInsertVecByteStructWithArgs(const FReducerEventContext& Context, const FInsertVecByteStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecConnectionIdHandler, + const FReducerEventContext&, Context, + const TArray&, A + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecConnectionIdHandler OnInsertVecConnectionId; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecConnectionId(const TArray& A); + + bool InvokeInsertVecConnectionId(const FReducerEventContext& Context, const UInsertVecConnectionIdReducer* Args); + bool InvokeInsertVecConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertVecConnectionIdArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecEnumWithPayloadHandler, + const FReducerEventContext&, Context, + const TArray&, E + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecEnumWithPayloadHandler OnInsertVecEnumWithPayload; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecEnumWithPayload(const TArray& E); + + bool InvokeInsertVecEnumWithPayload(const FReducerEventContext& Context, const UInsertVecEnumWithPayloadReducer* Args); + bool InvokeInsertVecEnumWithPayloadWithArgs(const FReducerEventContext& Context, const FInsertVecEnumWithPayloadArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecEveryPrimitiveStructHandler, + const FReducerEventContext&, Context, + const TArray&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecEveryPrimitiveStructHandler OnInsertVecEveryPrimitiveStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecEveryPrimitiveStruct(const TArray& S); + + bool InvokeInsertVecEveryPrimitiveStruct(const FReducerEventContext& Context, const UInsertVecEveryPrimitiveStructReducer* Args); + bool InvokeInsertVecEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FInsertVecEveryPrimitiveStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecEveryVecStructHandler, + const FReducerEventContext&, Context, + const TArray&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecEveryVecStructHandler OnInsertVecEveryVecStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecEveryVecStruct(const TArray& S); + + bool InvokeInsertVecEveryVecStruct(const FReducerEventContext& Context, const UInsertVecEveryVecStructReducer* Args); + bool InvokeInsertVecEveryVecStructWithArgs(const FReducerEventContext& Context, const FInsertVecEveryVecStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecF32Handler, + const FReducerEventContext&, Context, + const TArray&, F + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecF32Handler OnInsertVecF32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecF32(const TArray& F); + + bool InvokeInsertVecF32(const FReducerEventContext& Context, const UInsertVecF32Reducer* Args); + bool InvokeInsertVecF32WithArgs(const FReducerEventContext& Context, const FInsertVecF32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecF64Handler, + const FReducerEventContext&, Context, + const TArray&, F + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecF64Handler OnInsertVecF64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecF64(const TArray& F); + + bool InvokeInsertVecF64(const FReducerEventContext& Context, const UInsertVecF64Reducer* Args); + bool InvokeInsertVecF64WithArgs(const FReducerEventContext& Context, const FInsertVecF64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecI128Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecI128Handler OnInsertVecI128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecI128(const TArray& N); + + bool InvokeInsertVecI128(const FReducerEventContext& Context, const UInsertVecI128Reducer* Args); + bool InvokeInsertVecI128WithArgs(const FReducerEventContext& Context, const FInsertVecI128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecI16Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + FInsertVecI16Handler OnInsertVecI16; + + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + void InsertVecI16(const TArray& N); + + bool InvokeInsertVecI16(const FReducerEventContext& Context, const UInsertVecI16Reducer* Args); + bool InvokeInsertVecI16WithArgs(const FReducerEventContext& Context, const FInsertVecI16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecI256Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecI256Handler OnInsertVecI256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecI256(const TArray& N); + + bool InvokeInsertVecI256(const FReducerEventContext& Context, const UInsertVecI256Reducer* Args); + bool InvokeInsertVecI256WithArgs(const FReducerEventContext& Context, const FInsertVecI256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecI32Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecI32Handler OnInsertVecI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecI32(const TArray& N); + + bool InvokeInsertVecI32(const FReducerEventContext& Context, const UInsertVecI32Reducer* Args); + bool InvokeInsertVecI32WithArgs(const FReducerEventContext& Context, const FInsertVecI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecI64Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecI64Handler OnInsertVecI64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecI64(const TArray& N); + + bool InvokeInsertVecI64(const FReducerEventContext& Context, const UInsertVecI64Reducer* Args); + bool InvokeInsertVecI64WithArgs(const FReducerEventContext& Context, const FInsertVecI64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecI8Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + FInsertVecI8Handler OnInsertVecI8; + + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + void InsertVecI8(const TArray& N); + + bool InvokeInsertVecI8(const FReducerEventContext& Context, const UInsertVecI8Reducer* Args); + bool InvokeInsertVecI8WithArgs(const FReducerEventContext& Context, const FInsertVecI8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecIdentityHandler, + const FReducerEventContext&, Context, + const TArray&, I + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecIdentityHandler OnInsertVecIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecIdentity(const TArray& I); + + bool InvokeInsertVecIdentity(const FReducerEventContext& Context, const UInsertVecIdentityReducer* Args); + bool InvokeInsertVecIdentityWithArgs(const FReducerEventContext& Context, const FInsertVecIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecSimpleEnumHandler, + const FReducerEventContext&, Context, + const TArray&, E + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecSimpleEnumHandler OnInsertVecSimpleEnum; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecSimpleEnum(const TArray& E); + + bool InvokeInsertVecSimpleEnum(const FReducerEventContext& Context, const UInsertVecSimpleEnumReducer* Args); + bool InvokeInsertVecSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertVecSimpleEnumArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecStringHandler, + const FReducerEventContext&, Context, + const TArray&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecStringHandler OnInsertVecString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecString(const TArray& S); + + bool InvokeInsertVecString(const FReducerEventContext& Context, const UInsertVecStringReducer* Args); + bool InvokeInsertVecStringWithArgs(const FReducerEventContext& Context, const FInsertVecStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecTimestampHandler, + const FReducerEventContext&, Context, + const TArray&, T + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecTimestampHandler OnInsertVecTimestamp; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecTimestamp(const TArray& T); + + bool InvokeInsertVecTimestamp(const FReducerEventContext& Context, const UInsertVecTimestampReducer* Args); + bool InvokeInsertVecTimestampWithArgs(const FReducerEventContext& Context, const FInsertVecTimestampArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecU128Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecU128Handler OnInsertVecU128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecU128(const TArray& N); + + bool InvokeInsertVecU128(const FReducerEventContext& Context, const UInsertVecU128Reducer* Args); + bool InvokeInsertVecU128WithArgs(const FReducerEventContext& Context, const FInsertVecU128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecU16Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + FInsertVecU16Handler OnInsertVecU16; + + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + void InsertVecU16(const TArray& N); + + bool InvokeInsertVecU16(const FReducerEventContext& Context, const UInsertVecU16Reducer* Args); + bool InvokeInsertVecU16WithArgs(const FReducerEventContext& Context, const FInsertVecU16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecU256Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecU256Handler OnInsertVecU256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecU256(const TArray& N); + + bool InvokeInsertVecU256(const FReducerEventContext& Context, const UInsertVecU256Reducer* Args); + bool InvokeInsertVecU256WithArgs(const FReducerEventContext& Context, const FInsertVecU256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecU32Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + FInsertVecU32Handler OnInsertVecU32; + + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + void InsertVecU32(const TArray& N); + + bool InvokeInsertVecU32(const FReducerEventContext& Context, const UInsertVecU32Reducer* Args); + bool InvokeInsertVecU32WithArgs(const FReducerEventContext& Context, const FInsertVecU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecU64Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + FInsertVecU64Handler OnInsertVecU64; + + // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible + void InsertVecU64(const TArray& N); + + bool InvokeInsertVecU64(const FReducerEventContext& Context, const UInsertVecU64Reducer* Args); + bool InvokeInsertVecU64WithArgs(const FReducerEventContext& Context, const FInsertVecU64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecU8Handler, + const FReducerEventContext&, Context, + const TArray&, N + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecU8Handler OnInsertVecU8; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecU8(const TArray& N); + + bool InvokeInsertVecU8(const FReducerEventContext& Context, const UInsertVecU8Reducer* Args); + bool InvokeInsertVecU8WithArgs(const FReducerEventContext& Context, const FInsertVecU8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecUnitStructHandler, + const FReducerEventContext&, Context, + const TArray&, S + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecUnitStructHandler OnInsertVecUnitStruct; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecUnitStruct(const TArray& S); + + bool InvokeInsertVecUnitStruct(const FReducerEventContext& Context, const UInsertVecUnitStructReducer* Args); + bool InvokeInsertVecUnitStructWithArgs(const FReducerEventContext& Context, const FInsertVecUnitStructArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FInsertVecUuidHandler, + const FReducerEventContext&, Context, + const TArray&, U + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FInsertVecUuidHandler OnInsertVecUuid; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void InsertVecUuid(const TArray& U); + + bool InvokeInsertVecUuid(const FReducerEventContext& Context, const UInsertVecUuidReducer* Args); + bool InvokeInsertVecUuidWithArgs(const FReducerEventContext& Context, const FInsertVecUuidArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( + FNoOpSucceedsHandler, + const FReducerEventContext&, Context + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FNoOpSucceedsHandler OnNoOpSucceeds; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void NoOpSucceeds(); + + bool InvokeNoOpSucceeds(const FReducerEventContext& Context, const UNoOpSucceedsReducer* Args); + bool InvokeNoOpSucceedsWithArgs(const FReducerEventContext& Context, const FNoOpSucceedsArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( + FSortedUuidsInsertHandler, + const FReducerEventContext&, Context + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FSortedUuidsInsertHandler OnSortedUuidsInsert; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void SortedUuidsInsert(); + + bool InvokeSortedUuidsInsert(const FReducerEventContext& Context, const USortedUuidsInsertReducer* Args); + bool InvokeSortedUuidsInsertWithArgs(const FReducerEventContext& Context, const FSortedUuidsInsertArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateIndexedSimpleEnumHandler, + const FReducerEventContext&, Context, + const ESimpleEnumType&, A, + const ESimpleEnumType&, B + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdateIndexedSimpleEnumHandler OnUpdateIndexedSimpleEnum; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdateIndexedSimpleEnum(const ESimpleEnumType& A, const ESimpleEnumType& B); + + bool InvokeUpdateIndexedSimpleEnum(const FReducerEventContext& Context, const UUpdateIndexedSimpleEnumReducer* Args); + bool InvokeUpdateIndexedSimpleEnumWithArgs(const FReducerEventContext& Context, const FUpdateIndexedSimpleEnumArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkBoolHandler, + const FReducerEventContext&, Context, + bool, B, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdatePkBoolHandler OnUpdatePkBool; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdatePkBool(const bool B, const int32 Data); + + bool InvokeUpdatePkBool(const FReducerEventContext& Context, const UUpdatePkBoolReducer* Args); + bool InvokeUpdatePkBoolWithArgs(const FReducerEventContext& Context, const FUpdatePkBoolArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkConnectionIdHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBConnectionId&, A, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdatePkConnectionIdHandler OnUpdatePkConnectionId; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdatePkConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data); + + bool InvokeUpdatePkConnectionId(const FReducerEventContext& Context, const UUpdatePkConnectionIdReducer* Args); + bool InvokeUpdatePkConnectionIdWithArgs(const FReducerEventContext& Context, const FUpdatePkConnectionIdArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkI128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt128&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdatePkI128Handler OnUpdatePkI128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdatePkI128(const FSpacetimeDBInt128& N, const int32 Data); + + bool InvokeUpdatePkI128(const FReducerEventContext& Context, const UUpdatePkI128Reducer* Args); + bool InvokeUpdatePkI128WithArgs(const FReducerEventContext& Context, const FUpdatePkI128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkI16Handler, + const FReducerEventContext&, Context, + int16, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + FUpdatePkI16Handler OnUpdatePkI16; + + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + void UpdatePkI16(const int16 N, const int32 Data); + + bool InvokeUpdatePkI16(const FReducerEventContext& Context, const UUpdatePkI16Reducer* Args); + bool InvokeUpdatePkI16WithArgs(const FReducerEventContext& Context, const FUpdatePkI16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkI256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt256&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdatePkI256Handler OnUpdatePkI256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdatePkI256(const FSpacetimeDBInt256& N, const int32 Data); + + bool InvokeUpdatePkI256(const FReducerEventContext& Context, const UUpdatePkI256Reducer* Args); + bool InvokeUpdatePkI256WithArgs(const FReducerEventContext& Context, const FUpdatePkI256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkI32Handler, + const FReducerEventContext&, Context, + int32, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdatePkI32Handler OnUpdatePkI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdatePkI32(const int32 N, const int32 Data); + + bool InvokeUpdatePkI32(const FReducerEventContext& Context, const UUpdatePkI32Reducer* Args); + bool InvokeUpdatePkI32WithArgs(const FReducerEventContext& Context, const FUpdatePkI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkI64Handler, + const FReducerEventContext&, Context, + int64, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdatePkI64Handler OnUpdatePkI64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdatePkI64(const int64 N, const int32 Data); + + bool InvokeUpdatePkI64(const FReducerEventContext& Context, const UUpdatePkI64Reducer* Args); + bool InvokeUpdatePkI64WithArgs(const FReducerEventContext& Context, const FUpdatePkI64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkI8Handler, + const FReducerEventContext&, Context, + int8, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + FUpdatePkI8Handler OnUpdatePkI8; + + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + void UpdatePkI8(const int8 N, const int32 Data); + + bool InvokeUpdatePkI8(const FReducerEventContext& Context, const UUpdatePkI8Reducer* Args); + bool InvokeUpdatePkI8WithArgs(const FReducerEventContext& Context, const FUpdatePkI8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkIdentityHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBIdentity&, I, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdatePkIdentityHandler OnUpdatePkIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdatePkIdentity(const FSpacetimeDBIdentity& I, const int32 Data); + + bool InvokeUpdatePkIdentity(const FReducerEventContext& Context, const UUpdatePkIdentityReducer* Args); + bool InvokeUpdatePkIdentityWithArgs(const FReducerEventContext& Context, const FUpdatePkIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkSimpleEnumHandler, + const FReducerEventContext&, Context, + const ESimpleEnumType&, A, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdatePkSimpleEnumHandler OnUpdatePkSimpleEnum; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdatePkSimpleEnum(const ESimpleEnumType& A, const int32 Data); + + bool InvokeUpdatePkSimpleEnum(const FReducerEventContext& Context, const UUpdatePkSimpleEnumReducer* Args); + bool InvokeUpdatePkSimpleEnumWithArgs(const FReducerEventContext& Context, const FUpdatePkSimpleEnumArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkStringHandler, + const FReducerEventContext&, Context, + const FString&, S, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdatePkStringHandler OnUpdatePkString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdatePkString(const FString& S, const int32 Data); + + bool InvokeUpdatePkString(const FReducerEventContext& Context, const UUpdatePkStringReducer* Args); + bool InvokeUpdatePkStringWithArgs(const FReducerEventContext& Context, const FUpdatePkStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkU128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt128&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdatePkU128Handler OnUpdatePkU128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdatePkU128(const FSpacetimeDBUInt128& N, const int32 Data); + + bool InvokeUpdatePkU128(const FReducerEventContext& Context, const UUpdatePkU128Reducer* Args); + bool InvokeUpdatePkU128WithArgs(const FReducerEventContext& Context, const FUpdatePkU128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkU16Handler, + const FReducerEventContext&, Context, + uint16, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + FUpdatePkU16Handler OnUpdatePkU16; + + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + void UpdatePkU16(const uint16 N, const int32 Data); + + bool InvokeUpdatePkU16(const FReducerEventContext& Context, const UUpdatePkU16Reducer* Args); + bool InvokeUpdatePkU16WithArgs(const FReducerEventContext& Context, const FUpdatePkU16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkU256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt256&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdatePkU256Handler OnUpdatePkU256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdatePkU256(const FSpacetimeDBUInt256& N, const int32 Data); + + bool InvokeUpdatePkU256(const FReducerEventContext& Context, const UUpdatePkU256Reducer* Args); + bool InvokeUpdatePkU256WithArgs(const FReducerEventContext& Context, const FUpdatePkU256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkU32Handler, + const FReducerEventContext&, Context, + uint32, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FUpdatePkU32Handler OnUpdatePkU32; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void UpdatePkU32(const uint32 N, const int32 Data); + + bool InvokeUpdatePkU32(const FReducerEventContext& Context, const UUpdatePkU32Reducer* Args); + bool InvokeUpdatePkU32WithArgs(const FReducerEventContext& Context, const FUpdatePkU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkU32TwoHandler, + const FReducerEventContext&, Context, + uint32, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FUpdatePkU32TwoHandler OnUpdatePkU32Two; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void UpdatePkU32Two(const uint32 N, const int32 Data); + + bool InvokeUpdatePkU32Two(const FReducerEventContext& Context, const UUpdatePkU32TwoReducer* Args); + bool InvokeUpdatePkU32TwoWithArgs(const FReducerEventContext& Context, const FUpdatePkU32TwoArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkU64Handler, + const FReducerEventContext&, Context, + uint64, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FUpdatePkU64Handler OnUpdatePkU64; + + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + void UpdatePkU64(const uint64 N, const int32 Data); + + bool InvokeUpdatePkU64(const FReducerEventContext& Context, const UUpdatePkU64Reducer* Args); + bool InvokeUpdatePkU64WithArgs(const FReducerEventContext& Context, const FUpdatePkU64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkU8Handler, + const FReducerEventContext&, Context, + uint8, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdatePkU8Handler OnUpdatePkU8; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdatePkU8(const uint8 N, const int32 Data); + + bool InvokeUpdatePkU8(const FReducerEventContext& Context, const UUpdatePkU8Reducer* Args); + bool InvokeUpdatePkU8WithArgs(const FReducerEventContext& Context, const FUpdatePkU8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdatePkUuidHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBUuid&, U, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdatePkUuidHandler OnUpdatePkUuid; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdatePkUuid(const FSpacetimeDBUuid& U, const int32 Data); + + bool InvokeUpdatePkUuid(const FReducerEventContext& Context, const UUpdatePkUuidReducer* Args); + bool InvokeUpdatePkUuidWithArgs(const FReducerEventContext& Context, const FUpdatePkUuidArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueBoolHandler, + const FReducerEventContext&, Context, + bool, B, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdateUniqueBoolHandler OnUpdateUniqueBool; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdateUniqueBool(const bool B, const int32 Data); + + bool InvokeUpdateUniqueBool(const FReducerEventContext& Context, const UUpdateUniqueBoolReducer* Args); + bool InvokeUpdateUniqueBoolWithArgs(const FReducerEventContext& Context, const FUpdateUniqueBoolArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueConnectionIdHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBConnectionId&, A, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdateUniqueConnectionIdHandler OnUpdateUniqueConnectionId; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdateUniqueConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data); + + bool InvokeUpdateUniqueConnectionId(const FReducerEventContext& Context, const UUpdateUniqueConnectionIdReducer* Args); + bool InvokeUpdateUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FUpdateUniqueConnectionIdArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueI128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt128&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdateUniqueI128Handler OnUpdateUniqueI128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdateUniqueI128(const FSpacetimeDBInt128& N, const int32 Data); + + bool InvokeUpdateUniqueI128(const FReducerEventContext& Context, const UUpdateUniqueI128Reducer* Args); + bool InvokeUpdateUniqueI128WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueI16Handler, + const FReducerEventContext&, Context, + int16, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + FUpdateUniqueI16Handler OnUpdateUniqueI16; + + // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible + void UpdateUniqueI16(const int16 N, const int32 Data); + + bool InvokeUpdateUniqueI16(const FReducerEventContext& Context, const UUpdateUniqueI16Reducer* Args); + bool InvokeUpdateUniqueI16WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueI256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBInt256&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdateUniqueI256Handler OnUpdateUniqueI256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdateUniqueI256(const FSpacetimeDBInt256& N, const int32 Data); + + bool InvokeUpdateUniqueI256(const FReducerEventContext& Context, const UUpdateUniqueI256Reducer* Args); + bool InvokeUpdateUniqueI256WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueI32Handler, + const FReducerEventContext&, Context, + int32, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdateUniqueI32Handler OnUpdateUniqueI32; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdateUniqueI32(const int32 N, const int32 Data); + + bool InvokeUpdateUniqueI32(const FReducerEventContext& Context, const UUpdateUniqueI32Reducer* Args); + bool InvokeUpdateUniqueI32WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueI64Handler, + const FReducerEventContext&, Context, + int64, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdateUniqueI64Handler OnUpdateUniqueI64; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdateUniqueI64(const int64 N, const int32 Data); + + bool InvokeUpdateUniqueI64(const FReducerEventContext& Context, const UUpdateUniqueI64Reducer* Args); + bool InvokeUpdateUniqueI64WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueI8Handler, + const FReducerEventContext&, Context, + int8, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + FUpdateUniqueI8Handler OnUpdateUniqueI8; + + // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible + void UpdateUniqueI8(const int8 N, const int32 Data); + + bool InvokeUpdateUniqueI8(const FReducerEventContext& Context, const UUpdateUniqueI8Reducer* Args); + bool InvokeUpdateUniqueI8WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueIdentityHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBIdentity&, I, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdateUniqueIdentityHandler OnUpdateUniqueIdentity; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdateUniqueIdentity(const FSpacetimeDBIdentity& I, const int32 Data); + + bool InvokeUpdateUniqueIdentity(const FReducerEventContext& Context, const UUpdateUniqueIdentityReducer* Args); + bool InvokeUpdateUniqueIdentityWithArgs(const FReducerEventContext& Context, const FUpdateUniqueIdentityArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueStringHandler, + const FReducerEventContext&, Context, + const FString&, S, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdateUniqueStringHandler OnUpdateUniqueString; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdateUniqueString(const FString& S, const int32 Data); + + bool InvokeUpdateUniqueString(const FReducerEventContext& Context, const UUpdateUniqueStringReducer* Args); + bool InvokeUpdateUniqueStringWithArgs(const FReducerEventContext& Context, const FUpdateUniqueStringArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueU128Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt128&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdateUniqueU128Handler OnUpdateUniqueU128; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdateUniqueU128(const FSpacetimeDBUInt128& N, const int32 Data); + + bool InvokeUpdateUniqueU128(const FReducerEventContext& Context, const UUpdateUniqueU128Reducer* Args); + bool InvokeUpdateUniqueU128WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU128Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueU16Handler, + const FReducerEventContext&, Context, + uint16, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + FUpdateUniqueU16Handler OnUpdateUniqueU16; + + // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible + void UpdateUniqueU16(const uint16 N, const int32 Data); + + bool InvokeUpdateUniqueU16(const FReducerEventContext& Context, const UUpdateUniqueU16Reducer* Args); + bool InvokeUpdateUniqueU16WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU16Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueU256Handler, + const FReducerEventContext&, Context, + const FSpacetimeDBUInt256&, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdateUniqueU256Handler OnUpdateUniqueU256; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdateUniqueU256(const FSpacetimeDBUInt256& N, const int32 Data); + + bool InvokeUpdateUniqueU256(const FReducerEventContext& Context, const UUpdateUniqueU256Reducer* Args); + bool InvokeUpdateUniqueU256WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU256Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueU32Handler, + const FReducerEventContext&, Context, + uint32, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + FUpdateUniqueU32Handler OnUpdateUniqueU32; + + // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible + void UpdateUniqueU32(const uint32 N, const int32 Data); + + bool InvokeUpdateUniqueU32(const FReducerEventContext& Context, const UUpdateUniqueU32Reducer* Args); + bool InvokeUpdateUniqueU32WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU32Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueU64Handler, + const FReducerEventContext&, Context, + uint64, N, + int32, Data + ); + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FUpdateUniqueU64Handler OnUpdateUniqueU64; + + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + void UpdateUniqueU64(const uint64 N, const int32 Data); + + bool InvokeUpdateUniqueU64(const FReducerEventContext& Context, const UUpdateUniqueU64Reducer* Args); + bool InvokeUpdateUniqueU64WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU64Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueU8Handler, + const FReducerEventContext&, Context, + uint8, N, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdateUniqueU8Handler OnUpdateUniqueU8; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdateUniqueU8(const uint8 N, const int32 Data); + + bool InvokeUpdateUniqueU8(const FReducerEventContext& Context, const UUpdateUniqueU8Reducer* Args); + bool InvokeUpdateUniqueU8WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU8Args& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateUniqueUuidHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBUuid&, U, + int32, Data + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FUpdateUniqueUuidHandler OnUpdateUniqueUuid; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void UpdateUniqueUuid(const FSpacetimeDBUuid& U, const int32 Data); + + bool InvokeUpdateUniqueUuid(const FReducerEventContext& Context, const UUpdateUniqueUuidReducer* Args); + bool InvokeUpdateUniqueUuidWithArgs(const FReducerEventContext& Context, const FUpdateUniqueUuidArgs& Args); + + // Internal error handling + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FInternalOnUnhandledReducerError, const FReducerEventContext&, Context, const FString&, Error); + FInternalOnUnhandledReducerError InternalOnUnhandledReducerError; + +private: + + friend UDbConnection; + + UPROPERTY() + class UDbConnection* Conn; +}; + +// RemoteProcedures class +UCLASS(BlueprintType) +class TESTCLIENT_API URemoteProcedures : public UObject +{ + GENERATED_BODY() + +public: + + // Internal error handling + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FInternalOnUnhandledProcedureError, const FProcedureEventContext&, Context, const FString&, Error); + FInternalOnUnhandledProcedureError InternalOnUnhandledProcedureError; + +private: + + friend UDbConnection; + + UPROPERTY() + class UDbConnection* Conn; +}; + +// QueryBuilder types +struct TESTCLIENT_API FBTreeU32Cols; +struct TESTCLIENT_API FBTreeU32IxCols; +struct TESTCLIENT_API FIndexedSimpleEnumCols; +struct TESTCLIENT_API FIndexedSimpleEnumIxCols; +struct TESTCLIENT_API FLargeTableCols; +struct TESTCLIENT_API FLargeTableIxCols; +struct TESTCLIENT_API FOneBoolCols; +struct TESTCLIENT_API FOneBoolIxCols; +struct TESTCLIENT_API FOneByteStructCols; +struct TESTCLIENT_API FOneByteStructIxCols; +struct TESTCLIENT_API FOneConnectionIdCols; +struct TESTCLIENT_API FOneConnectionIdIxCols; +struct TESTCLIENT_API FOneEnumWithPayloadCols; +struct TESTCLIENT_API FOneEnumWithPayloadIxCols; +struct TESTCLIENT_API FOneEveryPrimitiveStructCols; +struct TESTCLIENT_API FOneEveryPrimitiveStructIxCols; +struct TESTCLIENT_API FOneEveryVecStructCols; +struct TESTCLIENT_API FOneEveryVecStructIxCols; +struct TESTCLIENT_API FOneF32Cols; +struct TESTCLIENT_API FOneF32IxCols; +struct TESTCLIENT_API FOneF64Cols; +struct TESTCLIENT_API FOneF64IxCols; +struct TESTCLIENT_API FOneI128Cols; +struct TESTCLIENT_API FOneI128IxCols; +struct TESTCLIENT_API FOneI16Cols; +struct TESTCLIENT_API FOneI16IxCols; +struct TESTCLIENT_API FOneI256Cols; +struct TESTCLIENT_API FOneI256IxCols; +struct TESTCLIENT_API FOneI32Cols; +struct TESTCLIENT_API FOneI32IxCols; +struct TESTCLIENT_API FOneI64Cols; +struct TESTCLIENT_API FOneI64IxCols; +struct TESTCLIENT_API FOneI8Cols; +struct TESTCLIENT_API FOneI8IxCols; +struct TESTCLIENT_API FOneIdentityCols; +struct TESTCLIENT_API FOneIdentityIxCols; +struct TESTCLIENT_API FOneSimpleEnumCols; +struct TESTCLIENT_API FOneSimpleEnumIxCols; +struct TESTCLIENT_API FOneStringCols; +struct TESTCLIENT_API FOneStringIxCols; +struct TESTCLIENT_API FOneTimestampCols; +struct TESTCLIENT_API FOneTimestampIxCols; +struct TESTCLIENT_API FOneU128Cols; +struct TESTCLIENT_API FOneU128IxCols; +struct TESTCLIENT_API FOneU16Cols; +struct TESTCLIENT_API FOneU16IxCols; +struct TESTCLIENT_API FOneU256Cols; +struct TESTCLIENT_API FOneU256IxCols; +struct TESTCLIENT_API FOneU32Cols; +struct TESTCLIENT_API FOneU32IxCols; +struct TESTCLIENT_API FOneU64Cols; +struct TESTCLIENT_API FOneU64IxCols; +struct TESTCLIENT_API FOneU8Cols; +struct TESTCLIENT_API FOneU8IxCols; +struct TESTCLIENT_API FOneUnitStructCols; +struct TESTCLIENT_API FOneUnitStructIxCols; +struct TESTCLIENT_API FOneUuidCols; +struct TESTCLIENT_API FOneUuidIxCols; +struct TESTCLIENT_API FOptionEveryPrimitiveStructCols; +struct TESTCLIENT_API FOptionEveryPrimitiveStructIxCols; +struct TESTCLIENT_API FOptionI32Cols; +struct TESTCLIENT_API FOptionI32IxCols; +struct TESTCLIENT_API FOptionIdentityCols; +struct TESTCLIENT_API FOptionIdentityIxCols; +struct TESTCLIENT_API FOptionSimpleEnumCols; +struct TESTCLIENT_API FOptionSimpleEnumIxCols; +struct TESTCLIENT_API FOptionStringCols; +struct TESTCLIENT_API FOptionStringIxCols; +struct TESTCLIENT_API FOptionUuidCols; +struct TESTCLIENT_API FOptionUuidIxCols; +struct TESTCLIENT_API FOptionVecOptionI32Cols; +struct TESTCLIENT_API FOptionVecOptionI32IxCols; +struct TESTCLIENT_API FPkBoolCols; +struct TESTCLIENT_API FPkBoolIxCols; +struct TESTCLIENT_API FPkConnectionIdCols; +struct TESTCLIENT_API FPkConnectionIdIxCols; +struct TESTCLIENT_API FPkI128Cols; +struct TESTCLIENT_API FPkI128IxCols; +struct TESTCLIENT_API FPkI16Cols; +struct TESTCLIENT_API FPkI16IxCols; +struct TESTCLIENT_API FPkI256Cols; +struct TESTCLIENT_API FPkI256IxCols; +struct TESTCLIENT_API FPkI32Cols; +struct TESTCLIENT_API FPkI32IxCols; +struct TESTCLIENT_API FPkI64Cols; +struct TESTCLIENT_API FPkI64IxCols; +struct TESTCLIENT_API FPkI8Cols; +struct TESTCLIENT_API FPkI8IxCols; +struct TESTCLIENT_API FPkIdentityCols; +struct TESTCLIENT_API FPkIdentityIxCols; +struct TESTCLIENT_API FPkSimpleEnumCols; +struct TESTCLIENT_API FPkSimpleEnumIxCols; +struct TESTCLIENT_API FPkStringCols; +struct TESTCLIENT_API FPkStringIxCols; +struct TESTCLIENT_API FPkU128Cols; +struct TESTCLIENT_API FPkU128IxCols; +struct TESTCLIENT_API FPkU16Cols; +struct TESTCLIENT_API FPkU16IxCols; +struct TESTCLIENT_API FPkU256Cols; +struct TESTCLIENT_API FPkU256IxCols; +struct TESTCLIENT_API FPkU32Cols; +struct TESTCLIENT_API FPkU32IxCols; +struct TESTCLIENT_API FPkU32TwoCols; +struct TESTCLIENT_API FPkU32TwoIxCols; +struct TESTCLIENT_API FPkU64Cols; +struct TESTCLIENT_API FPkU64IxCols; +struct TESTCLIENT_API FPkU8Cols; +struct TESTCLIENT_API FPkU8IxCols; +struct TESTCLIENT_API FPkUuidCols; +struct TESTCLIENT_API FPkUuidIxCols; +struct TESTCLIENT_API FResultEveryPrimitiveStructStringCols; +struct TESTCLIENT_API FResultEveryPrimitiveStructStringIxCols; +struct TESTCLIENT_API FResultI32StringCols; +struct TESTCLIENT_API FResultI32StringIxCols; +struct TESTCLIENT_API FResultIdentityStringCols; +struct TESTCLIENT_API FResultIdentityStringIxCols; +struct TESTCLIENT_API FResultSimpleEnumI32Cols; +struct TESTCLIENT_API FResultSimpleEnumI32IxCols; +struct TESTCLIENT_API FResultStringI32Cols; +struct TESTCLIENT_API FResultStringI32IxCols; +struct TESTCLIENT_API FResultVecI32StringCols; +struct TESTCLIENT_API FResultVecI32StringIxCols; +struct TESTCLIENT_API FScheduledTableCols; +struct TESTCLIENT_API FScheduledTableIxCols; +struct TESTCLIENT_API FTableHoldsTableCols; +struct TESTCLIENT_API FTableHoldsTableIxCols; +struct TESTCLIENT_API FUniqueBoolCols; +struct TESTCLIENT_API FUniqueBoolIxCols; +struct TESTCLIENT_API FUniqueConnectionIdCols; +struct TESTCLIENT_API FUniqueConnectionIdIxCols; +struct TESTCLIENT_API FUniqueI128Cols; +struct TESTCLIENT_API FUniqueI128IxCols; +struct TESTCLIENT_API FUniqueI16Cols; +struct TESTCLIENT_API FUniqueI16IxCols; +struct TESTCLIENT_API FUniqueI256Cols; +struct TESTCLIENT_API FUniqueI256IxCols; +struct TESTCLIENT_API FUniqueI32Cols; +struct TESTCLIENT_API FUniqueI32IxCols; +struct TESTCLIENT_API FUniqueI64Cols; +struct TESTCLIENT_API FUniqueI64IxCols; +struct TESTCLIENT_API FUniqueI8Cols; +struct TESTCLIENT_API FUniqueI8IxCols; +struct TESTCLIENT_API FUniqueIdentityCols; +struct TESTCLIENT_API FUniqueIdentityIxCols; +struct TESTCLIENT_API FUniqueStringCols; +struct TESTCLIENT_API FUniqueStringIxCols; +struct TESTCLIENT_API FUniqueU128Cols; +struct TESTCLIENT_API FUniqueU128IxCols; +struct TESTCLIENT_API FUniqueU16Cols; +struct TESTCLIENT_API FUniqueU16IxCols; +struct TESTCLIENT_API FUniqueU256Cols; +struct TESTCLIENT_API FUniqueU256IxCols; +struct TESTCLIENT_API FUniqueU32Cols; +struct TESTCLIENT_API FUniqueU32IxCols; +struct TESTCLIENT_API FUniqueU64Cols; +struct TESTCLIENT_API FUniqueU64IxCols; +struct TESTCLIENT_API FUniqueU8Cols; +struct TESTCLIENT_API FUniqueU8IxCols; +struct TESTCLIENT_API FUniqueUuidCols; +struct TESTCLIENT_API FUniqueUuidIxCols; +struct TESTCLIENT_API FUsersCols; +struct TESTCLIENT_API FUsersIxCols; +struct TESTCLIENT_API FVecBoolCols; +struct TESTCLIENT_API FVecBoolIxCols; +struct TESTCLIENT_API FVecByteStructCols; +struct TESTCLIENT_API FVecByteStructIxCols; +struct TESTCLIENT_API FVecConnectionIdCols; +struct TESTCLIENT_API FVecConnectionIdIxCols; +struct TESTCLIENT_API FVecEnumWithPayloadCols; +struct TESTCLIENT_API FVecEnumWithPayloadIxCols; +struct TESTCLIENT_API FVecEveryPrimitiveStructCols; +struct TESTCLIENT_API FVecEveryPrimitiveStructIxCols; +struct TESTCLIENT_API FVecEveryVecStructCols; +struct TESTCLIENT_API FVecEveryVecStructIxCols; +struct TESTCLIENT_API FVecF32Cols; +struct TESTCLIENT_API FVecF32IxCols; +struct TESTCLIENT_API FVecF64Cols; +struct TESTCLIENT_API FVecF64IxCols; +struct TESTCLIENT_API FVecI128Cols; +struct TESTCLIENT_API FVecI128IxCols; +struct TESTCLIENT_API FVecI16Cols; +struct TESTCLIENT_API FVecI16IxCols; +struct TESTCLIENT_API FVecI256Cols; +struct TESTCLIENT_API FVecI256IxCols; +struct TESTCLIENT_API FVecI32Cols; +struct TESTCLIENT_API FVecI32IxCols; +struct TESTCLIENT_API FVecI64Cols; +struct TESTCLIENT_API FVecI64IxCols; +struct TESTCLIENT_API FVecI8Cols; +struct TESTCLIENT_API FVecI8IxCols; +struct TESTCLIENT_API FVecIdentityCols; +struct TESTCLIENT_API FVecIdentityIxCols; +struct TESTCLIENT_API FVecSimpleEnumCols; +struct TESTCLIENT_API FVecSimpleEnumIxCols; +struct TESTCLIENT_API FVecStringCols; +struct TESTCLIENT_API FVecStringIxCols; +struct TESTCLIENT_API FVecTimestampCols; +struct TESTCLIENT_API FVecTimestampIxCols; +struct TESTCLIENT_API FVecU128Cols; +struct TESTCLIENT_API FVecU128IxCols; +struct TESTCLIENT_API FVecU16Cols; +struct TESTCLIENT_API FVecU16IxCols; +struct TESTCLIENT_API FVecU256Cols; +struct TESTCLIENT_API FVecU256IxCols; +struct TESTCLIENT_API FVecU32Cols; +struct TESTCLIENT_API FVecU32IxCols; +struct TESTCLIENT_API FVecU64Cols; +struct TESTCLIENT_API FVecU64IxCols; +struct TESTCLIENT_API FVecU8Cols; +struct TESTCLIENT_API FVecU8IxCols; +struct TESTCLIENT_API FVecUnitStructCols; +struct TESTCLIENT_API FVecUnitStructIxCols; +struct TESTCLIENT_API FVecUuidCols; +struct TESTCLIENT_API FVecUuidIxCols; + +struct TESTCLIENT_API FBTreeU32Cols +{ + explicit FBTreeU32Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} + + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; + +struct TESTCLIENT_API FBTreeU32IxCols +{ + explicit FBTreeU32IxCols(const char* TableName) + : N(TableName, "n") {} + + ::SpacetimeDB::query_builder::IxCol N; +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTCLIENT_API FIndexedSimpleEnumCols +{ + explicit FIndexedSimpleEnumCols(const char* TableName) + : N(TableName, "n") {} + + ::SpacetimeDB::query_builder::Col N; }; -UCLASS() -class TESTCLIENT_API UReducerBpLib : public UBlueprintFunctionLibrary +struct TESTCLIENT_API FIndexedSimpleEnumIxCols { - GENERATED_BODY() + explicit FIndexedSimpleEnumIxCols(const char* TableName) + : N(TableName, "n") {} -private: + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteFromBtreeU32(const FDeleteFromBtreeU32Args& Value) { - return FReducer::DeleteFromBtreeU32(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteFromBtreeU32(const FReducer& Reducer) { return Reducer.IsDeleteFromBtreeU32(); } +struct TESTCLIENT_API FLargeTableCols +{ + explicit FLargeTableCols(const char* TableName) + : A(TableName, "a"), B(TableName, "b"), C(TableName, "c"), D(TableName, "d"), E(TableName, "e"), F(TableName, "f"), G(TableName, "g"), H(TableName, "h"), I(TableName, "i"), J(TableName, "j"), K(TableName, "k"), L(TableName, "l"), M(TableName, "m"), N(TableName, "n"), O(TableName, "o"), P(TableName, "p"), Q(TableName, "q"), R(TableName, "r"), S(TableName, "s"), T(TableName, "t"), U(TableName, "u"), V(TableName, "v") {} + + ::SpacetimeDB::query_builder::Col A; + ::SpacetimeDB::query_builder::Col B; + ::SpacetimeDB::query_builder::Col C; + ::SpacetimeDB::query_builder::Col D; + ::SpacetimeDB::query_builder::Col E; + ::SpacetimeDB::query_builder::Col F; + ::SpacetimeDB::query_builder::Col G; + ::SpacetimeDB::query_builder::Col H; + ::SpacetimeDB::query_builder::Col I; + ::SpacetimeDB::query_builder::Col J; + ::SpacetimeDB::query_builder::Col K; + ::SpacetimeDB::query_builder::Col L; + ::SpacetimeDB::query_builder::Col M; + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col O; + ::SpacetimeDB::query_builder::Col P; + ::SpacetimeDB::query_builder::Col Q; + ::SpacetimeDB::query_builder::Col R; + ::SpacetimeDB::query_builder::Col S; + ::SpacetimeDB::query_builder::Col T; + ::SpacetimeDB::query_builder::Col U; + ::SpacetimeDB::query_builder::Col V; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteFromBtreeU32Args GetAsDeleteFromBtreeU32(const FReducer& Reducer) { - return Reducer.GetAsDeleteFromBtreeU32(); - } +struct TESTCLIENT_API FLargeTableIxCols +{ + explicit FLargeTableIxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteLargeTable(const FDeleteLargeTableArgs& Value) { - return FReducer::DeleteLargeTable(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteLargeTable(const FReducer& Reducer) { return Reducer.IsDeleteLargeTable(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteLargeTableArgs GetAsDeleteLargeTable(const FReducer& Reducer) { - return Reducer.GetAsDeleteLargeTable(); - } +struct TESTCLIENT_API FOneBoolCols +{ + explicit FOneBoolCols(const char* TableName) + : B(TableName, "b") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkBool(const FDeletePkBoolArgs& Value) { - return FReducer::DeletePkBool(Value); - } + ::SpacetimeDB::query_builder::Col B; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkBool(const FReducer& Reducer) { return Reducer.IsDeletePkBool(); } +struct TESTCLIENT_API FOneBoolIxCols +{ + explicit FOneBoolIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkBoolArgs GetAsDeletePkBool(const FReducer& Reducer) { - return Reducer.GetAsDeletePkBool(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkConnectionId(const FDeletePkConnectionIdArgs& Value) { - return FReducer::DeletePkConnectionId(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkConnectionId(const FReducer& Reducer) { return Reducer.IsDeletePkConnectionId(); } +struct TESTCLIENT_API FOneByteStructCols +{ + explicit FOneByteStructCols(const char* TableName) + : S(TableName, "s") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkConnectionIdArgs GetAsDeletePkConnectionId(const FReducer& Reducer) { - return Reducer.GetAsDeletePkConnectionId(); - } + ::SpacetimeDB::query_builder::Col S; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkI128(const FDeletePkI128Args& Value) { - return FReducer::DeletePkI128(Value); - } +struct TESTCLIENT_API FOneByteStructIxCols +{ + explicit FOneByteStructIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkI128(const FReducer& Reducer) { return Reducer.IsDeletePkI128(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkI128Args GetAsDeletePkI128(const FReducer& Reducer) { - return Reducer.GetAsDeletePkI128(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkI16(const FDeletePkI16Args& Value) { - return FReducer::DeletePkI16(Value); - } +struct TESTCLIENT_API FOneConnectionIdCols +{ + explicit FOneConnectionIdCols(const char* TableName) + : A(TableName, "a") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkI16(const FReducer& Reducer) { return Reducer.IsDeletePkI16(); } + ::SpacetimeDB::query_builder::Col A; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkI16Args GetAsDeletePkI16(const FReducer& Reducer) { - return Reducer.GetAsDeletePkI16(); - } +struct TESTCLIENT_API FOneConnectionIdIxCols +{ + explicit FOneConnectionIdIxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkI256(const FDeletePkI256Args& Value) { - return FReducer::DeletePkI256(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkI256(const FReducer& Reducer) { return Reducer.IsDeletePkI256(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkI256Args GetAsDeletePkI256(const FReducer& Reducer) { - return Reducer.GetAsDeletePkI256(); - } +struct TESTCLIENT_API FOneEnumWithPayloadCols +{ + explicit FOneEnumWithPayloadCols(const char* TableName) + : E(TableName, "e") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkI32(const FDeletePkI32Args& Value) { - return FReducer::DeletePkI32(Value); - } + ::SpacetimeDB::query_builder::Col E; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkI32(const FReducer& Reducer) { return Reducer.IsDeletePkI32(); } +struct TESTCLIENT_API FOneEnumWithPayloadIxCols +{ + explicit FOneEnumWithPayloadIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkI32Args GetAsDeletePkI32(const FReducer& Reducer) { - return Reducer.GetAsDeletePkI32(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkI64(const FDeletePkI64Args& Value) { - return FReducer::DeletePkI64(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkI64(const FReducer& Reducer) { return Reducer.IsDeletePkI64(); } +struct TESTCLIENT_API FOneEveryPrimitiveStructCols +{ + explicit FOneEveryPrimitiveStructCols(const char* TableName) + : S(TableName, "s") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkI64Args GetAsDeletePkI64(const FReducer& Reducer) { - return Reducer.GetAsDeletePkI64(); - } + ::SpacetimeDB::query_builder::Col S; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkI8(const FDeletePkI8Args& Value) { - return FReducer::DeletePkI8(Value); - } +struct TESTCLIENT_API FOneEveryPrimitiveStructIxCols +{ + explicit FOneEveryPrimitiveStructIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkI8(const FReducer& Reducer) { return Reducer.IsDeletePkI8(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkI8Args GetAsDeletePkI8(const FReducer& Reducer) { - return Reducer.GetAsDeletePkI8(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkIdentity(const FDeletePkIdentityArgs& Value) { - return FReducer::DeletePkIdentity(Value); - } +struct TESTCLIENT_API FOneEveryVecStructCols +{ + explicit FOneEveryVecStructCols(const char* TableName) + : S(TableName, "s") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkIdentity(const FReducer& Reducer) { return Reducer.IsDeletePkIdentity(); } + ::SpacetimeDB::query_builder::Col S; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkIdentityArgs GetAsDeletePkIdentity(const FReducer& Reducer) { - return Reducer.GetAsDeletePkIdentity(); - } +struct TESTCLIENT_API FOneEveryVecStructIxCols +{ + explicit FOneEveryVecStructIxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkString(const FDeletePkStringArgs& Value) { - return FReducer::DeletePkString(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkString(const FReducer& Reducer) { return Reducer.IsDeletePkString(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkStringArgs GetAsDeletePkString(const FReducer& Reducer) { - return Reducer.GetAsDeletePkString(); - } +struct TESTCLIENT_API FOneF32Cols +{ + explicit FOneF32Cols(const char* TableName) + : F(TableName, "f") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkU128(const FDeletePkU128Args& Value) { - return FReducer::DeletePkU128(Value); - } + ::SpacetimeDB::query_builder::Col F; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkU128(const FReducer& Reducer) { return Reducer.IsDeletePkU128(); } +struct TESTCLIENT_API FOneF32IxCols +{ + explicit FOneF32IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkU128Args GetAsDeletePkU128(const FReducer& Reducer) { - return Reducer.GetAsDeletePkU128(); - } +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTCLIENT_API FOneF64Cols +{ + explicit FOneF64Cols(const char* TableName) + : F(TableName, "f") {} + + ::SpacetimeDB::query_builder::Col F; +}; + +struct TESTCLIENT_API FOneF64IxCols +{ + explicit FOneF64IxCols(const char* TableName) + {} + +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTCLIENT_API FOneI128Cols +{ + explicit FOneI128Cols(const char* TableName) + : N(TableName, "n") {} + + ::SpacetimeDB::query_builder::Col N; +}; + +struct TESTCLIENT_API FOneI128IxCols +{ + explicit FOneI128IxCols(const char* TableName) + {} + +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTCLIENT_API FOneI16Cols +{ + explicit FOneI16Cols(const char* TableName) + : N(TableName, "n") {} + + ::SpacetimeDB::query_builder::Col N; +}; + +struct TESTCLIENT_API FOneI16IxCols +{ + explicit FOneI16IxCols(const char* TableName) + {} + +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTCLIENT_API FOneI256Cols +{ + explicit FOneI256Cols(const char* TableName) + : N(TableName, "n") {} + + ::SpacetimeDB::query_builder::Col N; +}; + +struct TESTCLIENT_API FOneI256IxCols +{ + explicit FOneI256IxCols(const char* TableName) + {} + +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTCLIENT_API FOneI32Cols +{ + explicit FOneI32Cols(const char* TableName) + : N(TableName, "n") {} + + ::SpacetimeDB::query_builder::Col N; +}; + +struct TESTCLIENT_API FOneI32IxCols +{ + explicit FOneI32IxCols(const char* TableName) + {} + +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTCLIENT_API FOneI64Cols +{ + explicit FOneI64Cols(const char* TableName) + : N(TableName, "n") {} + + ::SpacetimeDB::query_builder::Col N; +}; + +struct TESTCLIENT_API FOneI64IxCols +{ + explicit FOneI64IxCols(const char* TableName) + {} + +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTCLIENT_API FOneI8Cols +{ + explicit FOneI8Cols(const char* TableName) + : N(TableName, "n") {} + + ::SpacetimeDB::query_builder::Col N; +}; + +struct TESTCLIENT_API FOneI8IxCols +{ + explicit FOneI8IxCols(const char* TableName) + {} + +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTCLIENT_API FOneIdentityCols +{ + explicit FOneIdentityCols(const char* TableName) + : I(TableName, "i") {} + + ::SpacetimeDB::query_builder::Col I; +}; + +struct TESTCLIENT_API FOneIdentityIxCols +{ + explicit FOneIdentityIxCols(const char* TableName) + {} + +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkU16(const FDeletePkU16Args& Value) { - return FReducer::DeletePkU16(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkU16(const FReducer& Reducer) { return Reducer.IsDeletePkU16(); } +struct TESTCLIENT_API FOneSimpleEnumCols +{ + explicit FOneSimpleEnumCols(const char* TableName) + : E(TableName, "e") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkU16Args GetAsDeletePkU16(const FReducer& Reducer) { - return Reducer.GetAsDeletePkU16(); - } + ::SpacetimeDB::query_builder::Col E; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkU256(const FDeletePkU256Args& Value) { - return FReducer::DeletePkU256(Value); - } +struct TESTCLIENT_API FOneSimpleEnumIxCols +{ + explicit FOneSimpleEnumIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkU256(const FReducer& Reducer) { return Reducer.IsDeletePkU256(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkU256Args GetAsDeletePkU256(const FReducer& Reducer) { - return Reducer.GetAsDeletePkU256(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkU32(const FDeletePkU32Args& Value) { - return FReducer::DeletePkU32(Value); - } +struct TESTCLIENT_API FOneStringCols +{ + explicit FOneStringCols(const char* TableName) + : S(TableName, "s") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkU32(const FReducer& Reducer) { return Reducer.IsDeletePkU32(); } + ::SpacetimeDB::query_builder::Col S; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkU32Args GetAsDeletePkU32(const FReducer& Reducer) { - return Reducer.GetAsDeletePkU32(); - } +struct TESTCLIENT_API FOneStringIxCols +{ + explicit FOneStringIxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkU32InsertPkU32Two(const FDeletePkU32InsertPkU32TwoArgs& Value) { - return FReducer::DeletePkU32InsertPkU32Two(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkU32InsertPkU32Two(const FReducer& Reducer) { return Reducer.IsDeletePkU32InsertPkU32Two(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkU32InsertPkU32TwoArgs GetAsDeletePkU32InsertPkU32Two(const FReducer& Reducer) { - return Reducer.GetAsDeletePkU32InsertPkU32Two(); - } +struct TESTCLIENT_API FOneTimestampCols +{ + explicit FOneTimestampCols(const char* TableName) + : T(TableName, "t") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkU32Two(const FDeletePkU32TwoArgs& Value) { - return FReducer::DeletePkU32Two(Value); - } + ::SpacetimeDB::query_builder::Col T; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkU32Two(const FReducer& Reducer) { return Reducer.IsDeletePkU32Two(); } +struct TESTCLIENT_API FOneTimestampIxCols +{ + explicit FOneTimestampIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkU32TwoArgs GetAsDeletePkU32Two(const FReducer& Reducer) { - return Reducer.GetAsDeletePkU32Two(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkU64(const FDeletePkU64Args& Value) { - return FReducer::DeletePkU64(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkU64(const FReducer& Reducer) { return Reducer.IsDeletePkU64(); } +struct TESTCLIENT_API FOneU128Cols +{ + explicit FOneU128Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkU64Args GetAsDeletePkU64(const FReducer& Reducer) { - return Reducer.GetAsDeletePkU64(); - } + ::SpacetimeDB::query_builder::Col N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkU8(const FDeletePkU8Args& Value) { - return FReducer::DeletePkU8(Value); - } +struct TESTCLIENT_API FOneU128IxCols +{ + explicit FOneU128IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkU8(const FReducer& Reducer) { return Reducer.IsDeletePkU8(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkU8Args GetAsDeletePkU8(const FReducer& Reducer) { - return Reducer.GetAsDeletePkU8(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeletePkUuid(const FDeletePkUuidArgs& Value) { - return FReducer::DeletePkUuid(Value); - } +struct TESTCLIENT_API FOneU16Cols +{ + explicit FOneU16Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeletePkUuid(const FReducer& Reducer) { return Reducer.IsDeletePkUuid(); } + ::SpacetimeDB::query_builder::Col N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeletePkUuidArgs GetAsDeletePkUuid(const FReducer& Reducer) { - return Reducer.GetAsDeletePkUuid(); - } +struct TESTCLIENT_API FOneU16IxCols +{ + explicit FOneU16IxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueBool(const FDeleteUniqueBoolArgs& Value) { - return FReducer::DeleteUniqueBool(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueBool(const FReducer& Reducer) { return Reducer.IsDeleteUniqueBool(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueBoolArgs GetAsDeleteUniqueBool(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueBool(); - } +struct TESTCLIENT_API FOneU256Cols +{ + explicit FOneU256Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueConnectionId(const FDeleteUniqueConnectionIdArgs& Value) { - return FReducer::DeleteUniqueConnectionId(Value); - } + ::SpacetimeDB::query_builder::Col N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueConnectionId(const FReducer& Reducer) { return Reducer.IsDeleteUniqueConnectionId(); } +struct TESTCLIENT_API FOneU256IxCols +{ + explicit FOneU256IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueConnectionIdArgs GetAsDeleteUniqueConnectionId(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueConnectionId(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueI128(const FDeleteUniqueI128Args& Value) { - return FReducer::DeleteUniqueI128(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueI128(const FReducer& Reducer) { return Reducer.IsDeleteUniqueI128(); } +struct TESTCLIENT_API FOneU32Cols +{ + explicit FOneU32Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueI128Args GetAsDeleteUniqueI128(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueI128(); - } + ::SpacetimeDB::query_builder::Col N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueI16(const FDeleteUniqueI16Args& Value) { - return FReducer::DeleteUniqueI16(Value); - } +struct TESTCLIENT_API FOneU32IxCols +{ + explicit FOneU32IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueI16(const FReducer& Reducer) { return Reducer.IsDeleteUniqueI16(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueI16Args GetAsDeleteUniqueI16(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueI16(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueI256(const FDeleteUniqueI256Args& Value) { - return FReducer::DeleteUniqueI256(Value); - } +struct TESTCLIENT_API FOneU64Cols +{ + explicit FOneU64Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueI256(const FReducer& Reducer) { return Reducer.IsDeleteUniqueI256(); } + ::SpacetimeDB::query_builder::Col N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueI256Args GetAsDeleteUniqueI256(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueI256(); - } +struct TESTCLIENT_API FOneU64IxCols +{ + explicit FOneU64IxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueI32(const FDeleteUniqueI32Args& Value) { - return FReducer::DeleteUniqueI32(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueI32(const FReducer& Reducer) { return Reducer.IsDeleteUniqueI32(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueI32Args GetAsDeleteUniqueI32(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueI32(); - } +struct TESTCLIENT_API FOneU8Cols +{ + explicit FOneU8Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueI64(const FDeleteUniqueI64Args& Value) { - return FReducer::DeleteUniqueI64(Value); - } + ::SpacetimeDB::query_builder::Col N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueI64(const FReducer& Reducer) { return Reducer.IsDeleteUniqueI64(); } +struct TESTCLIENT_API FOneU8IxCols +{ + explicit FOneU8IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueI64Args GetAsDeleteUniqueI64(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueI64(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueI8(const FDeleteUniqueI8Args& Value) { - return FReducer::DeleteUniqueI8(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueI8(const FReducer& Reducer) { return Reducer.IsDeleteUniqueI8(); } +struct TESTCLIENT_API FOneUnitStructCols +{ + explicit FOneUnitStructCols(const char* TableName) + : S(TableName, "s") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueI8Args GetAsDeleteUniqueI8(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueI8(); - } + ::SpacetimeDB::query_builder::Col S; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueIdentity(const FDeleteUniqueIdentityArgs& Value) { - return FReducer::DeleteUniqueIdentity(Value); - } +struct TESTCLIENT_API FOneUnitStructIxCols +{ + explicit FOneUnitStructIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueIdentity(const FReducer& Reducer) { return Reducer.IsDeleteUniqueIdentity(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueIdentityArgs GetAsDeleteUniqueIdentity(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueIdentity(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueString(const FDeleteUniqueStringArgs& Value) { - return FReducer::DeleteUniqueString(Value); - } +struct TESTCLIENT_API FOneUuidCols +{ + explicit FOneUuidCols(const char* TableName) + : U(TableName, "u") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueString(const FReducer& Reducer) { return Reducer.IsDeleteUniqueString(); } + ::SpacetimeDB::query_builder::Col U; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueStringArgs GetAsDeleteUniqueString(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueString(); - } +struct TESTCLIENT_API FOneUuidIxCols +{ + explicit FOneUuidIxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueU128(const FDeleteUniqueU128Args& Value) { - return FReducer::DeleteUniqueU128(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueU128(const FReducer& Reducer) { return Reducer.IsDeleteUniqueU128(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueU128Args GetAsDeleteUniqueU128(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueU128(); - } +struct TESTCLIENT_API FOptionEveryPrimitiveStructCols +{ + explicit FOptionEveryPrimitiveStructCols(const char* TableName) + : S(TableName, "s") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueU16(const FDeleteUniqueU16Args& Value) { - return FReducer::DeleteUniqueU16(Value); - } + ::SpacetimeDB::query_builder::Col S; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueU16(const FReducer& Reducer) { return Reducer.IsDeleteUniqueU16(); } +struct TESTCLIENT_API FOptionEveryPrimitiveStructIxCols +{ + explicit FOptionEveryPrimitiveStructIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueU16Args GetAsDeleteUniqueU16(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueU16(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueU256(const FDeleteUniqueU256Args& Value) { - return FReducer::DeleteUniqueU256(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueU256(const FReducer& Reducer) { return Reducer.IsDeleteUniqueU256(); } +struct TESTCLIENT_API FOptionI32Cols +{ + explicit FOptionI32Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueU256Args GetAsDeleteUniqueU256(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueU256(); - } + ::SpacetimeDB::query_builder::Col N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueU32(const FDeleteUniqueU32Args& Value) { - return FReducer::DeleteUniqueU32(Value); - } +struct TESTCLIENT_API FOptionI32IxCols +{ + explicit FOptionI32IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueU32(const FReducer& Reducer) { return Reducer.IsDeleteUniqueU32(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueU32Args GetAsDeleteUniqueU32(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueU32(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueU64(const FDeleteUniqueU64Args& Value) { - return FReducer::DeleteUniqueU64(Value); - } +struct TESTCLIENT_API FOptionIdentityCols +{ + explicit FOptionIdentityCols(const char* TableName) + : I(TableName, "i") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueU64(const FReducer& Reducer) { return Reducer.IsDeleteUniqueU64(); } + ::SpacetimeDB::query_builder::Col I; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueU64Args GetAsDeleteUniqueU64(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueU64(); - } +struct TESTCLIENT_API FOptionIdentityIxCols +{ + explicit FOptionIdentityIxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueU8(const FDeleteUniqueU8Args& Value) { - return FReducer::DeleteUniqueU8(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueU8(const FReducer& Reducer) { return Reducer.IsDeleteUniqueU8(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueU8Args GetAsDeleteUniqueU8(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueU8(); - } +struct TESTCLIENT_API FOptionSimpleEnumCols +{ + explicit FOptionSimpleEnumCols(const char* TableName) + : E(TableName, "e") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer DeleteUniqueUuid(const FDeleteUniqueUuidArgs& Value) { - return FReducer::DeleteUniqueUuid(Value); - } + ::SpacetimeDB::query_builder::Col E; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsDeleteUniqueUuid(const FReducer& Reducer) { return Reducer.IsDeleteUniqueUuid(); } +struct TESTCLIENT_API FOptionSimpleEnumIxCols +{ + explicit FOptionSimpleEnumIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FDeleteUniqueUuidArgs GetAsDeleteUniqueUuid(const FReducer& Reducer) { - return Reducer.GetAsDeleteUniqueUuid(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertCallTimestamp(const FInsertCallTimestampArgs& Value) { - return FReducer::InsertCallTimestamp(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertCallTimestamp(const FReducer& Reducer) { return Reducer.IsInsertCallTimestamp(); } +struct TESTCLIENT_API FOptionStringCols +{ + explicit FOptionStringCols(const char* TableName) + : S(TableName, "s") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertCallTimestampArgs GetAsInsertCallTimestamp(const FReducer& Reducer) { - return Reducer.GetAsInsertCallTimestamp(); - } + ::SpacetimeDB::query_builder::Col S; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertCallUuidV4(const FInsertCallUuidV4Args& Value) { - return FReducer::InsertCallUuidV4(Value); - } +struct TESTCLIENT_API FOptionStringIxCols +{ + explicit FOptionStringIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertCallUuidV4(const FReducer& Reducer) { return Reducer.IsInsertCallUuidV4(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertCallUuidV4Args GetAsInsertCallUuidV4(const FReducer& Reducer) { - return Reducer.GetAsInsertCallUuidV4(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertCallUuidV7(const FInsertCallUuidV7Args& Value) { - return FReducer::InsertCallUuidV7(Value); - } +struct TESTCLIENT_API FOptionUuidCols +{ + explicit FOptionUuidCols(const char* TableName) + : U(TableName, "u") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertCallUuidV7(const FReducer& Reducer) { return Reducer.IsInsertCallUuidV7(); } + ::SpacetimeDB::query_builder::Col U; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertCallUuidV7Args GetAsInsertCallUuidV7(const FReducer& Reducer) { - return Reducer.GetAsInsertCallUuidV7(); - } +struct TESTCLIENT_API FOptionUuidIxCols +{ + explicit FOptionUuidIxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertCallerOneConnectionId(const FInsertCallerOneConnectionIdArgs& Value) { - return FReducer::InsertCallerOneConnectionId(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertCallerOneConnectionId(const FReducer& Reducer) { return Reducer.IsInsertCallerOneConnectionId(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertCallerOneConnectionIdArgs GetAsInsertCallerOneConnectionId(const FReducer& Reducer) { - return Reducer.GetAsInsertCallerOneConnectionId(); - } +struct TESTCLIENT_API FOptionVecOptionI32Cols +{ + explicit FOptionVecOptionI32Cols(const char* TableName) + : V(TableName, "v") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertCallerOneIdentity(const FInsertCallerOneIdentityArgs& Value) { - return FReducer::InsertCallerOneIdentity(Value); - } + ::SpacetimeDB::query_builder::Col V; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertCallerOneIdentity(const FReducer& Reducer) { return Reducer.IsInsertCallerOneIdentity(); } +struct TESTCLIENT_API FOptionVecOptionI32IxCols +{ + explicit FOptionVecOptionI32IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertCallerOneIdentityArgs GetAsInsertCallerOneIdentity(const FReducer& Reducer) { - return Reducer.GetAsInsertCallerOneIdentity(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertCallerPkConnectionId(const FInsertCallerPkConnectionIdArgs& Value) { - return FReducer::InsertCallerPkConnectionId(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertCallerPkConnectionId(const FReducer& Reducer) { return Reducer.IsInsertCallerPkConnectionId(); } +struct TESTCLIENT_API FPkBoolCols +{ + explicit FPkBoolCols(const char* TableName) + : B(TableName, "b"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertCallerPkConnectionIdArgs GetAsInsertCallerPkConnectionId(const FReducer& Reducer) { - return Reducer.GetAsInsertCallerPkConnectionId(); - } + ::SpacetimeDB::query_builder::Col B; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertCallerPkIdentity(const FInsertCallerPkIdentityArgs& Value) { - return FReducer::InsertCallerPkIdentity(Value); - } +struct TESTCLIENT_API FPkBoolIxCols +{ + explicit FPkBoolIxCols(const char* TableName) + : B(TableName, "b") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertCallerPkIdentity(const FReducer& Reducer) { return Reducer.IsInsertCallerPkIdentity(); } + ::SpacetimeDB::query_builder::IxCol B; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertCallerPkIdentityArgs GetAsInsertCallerPkIdentity(const FReducer& Reducer) { - return Reducer.GetAsInsertCallerPkIdentity(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertCallerUniqueConnectionId(const FInsertCallerUniqueConnectionIdArgs& Value) { - return FReducer::InsertCallerUniqueConnectionId(Value); - } +struct TESTCLIENT_API FPkConnectionIdCols +{ + explicit FPkConnectionIdCols(const char* TableName) + : A(TableName, "a"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertCallerUniqueConnectionId(const FReducer& Reducer) { return Reducer.IsInsertCallerUniqueConnectionId(); } + ::SpacetimeDB::query_builder::Col A; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertCallerUniqueConnectionIdArgs GetAsInsertCallerUniqueConnectionId(const FReducer& Reducer) { - return Reducer.GetAsInsertCallerUniqueConnectionId(); - } +struct TESTCLIENT_API FPkConnectionIdIxCols +{ + explicit FPkConnectionIdIxCols(const char* TableName) + : A(TableName, "a") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertCallerUniqueIdentity(const FInsertCallerUniqueIdentityArgs& Value) { - return FReducer::InsertCallerUniqueIdentity(Value); - } + ::SpacetimeDB::query_builder::IxCol A; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertCallerUniqueIdentity(const FReducer& Reducer) { return Reducer.IsInsertCallerUniqueIdentity(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertCallerUniqueIdentityArgs GetAsInsertCallerUniqueIdentity(const FReducer& Reducer) { - return Reducer.GetAsInsertCallerUniqueIdentity(); - } +struct TESTCLIENT_API FPkI128Cols +{ + explicit FPkI128Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertCallerVecConnectionId(const FInsertCallerVecConnectionIdArgs& Value) { - return FReducer::InsertCallerVecConnectionId(Value); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertCallerVecConnectionId(const FReducer& Reducer) { return Reducer.IsInsertCallerVecConnectionId(); } +struct TESTCLIENT_API FPkI128IxCols +{ + explicit FPkI128IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertCallerVecConnectionIdArgs GetAsInsertCallerVecConnectionId(const FReducer& Reducer) { - return Reducer.GetAsInsertCallerVecConnectionId(); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertCallerVecIdentity(const FInsertCallerVecIdentityArgs& Value) { - return FReducer::InsertCallerVecIdentity(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertCallerVecIdentity(const FReducer& Reducer) { return Reducer.IsInsertCallerVecIdentity(); } +struct TESTCLIENT_API FPkI16Cols +{ + explicit FPkI16Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertCallerVecIdentityArgs GetAsInsertCallerVecIdentity(const FReducer& Reducer) { - return Reducer.GetAsInsertCallerVecIdentity(); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertIntoBtreeU32(const FInsertIntoBtreeU32Args& Value) { - return FReducer::InsertIntoBtreeU32(Value); - } +struct TESTCLIENT_API FPkI16IxCols +{ + explicit FPkI16IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertIntoBtreeU32(const FReducer& Reducer) { return Reducer.IsInsertIntoBtreeU32(); } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertIntoBtreeU32Args GetAsInsertIntoBtreeU32(const FReducer& Reducer) { - return Reducer.GetAsInsertIntoBtreeU32(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertIntoIndexedSimpleEnum(const FInsertIntoIndexedSimpleEnumArgs& Value) { - return FReducer::InsertIntoIndexedSimpleEnum(Value); - } +struct TESTCLIENT_API FPkI256Cols +{ + explicit FPkI256Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertIntoIndexedSimpleEnum(const FReducer& Reducer) { return Reducer.IsInsertIntoIndexedSimpleEnum(); } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertIntoIndexedSimpleEnumArgs GetAsInsertIntoIndexedSimpleEnum(const FReducer& Reducer) { - return Reducer.GetAsInsertIntoIndexedSimpleEnum(); - } +struct TESTCLIENT_API FPkI256IxCols +{ + explicit FPkI256IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertIntoPkBtreeU32(const FInsertIntoPkBtreeU32Args& Value) { - return FReducer::InsertIntoPkBtreeU32(Value); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertIntoPkBtreeU32(const FReducer& Reducer) { return Reducer.IsInsertIntoPkBtreeU32(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertIntoPkBtreeU32Args GetAsInsertIntoPkBtreeU32(const FReducer& Reducer) { - return Reducer.GetAsInsertIntoPkBtreeU32(); - } +struct TESTCLIENT_API FPkI32Cols +{ + explicit FPkI32Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertLargeTable(const FInsertLargeTableArgs& Value) { - return FReducer::InsertLargeTable(Value); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertLargeTable(const FReducer& Reducer) { return Reducer.IsInsertLargeTable(); } +struct TESTCLIENT_API FPkI32IxCols +{ + explicit FPkI32IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertLargeTableArgs GetAsInsertLargeTable(const FReducer& Reducer) { - return Reducer.GetAsInsertLargeTable(); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneBool(const FInsertOneBoolArgs& Value) { - return FReducer::InsertOneBool(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneBool(const FReducer& Reducer) { return Reducer.IsInsertOneBool(); } +struct TESTCLIENT_API FPkI64Cols +{ + explicit FPkI64Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneBoolArgs GetAsInsertOneBool(const FReducer& Reducer) { - return Reducer.GetAsInsertOneBool(); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneByteStruct(const FInsertOneByteStructArgs& Value) { - return FReducer::InsertOneByteStruct(Value); - } +struct TESTCLIENT_API FPkI64IxCols +{ + explicit FPkI64IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneByteStruct(const FReducer& Reducer) { return Reducer.IsInsertOneByteStruct(); } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneByteStructArgs GetAsInsertOneByteStruct(const FReducer& Reducer) { - return Reducer.GetAsInsertOneByteStruct(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneConnectionId(const FInsertOneConnectionIdArgs& Value) { - return FReducer::InsertOneConnectionId(Value); - } +struct TESTCLIENT_API FPkI8Cols +{ + explicit FPkI8Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneConnectionId(const FReducer& Reducer) { return Reducer.IsInsertOneConnectionId(); } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneConnectionIdArgs GetAsInsertOneConnectionId(const FReducer& Reducer) { - return Reducer.GetAsInsertOneConnectionId(); - } +struct TESTCLIENT_API FPkI8IxCols +{ + explicit FPkI8IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneEnumWithPayload(const FInsertOneEnumWithPayloadArgs& Value) { - return FReducer::InsertOneEnumWithPayload(Value); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneEnumWithPayload(const FReducer& Reducer) { return Reducer.IsInsertOneEnumWithPayload(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneEnumWithPayloadArgs GetAsInsertOneEnumWithPayload(const FReducer& Reducer) { - return Reducer.GetAsInsertOneEnumWithPayload(); - } +struct TESTCLIENT_API FPkIdentityCols +{ + explicit FPkIdentityCols(const char* TableName) + : I(TableName, "i"), Data(TableName, "data") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneEveryPrimitiveStruct(const FInsertOneEveryPrimitiveStructArgs& Value) { - return FReducer::InsertOneEveryPrimitiveStruct(Value); - } + ::SpacetimeDB::query_builder::Col I; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneEveryPrimitiveStruct(const FReducer& Reducer) { return Reducer.IsInsertOneEveryPrimitiveStruct(); } +struct TESTCLIENT_API FPkIdentityIxCols +{ + explicit FPkIdentityIxCols(const char* TableName) + : I(TableName, "i") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneEveryPrimitiveStructArgs GetAsInsertOneEveryPrimitiveStruct(const FReducer& Reducer) { - return Reducer.GetAsInsertOneEveryPrimitiveStruct(); - } + ::SpacetimeDB::query_builder::IxCol I; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneEveryVecStruct(const FInsertOneEveryVecStructArgs& Value) { - return FReducer::InsertOneEveryVecStruct(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneEveryVecStruct(const FReducer& Reducer) { return Reducer.IsInsertOneEveryVecStruct(); } +struct TESTCLIENT_API FPkSimpleEnumCols +{ + explicit FPkSimpleEnumCols(const char* TableName) + : A(TableName, "a"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneEveryVecStructArgs GetAsInsertOneEveryVecStruct(const FReducer& Reducer) { - return Reducer.GetAsInsertOneEveryVecStruct(); - } + ::SpacetimeDB::query_builder::Col A; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneF32(const FInsertOneF32Args& Value) { - return FReducer::InsertOneF32(Value); - } +struct TESTCLIENT_API FPkSimpleEnumIxCols +{ + explicit FPkSimpleEnumIxCols(const char* TableName) + : A(TableName, "a") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneF32(const FReducer& Reducer) { return Reducer.IsInsertOneF32(); } + ::SpacetimeDB::query_builder::IxCol A; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneF32Args GetAsInsertOneF32(const FReducer& Reducer) { - return Reducer.GetAsInsertOneF32(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneF64(const FInsertOneF64Args& Value) { - return FReducer::InsertOneF64(Value); - } +struct TESTCLIENT_API FPkStringCols +{ + explicit FPkStringCols(const char* TableName) + : S(TableName, "s"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneF64(const FReducer& Reducer) { return Reducer.IsInsertOneF64(); } + ::SpacetimeDB::query_builder::Col S; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneF64Args GetAsInsertOneF64(const FReducer& Reducer) { - return Reducer.GetAsInsertOneF64(); - } +struct TESTCLIENT_API FPkStringIxCols +{ + explicit FPkStringIxCols(const char* TableName) + : S(TableName, "s") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneI128(const FInsertOneI128Args& Value) { - return FReducer::InsertOneI128(Value); - } + ::SpacetimeDB::query_builder::IxCol S; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneI128(const FReducer& Reducer) { return Reducer.IsInsertOneI128(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneI128Args GetAsInsertOneI128(const FReducer& Reducer) { - return Reducer.GetAsInsertOneI128(); - } +struct TESTCLIENT_API FPkU128Cols +{ + explicit FPkU128Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneI16(const FInsertOneI16Args& Value) { - return FReducer::InsertOneI16(Value); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneI16(const FReducer& Reducer) { return Reducer.IsInsertOneI16(); } +struct TESTCLIENT_API FPkU128IxCols +{ + explicit FPkU128IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneI16Args GetAsInsertOneI16(const FReducer& Reducer) { - return Reducer.GetAsInsertOneI16(); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneI256(const FInsertOneI256Args& Value) { - return FReducer::InsertOneI256(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneI256(const FReducer& Reducer) { return Reducer.IsInsertOneI256(); } +struct TESTCLIENT_API FPkU16Cols +{ + explicit FPkU16Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneI256Args GetAsInsertOneI256(const FReducer& Reducer) { - return Reducer.GetAsInsertOneI256(); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneI32(const FInsertOneI32Args& Value) { - return FReducer::InsertOneI32(Value); - } +struct TESTCLIENT_API FPkU16IxCols +{ + explicit FPkU16IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneI32(const FReducer& Reducer) { return Reducer.IsInsertOneI32(); } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneI32Args GetAsInsertOneI32(const FReducer& Reducer) { - return Reducer.GetAsInsertOneI32(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneI64(const FInsertOneI64Args& Value) { - return FReducer::InsertOneI64(Value); - } +struct TESTCLIENT_API FPkU256Cols +{ + explicit FPkU256Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneI64(const FReducer& Reducer) { return Reducer.IsInsertOneI64(); } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneI64Args GetAsInsertOneI64(const FReducer& Reducer) { - return Reducer.GetAsInsertOneI64(); - } +struct TESTCLIENT_API FPkU256IxCols +{ + explicit FPkU256IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneI8(const FInsertOneI8Args& Value) { - return FReducer::InsertOneI8(Value); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneI8(const FReducer& Reducer) { return Reducer.IsInsertOneI8(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneI8Args GetAsInsertOneI8(const FReducer& Reducer) { - return Reducer.GetAsInsertOneI8(); - } +struct TESTCLIENT_API FPkU32Cols +{ + explicit FPkU32Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneIdentity(const FInsertOneIdentityArgs& Value) { - return FReducer::InsertOneIdentity(Value); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneIdentity(const FReducer& Reducer) { return Reducer.IsInsertOneIdentity(); } +struct TESTCLIENT_API FPkU32IxCols +{ + explicit FPkU32IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneIdentityArgs GetAsInsertOneIdentity(const FReducer& Reducer) { - return Reducer.GetAsInsertOneIdentity(); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneSimpleEnum(const FInsertOneSimpleEnumArgs& Value) { - return FReducer::InsertOneSimpleEnum(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneSimpleEnum(const FReducer& Reducer) { return Reducer.IsInsertOneSimpleEnum(); } +struct TESTCLIENT_API FPkU32TwoCols +{ + explicit FPkU32TwoCols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneSimpleEnumArgs GetAsInsertOneSimpleEnum(const FReducer& Reducer) { - return Reducer.GetAsInsertOneSimpleEnum(); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneString(const FInsertOneStringArgs& Value) { - return FReducer::InsertOneString(Value); - } +struct TESTCLIENT_API FPkU32TwoIxCols +{ + explicit FPkU32TwoIxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneString(const FReducer& Reducer) { return Reducer.IsInsertOneString(); } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneStringArgs GetAsInsertOneString(const FReducer& Reducer) { - return Reducer.GetAsInsertOneString(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneTimestamp(const FInsertOneTimestampArgs& Value) { - return FReducer::InsertOneTimestamp(Value); - } +struct TESTCLIENT_API FPkU64Cols +{ + explicit FPkU64Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneTimestamp(const FReducer& Reducer) { return Reducer.IsInsertOneTimestamp(); } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneTimestampArgs GetAsInsertOneTimestamp(const FReducer& Reducer) { - return Reducer.GetAsInsertOneTimestamp(); - } +struct TESTCLIENT_API FPkU64IxCols +{ + explicit FPkU64IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneU128(const FInsertOneU128Args& Value) { - return FReducer::InsertOneU128(Value); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneU128(const FReducer& Reducer) { return Reducer.IsInsertOneU128(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneU128Args GetAsInsertOneU128(const FReducer& Reducer) { - return Reducer.GetAsInsertOneU128(); - } +struct TESTCLIENT_API FPkU8Cols +{ + explicit FPkU8Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneU16(const FInsertOneU16Args& Value) { - return FReducer::InsertOneU16(Value); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneU16(const FReducer& Reducer) { return Reducer.IsInsertOneU16(); } +struct TESTCLIENT_API FPkU8IxCols +{ + explicit FPkU8IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneU16Args GetAsInsertOneU16(const FReducer& Reducer) { - return Reducer.GetAsInsertOneU16(); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneU256(const FInsertOneU256Args& Value) { - return FReducer::InsertOneU256(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneU256(const FReducer& Reducer) { return Reducer.IsInsertOneU256(); } +struct TESTCLIENT_API FPkUuidCols +{ + explicit FPkUuidCols(const char* TableName) + : U(TableName, "u"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneU256Args GetAsInsertOneU256(const FReducer& Reducer) { - return Reducer.GetAsInsertOneU256(); - } + ::SpacetimeDB::query_builder::Col U; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneU32(const FInsertOneU32Args& Value) { - return FReducer::InsertOneU32(Value); - } +struct TESTCLIENT_API FPkUuidIxCols +{ + explicit FPkUuidIxCols(const char* TableName) + : U(TableName, "u") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneU32(const FReducer& Reducer) { return Reducer.IsInsertOneU32(); } + ::SpacetimeDB::query_builder::IxCol U; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneU32Args GetAsInsertOneU32(const FReducer& Reducer) { - return Reducer.GetAsInsertOneU32(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneU64(const FInsertOneU64Args& Value) { - return FReducer::InsertOneU64(Value); - } +struct TESTCLIENT_API FResultEveryPrimitiveStructStringCols +{ + explicit FResultEveryPrimitiveStructStringCols(const char* TableName) + : R(TableName, "r") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneU64(const FReducer& Reducer) { return Reducer.IsInsertOneU64(); } + ::SpacetimeDB::query_builder::Col R; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneU64Args GetAsInsertOneU64(const FReducer& Reducer) { - return Reducer.GetAsInsertOneU64(); - } +struct TESTCLIENT_API FResultEveryPrimitiveStructStringIxCols +{ + explicit FResultEveryPrimitiveStructStringIxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneU8(const FInsertOneU8Args& Value) { - return FReducer::InsertOneU8(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneU8(const FReducer& Reducer) { return Reducer.IsInsertOneU8(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneU8Args GetAsInsertOneU8(const FReducer& Reducer) { - return Reducer.GetAsInsertOneU8(); - } +struct TESTCLIENT_API FResultI32StringCols +{ + explicit FResultI32StringCols(const char* TableName) + : R(TableName, "r") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneUnitStruct(const FInsertOneUnitStructArgs& Value) { - return FReducer::InsertOneUnitStruct(Value); - } + ::SpacetimeDB::query_builder::Col R; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneUnitStruct(const FReducer& Reducer) { return Reducer.IsInsertOneUnitStruct(); } +struct TESTCLIENT_API FResultI32StringIxCols +{ + explicit FResultI32StringIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneUnitStructArgs GetAsInsertOneUnitStruct(const FReducer& Reducer) { - return Reducer.GetAsInsertOneUnitStruct(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOneUuid(const FInsertOneUuidArgs& Value) { - return FReducer::InsertOneUuid(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOneUuid(const FReducer& Reducer) { return Reducer.IsInsertOneUuid(); } +struct TESTCLIENT_API FResultIdentityStringCols +{ + explicit FResultIdentityStringCols(const char* TableName) + : R(TableName, "r") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOneUuidArgs GetAsInsertOneUuid(const FReducer& Reducer) { - return Reducer.GetAsInsertOneUuid(); - } + ::SpacetimeDB::query_builder::Col R; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOptionEveryPrimitiveStruct(const FInsertOptionEveryPrimitiveStructArgs& Value) { - return FReducer::InsertOptionEveryPrimitiveStruct(Value); - } +struct TESTCLIENT_API FResultIdentityStringIxCols +{ + explicit FResultIdentityStringIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOptionEveryPrimitiveStruct(const FReducer& Reducer) { return Reducer.IsInsertOptionEveryPrimitiveStruct(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOptionEveryPrimitiveStructArgs GetAsInsertOptionEveryPrimitiveStruct(const FReducer& Reducer) { - return Reducer.GetAsInsertOptionEveryPrimitiveStruct(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOptionI32(const FInsertOptionI32Args& Value) { - return FReducer::InsertOptionI32(Value); - } +struct TESTCLIENT_API FResultSimpleEnumI32Cols +{ + explicit FResultSimpleEnumI32Cols(const char* TableName) + : R(TableName, "r") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOptionI32(const FReducer& Reducer) { return Reducer.IsInsertOptionI32(); } + ::SpacetimeDB::query_builder::Col R; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOptionI32Args GetAsInsertOptionI32(const FReducer& Reducer) { - return Reducer.GetAsInsertOptionI32(); - } +struct TESTCLIENT_API FResultSimpleEnumI32IxCols +{ + explicit FResultSimpleEnumI32IxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOptionIdentity(const FInsertOptionIdentityArgs& Value) { - return FReducer::InsertOptionIdentity(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOptionIdentity(const FReducer& Reducer) { return Reducer.IsInsertOptionIdentity(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOptionIdentityArgs GetAsInsertOptionIdentity(const FReducer& Reducer) { - return Reducer.GetAsInsertOptionIdentity(); - } +struct TESTCLIENT_API FResultStringI32Cols +{ + explicit FResultStringI32Cols(const char* TableName) + : R(TableName, "r") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOptionSimpleEnum(const FInsertOptionSimpleEnumArgs& Value) { - return FReducer::InsertOptionSimpleEnum(Value); - } + ::SpacetimeDB::query_builder::Col R; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOptionSimpleEnum(const FReducer& Reducer) { return Reducer.IsInsertOptionSimpleEnum(); } +struct TESTCLIENT_API FResultStringI32IxCols +{ + explicit FResultStringI32IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOptionSimpleEnumArgs GetAsInsertOptionSimpleEnum(const FReducer& Reducer) { - return Reducer.GetAsInsertOptionSimpleEnum(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOptionString(const FInsertOptionStringArgs& Value) { - return FReducer::InsertOptionString(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOptionString(const FReducer& Reducer) { return Reducer.IsInsertOptionString(); } +struct TESTCLIENT_API FResultVecI32StringCols +{ + explicit FResultVecI32StringCols(const char* TableName) + : R(TableName, "r") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOptionStringArgs GetAsInsertOptionString(const FReducer& Reducer) { - return Reducer.GetAsInsertOptionString(); - } + ::SpacetimeDB::query_builder::Col R; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOptionUuid(const FInsertOptionUuidArgs& Value) { - return FReducer::InsertOptionUuid(Value); - } +struct TESTCLIENT_API FResultVecI32StringIxCols +{ + explicit FResultVecI32StringIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOptionUuid(const FReducer& Reducer) { return Reducer.IsInsertOptionUuid(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOptionUuidArgs GetAsInsertOptionUuid(const FReducer& Reducer) { - return Reducer.GetAsInsertOptionUuid(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertOptionVecOptionI32(const FInsertOptionVecOptionI32Args& Value) { - return FReducer::InsertOptionVecOptionI32(Value); - } +struct TESTCLIENT_API FScheduledTableCols +{ + explicit FScheduledTableCols(const char* TableName) + : ScheduledId(TableName, "scheduled_id"), ScheduledAt(TableName, "scheduled_at"), Text(TableName, "text") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertOptionVecOptionI32(const FReducer& Reducer) { return Reducer.IsInsertOptionVecOptionI32(); } + ::SpacetimeDB::query_builder::Col ScheduledId; + ::SpacetimeDB::query_builder::Col ScheduledAt; + ::SpacetimeDB::query_builder::Col Text; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertOptionVecOptionI32Args GetAsInsertOptionVecOptionI32(const FReducer& Reducer) { - return Reducer.GetAsInsertOptionVecOptionI32(); - } +struct TESTCLIENT_API FScheduledTableIxCols +{ + explicit FScheduledTableIxCols(const char* TableName) + : ScheduledId(TableName, "scheduled_id") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkBool(const FInsertPkBoolArgs& Value) { - return FReducer::InsertPkBool(Value); - } + ::SpacetimeDB::query_builder::IxCol ScheduledId; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkBool(const FReducer& Reducer) { return Reducer.IsInsertPkBool(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkBoolArgs GetAsInsertPkBool(const FReducer& Reducer) { - return Reducer.GetAsInsertPkBool(); - } +struct TESTCLIENT_API FTableHoldsTableCols +{ + explicit FTableHoldsTableCols(const char* TableName) + : A(TableName, "a"), B(TableName, "b") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkConnectionId(const FInsertPkConnectionIdArgs& Value) { - return FReducer::InsertPkConnectionId(Value); - } + ::SpacetimeDB::query_builder::Col A; + ::SpacetimeDB::query_builder::Col B; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkConnectionId(const FReducer& Reducer) { return Reducer.IsInsertPkConnectionId(); } +struct TESTCLIENT_API FTableHoldsTableIxCols +{ + explicit FTableHoldsTableIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkConnectionIdArgs GetAsInsertPkConnectionId(const FReducer& Reducer) { - return Reducer.GetAsInsertPkConnectionId(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkI128(const FInsertPkI128Args& Value) { - return FReducer::InsertPkI128(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkI128(const FReducer& Reducer) { return Reducer.IsInsertPkI128(); } +struct TESTCLIENT_API FUniqueBoolCols +{ + explicit FUniqueBoolCols(const char* TableName) + : B(TableName, "b"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkI128Args GetAsInsertPkI128(const FReducer& Reducer) { - return Reducer.GetAsInsertPkI128(); - } + ::SpacetimeDB::query_builder::Col B; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkI16(const FInsertPkI16Args& Value) { - return FReducer::InsertPkI16(Value); - } +struct TESTCLIENT_API FUniqueBoolIxCols +{ + explicit FUniqueBoolIxCols(const char* TableName) + : B(TableName, "b") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkI16(const FReducer& Reducer) { return Reducer.IsInsertPkI16(); } + ::SpacetimeDB::query_builder::IxCol B; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkI16Args GetAsInsertPkI16(const FReducer& Reducer) { - return Reducer.GetAsInsertPkI16(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkI256(const FInsertPkI256Args& Value) { - return FReducer::InsertPkI256(Value); - } +struct TESTCLIENT_API FUniqueConnectionIdCols +{ + explicit FUniqueConnectionIdCols(const char* TableName) + : A(TableName, "a"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkI256(const FReducer& Reducer) { return Reducer.IsInsertPkI256(); } + ::SpacetimeDB::query_builder::Col A; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkI256Args GetAsInsertPkI256(const FReducer& Reducer) { - return Reducer.GetAsInsertPkI256(); - } +struct TESTCLIENT_API FUniqueConnectionIdIxCols +{ + explicit FUniqueConnectionIdIxCols(const char* TableName) + : A(TableName, "a") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkI32(const FInsertPkI32Args& Value) { - return FReducer::InsertPkI32(Value); - } + ::SpacetimeDB::query_builder::IxCol A; +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTCLIENT_API FUniqueI128Cols +{ + explicit FUniqueI128Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkI32(const FReducer& Reducer) { return Reducer.IsInsertPkI32(); } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkI32Args GetAsInsertPkI32(const FReducer& Reducer) { - return Reducer.GetAsInsertPkI32(); - } +struct TESTCLIENT_API FUniqueI128IxCols +{ + explicit FUniqueI128IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkI64(const FInsertPkI64Args& Value) { - return FReducer::InsertPkI64(Value); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkI64(const FReducer& Reducer) { return Reducer.IsInsertPkI64(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkI64Args GetAsInsertPkI64(const FReducer& Reducer) { - return Reducer.GetAsInsertPkI64(); - } +struct TESTCLIENT_API FUniqueI16Cols +{ + explicit FUniqueI16Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkI8(const FInsertPkI8Args& Value) { - return FReducer::InsertPkI8(Value); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkI8(const FReducer& Reducer) { return Reducer.IsInsertPkI8(); } +struct TESTCLIENT_API FUniqueI16IxCols +{ + explicit FUniqueI16IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkI8Args GetAsInsertPkI8(const FReducer& Reducer) { - return Reducer.GetAsInsertPkI8(); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkIdentity(const FInsertPkIdentityArgs& Value) { - return FReducer::InsertPkIdentity(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkIdentity(const FReducer& Reducer) { return Reducer.IsInsertPkIdentity(); } +struct TESTCLIENT_API FUniqueI256Cols +{ + explicit FUniqueI256Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkIdentityArgs GetAsInsertPkIdentity(const FReducer& Reducer) { - return Reducer.GetAsInsertPkIdentity(); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkSimpleEnum(const FInsertPkSimpleEnumArgs& Value) { - return FReducer::InsertPkSimpleEnum(Value); - } +struct TESTCLIENT_API FUniqueI256IxCols +{ + explicit FUniqueI256IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkSimpleEnum(const FReducer& Reducer) { return Reducer.IsInsertPkSimpleEnum(); } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkSimpleEnumArgs GetAsInsertPkSimpleEnum(const FReducer& Reducer) { - return Reducer.GetAsInsertPkSimpleEnum(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkString(const FInsertPkStringArgs& Value) { - return FReducer::InsertPkString(Value); - } +struct TESTCLIENT_API FUniqueI32Cols +{ + explicit FUniqueI32Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkString(const FReducer& Reducer) { return Reducer.IsInsertPkString(); } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkStringArgs GetAsInsertPkString(const FReducer& Reducer) { - return Reducer.GetAsInsertPkString(); - } +struct TESTCLIENT_API FUniqueI32IxCols +{ + explicit FUniqueI32IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkU128(const FInsertPkU128Args& Value) { - return FReducer::InsertPkU128(Value); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkU128(const FReducer& Reducer) { return Reducer.IsInsertPkU128(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkU128Args GetAsInsertPkU128(const FReducer& Reducer) { - return Reducer.GetAsInsertPkU128(); - } +struct TESTCLIENT_API FUniqueI64Cols +{ + explicit FUniqueI64Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkU16(const FInsertPkU16Args& Value) { - return FReducer::InsertPkU16(Value); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkU16(const FReducer& Reducer) { return Reducer.IsInsertPkU16(); } +struct TESTCLIENT_API FUniqueI64IxCols +{ + explicit FUniqueI64IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkU16Args GetAsInsertPkU16(const FReducer& Reducer) { - return Reducer.GetAsInsertPkU16(); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkU256(const FInsertPkU256Args& Value) { - return FReducer::InsertPkU256(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkU256(const FReducer& Reducer) { return Reducer.IsInsertPkU256(); } +struct TESTCLIENT_API FUniqueI8Cols +{ + explicit FUniqueI8Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkU256Args GetAsInsertPkU256(const FReducer& Reducer) { - return Reducer.GetAsInsertPkU256(); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkU32(const FInsertPkU32Args& Value) { - return FReducer::InsertPkU32(Value); - } +struct TESTCLIENT_API FUniqueI8IxCols +{ + explicit FUniqueI8IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkU32(const FReducer& Reducer) { return Reducer.IsInsertPkU32(); } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkU32Args GetAsInsertPkU32(const FReducer& Reducer) { - return Reducer.GetAsInsertPkU32(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkU32Two(const FInsertPkU32TwoArgs& Value) { - return FReducer::InsertPkU32Two(Value); - } +struct TESTCLIENT_API FUniqueIdentityCols +{ + explicit FUniqueIdentityCols(const char* TableName) + : I(TableName, "i"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkU32Two(const FReducer& Reducer) { return Reducer.IsInsertPkU32Two(); } + ::SpacetimeDB::query_builder::Col I; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkU32TwoArgs GetAsInsertPkU32Two(const FReducer& Reducer) { - return Reducer.GetAsInsertPkU32Two(); - } +struct TESTCLIENT_API FUniqueIdentityIxCols +{ + explicit FUniqueIdentityIxCols(const char* TableName) + : I(TableName, "i") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkU64(const FInsertPkU64Args& Value) { - return FReducer::InsertPkU64(Value); - } + ::SpacetimeDB::query_builder::IxCol I; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkU64(const FReducer& Reducer) { return Reducer.IsInsertPkU64(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkU64Args GetAsInsertPkU64(const FReducer& Reducer) { - return Reducer.GetAsInsertPkU64(); - } +struct TESTCLIENT_API FUniqueStringCols +{ + explicit FUniqueStringCols(const char* TableName) + : S(TableName, "s"), Data(TableName, "data") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkU8(const FInsertPkU8Args& Value) { - return FReducer::InsertPkU8(Value); - } + ::SpacetimeDB::query_builder::Col S; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkU8(const FReducer& Reducer) { return Reducer.IsInsertPkU8(); } +struct TESTCLIENT_API FUniqueStringIxCols +{ + explicit FUniqueStringIxCols(const char* TableName) + : S(TableName, "s") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkU8Args GetAsInsertPkU8(const FReducer& Reducer) { - return Reducer.GetAsInsertPkU8(); - } + ::SpacetimeDB::query_builder::IxCol S; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPkUuid(const FInsertPkUuidArgs& Value) { - return FReducer::InsertPkUuid(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPkUuid(const FReducer& Reducer) { return Reducer.IsInsertPkUuid(); } +struct TESTCLIENT_API FUniqueU128Cols +{ + explicit FUniqueU128Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPkUuidArgs GetAsInsertPkUuid(const FReducer& Reducer) { - return Reducer.GetAsInsertPkUuid(); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertPrimitivesAsStrings(const FInsertPrimitivesAsStringsArgs& Value) { - return FReducer::InsertPrimitivesAsStrings(Value); - } +struct TESTCLIENT_API FUniqueU128IxCols +{ + explicit FUniqueU128IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertPrimitivesAsStrings(const FReducer& Reducer) { return Reducer.IsInsertPrimitivesAsStrings(); } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertPrimitivesAsStringsArgs GetAsInsertPrimitivesAsStrings(const FReducer& Reducer) { - return Reducer.GetAsInsertPrimitivesAsStrings(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertResultEveryPrimitiveStructString(const FInsertResultEveryPrimitiveStructStringArgs& Value) { - return FReducer::InsertResultEveryPrimitiveStructString(Value); - } +struct TESTCLIENT_API FUniqueU16Cols +{ + explicit FUniqueU16Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertResultEveryPrimitiveStructString(const FReducer& Reducer) { return Reducer.IsInsertResultEveryPrimitiveStructString(); } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertResultEveryPrimitiveStructStringArgs GetAsInsertResultEveryPrimitiveStructString(const FReducer& Reducer) { - return Reducer.GetAsInsertResultEveryPrimitiveStructString(); - } +struct TESTCLIENT_API FUniqueU16IxCols +{ + explicit FUniqueU16IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertResultI32String(const FInsertResultI32StringArgs& Value) { - return FReducer::InsertResultI32String(Value); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertResultI32String(const FReducer& Reducer) { return Reducer.IsInsertResultI32String(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertResultI32StringArgs GetAsInsertResultI32String(const FReducer& Reducer) { - return Reducer.GetAsInsertResultI32String(); - } +struct TESTCLIENT_API FUniqueU256Cols +{ + explicit FUniqueU256Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertResultIdentityString(const FInsertResultIdentityStringArgs& Value) { - return FReducer::InsertResultIdentityString(Value); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertResultIdentityString(const FReducer& Reducer) { return Reducer.IsInsertResultIdentityString(); } +struct TESTCLIENT_API FUniqueU256IxCols +{ + explicit FUniqueU256IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertResultIdentityStringArgs GetAsInsertResultIdentityString(const FReducer& Reducer) { - return Reducer.GetAsInsertResultIdentityString(); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertResultSimpleEnumI32(const FInsertResultSimpleEnumI32Args& Value) { - return FReducer::InsertResultSimpleEnumI32(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertResultSimpleEnumI32(const FReducer& Reducer) { return Reducer.IsInsertResultSimpleEnumI32(); } +struct TESTCLIENT_API FUniqueU32Cols +{ + explicit FUniqueU32Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertResultSimpleEnumI32Args GetAsInsertResultSimpleEnumI32(const FReducer& Reducer) { - return Reducer.GetAsInsertResultSimpleEnumI32(); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertResultStringI32(const FInsertResultStringI32Args& Value) { - return FReducer::InsertResultStringI32(Value); - } +struct TESTCLIENT_API FUniqueU32IxCols +{ + explicit FUniqueU32IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertResultStringI32(const FReducer& Reducer) { return Reducer.IsInsertResultStringI32(); } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertResultStringI32Args GetAsInsertResultStringI32(const FReducer& Reducer) { - return Reducer.GetAsInsertResultStringI32(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTCLIENT_API FUniqueU64Cols +{ + explicit FUniqueU64Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertResultVecI32String(const FInsertResultVecI32StringArgs& Value) { - return FReducer::InsertResultVecI32String(Value); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertResultVecI32String(const FReducer& Reducer) { return Reducer.IsInsertResultVecI32String(); } +struct TESTCLIENT_API FUniqueU64IxCols +{ + explicit FUniqueU64IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertResultVecI32StringArgs GetAsInsertResultVecI32String(const FReducer& Reducer) { - return Reducer.GetAsInsertResultVecI32String(); - } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertTableHoldsTable(const FInsertTableHoldsTableArgs& Value) { - return FReducer::InsertTableHoldsTable(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertTableHoldsTable(const FReducer& Reducer) { return Reducer.IsInsertTableHoldsTable(); } +struct TESTCLIENT_API FUniqueU8Cols +{ + explicit FUniqueU8Cols(const char* TableName) + : N(TableName, "n"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertTableHoldsTableArgs GetAsInsertTableHoldsTable(const FReducer& Reducer) { - return Reducer.GetAsInsertTableHoldsTable(); - } + ::SpacetimeDB::query_builder::Col N; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueBool(const FInsertUniqueBoolArgs& Value) { - return FReducer::InsertUniqueBool(Value); - } +struct TESTCLIENT_API FUniqueU8IxCols +{ + explicit FUniqueU8IxCols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueBool(const FReducer& Reducer) { return Reducer.IsInsertUniqueBool(); } + ::SpacetimeDB::query_builder::IxCol N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueBoolArgs GetAsInsertUniqueBool(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueBool(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueConnectionId(const FInsertUniqueConnectionIdArgs& Value) { - return FReducer::InsertUniqueConnectionId(Value); - } +struct TESTCLIENT_API FUniqueUuidCols +{ + explicit FUniqueUuidCols(const char* TableName) + : U(TableName, "u"), Data(TableName, "data") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueConnectionId(const FReducer& Reducer) { return Reducer.IsInsertUniqueConnectionId(); } + ::SpacetimeDB::query_builder::Col U; + ::SpacetimeDB::query_builder::Col Data; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueConnectionIdArgs GetAsInsertUniqueConnectionId(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueConnectionId(); - } +struct TESTCLIENT_API FUniqueUuidIxCols +{ + explicit FUniqueUuidIxCols(const char* TableName) + : U(TableName, "u") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueI128(const FInsertUniqueI128Args& Value) { - return FReducer::InsertUniqueI128(Value); - } + ::SpacetimeDB::query_builder::IxCol U; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueI128(const FReducer& Reducer) { return Reducer.IsInsertUniqueI128(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueI128Args GetAsInsertUniqueI128(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueI128(); - } +struct TESTCLIENT_API FUsersCols +{ + explicit FUsersCols(const char* TableName) + : Identity(TableName, "identity"), Name(TableName, "name") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueI16(const FInsertUniqueI16Args& Value) { - return FReducer::InsertUniqueI16(Value); - } + ::SpacetimeDB::query_builder::Col Identity; + ::SpacetimeDB::query_builder::Col Name; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueI16(const FReducer& Reducer) { return Reducer.IsInsertUniqueI16(); } +struct TESTCLIENT_API FUsersIxCols +{ + explicit FUsersIxCols(const char* TableName) + : Identity(TableName, "identity") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueI16Args GetAsInsertUniqueI16(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueI16(); - } + ::SpacetimeDB::query_builder::IxCol Identity; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueI256(const FInsertUniqueI256Args& Value) { - return FReducer::InsertUniqueI256(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueI256(const FReducer& Reducer) { return Reducer.IsInsertUniqueI256(); } +struct TESTCLIENT_API FVecBoolCols +{ + explicit FVecBoolCols(const char* TableName) + : B(TableName, "b") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueI256Args GetAsInsertUniqueI256(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueI256(); - } + ::SpacetimeDB::query_builder::Col> B; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueI32(const FInsertUniqueI32Args& Value) { - return FReducer::InsertUniqueI32(Value); - } +struct TESTCLIENT_API FVecBoolIxCols +{ + explicit FVecBoolIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueI32(const FReducer& Reducer) { return Reducer.IsInsertUniqueI32(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueI32Args GetAsInsertUniqueI32(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueI32(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueI64(const FInsertUniqueI64Args& Value) { - return FReducer::InsertUniqueI64(Value); - } +struct TESTCLIENT_API FVecByteStructCols +{ + explicit FVecByteStructCols(const char* TableName) + : S(TableName, "s") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueI64(const FReducer& Reducer) { return Reducer.IsInsertUniqueI64(); } + ::SpacetimeDB::query_builder::Col> S; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueI64Args GetAsInsertUniqueI64(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueI64(); - } +struct TESTCLIENT_API FVecByteStructIxCols +{ + explicit FVecByteStructIxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueI8(const FInsertUniqueI8Args& Value) { - return FReducer::InsertUniqueI8(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueI8(const FReducer& Reducer) { return Reducer.IsInsertUniqueI8(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueI8Args GetAsInsertUniqueI8(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueI8(); - } +struct TESTCLIENT_API FVecConnectionIdCols +{ + explicit FVecConnectionIdCols(const char* TableName) + : A(TableName, "a") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueIdentity(const FInsertUniqueIdentityArgs& Value) { - return FReducer::InsertUniqueIdentity(Value); - } + ::SpacetimeDB::query_builder::Col> A; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueIdentity(const FReducer& Reducer) { return Reducer.IsInsertUniqueIdentity(); } +struct TESTCLIENT_API FVecConnectionIdIxCols +{ + explicit FVecConnectionIdIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueIdentityArgs GetAsInsertUniqueIdentity(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueIdentity(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueString(const FInsertUniqueStringArgs& Value) { - return FReducer::InsertUniqueString(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueString(const FReducer& Reducer) { return Reducer.IsInsertUniqueString(); } +struct TESTCLIENT_API FVecEnumWithPayloadCols +{ + explicit FVecEnumWithPayloadCols(const char* TableName) + : E(TableName, "e") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueStringArgs GetAsInsertUniqueString(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueString(); - } + ::SpacetimeDB::query_builder::Col> E; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueU128(const FInsertUniqueU128Args& Value) { - return FReducer::InsertUniqueU128(Value); - } +struct TESTCLIENT_API FVecEnumWithPayloadIxCols +{ + explicit FVecEnumWithPayloadIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueU128(const FReducer& Reducer) { return Reducer.IsInsertUniqueU128(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueU128Args GetAsInsertUniqueU128(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueU128(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueU16(const FInsertUniqueU16Args& Value) { - return FReducer::InsertUniqueU16(Value); - } +struct TESTCLIENT_API FVecEveryPrimitiveStructCols +{ + explicit FVecEveryPrimitiveStructCols(const char* TableName) + : S(TableName, "s") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueU16(const FReducer& Reducer) { return Reducer.IsInsertUniqueU16(); } + ::SpacetimeDB::query_builder::Col> S; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueU16Args GetAsInsertUniqueU16(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueU16(); - } +struct TESTCLIENT_API FVecEveryPrimitiveStructIxCols +{ + explicit FVecEveryPrimitiveStructIxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueU256(const FInsertUniqueU256Args& Value) { - return FReducer::InsertUniqueU256(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueU256(const FReducer& Reducer) { return Reducer.IsInsertUniqueU256(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueU256Args GetAsInsertUniqueU256(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueU256(); - } +struct TESTCLIENT_API FVecEveryVecStructCols +{ + explicit FVecEveryVecStructCols(const char* TableName) + : S(TableName, "s") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueU32(const FInsertUniqueU32Args& Value) { - return FReducer::InsertUniqueU32(Value); - } + ::SpacetimeDB::query_builder::Col> S; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueU32(const FReducer& Reducer) { return Reducer.IsInsertUniqueU32(); } +struct TESTCLIENT_API FVecEveryVecStructIxCols +{ + explicit FVecEveryVecStructIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueU32Args GetAsInsertUniqueU32(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueU32(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueU32UpdatePkU32(const FInsertUniqueU32UpdatePkU32Args& Value) { - return FReducer::InsertUniqueU32UpdatePkU32(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueU32UpdatePkU32(const FReducer& Reducer) { return Reducer.IsInsertUniqueU32UpdatePkU32(); } +struct TESTCLIENT_API FVecF32Cols +{ + explicit FVecF32Cols(const char* TableName) + : F(TableName, "f") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueU32UpdatePkU32Args GetAsInsertUniqueU32UpdatePkU32(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueU32UpdatePkU32(); - } + ::SpacetimeDB::query_builder::Col> F; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueU64(const FInsertUniqueU64Args& Value) { - return FReducer::InsertUniqueU64(Value); - } +struct TESTCLIENT_API FVecF32IxCols +{ + explicit FVecF32IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueU64(const FReducer& Reducer) { return Reducer.IsInsertUniqueU64(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueU64Args GetAsInsertUniqueU64(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueU64(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueU8(const FInsertUniqueU8Args& Value) { - return FReducer::InsertUniqueU8(Value); - } +struct TESTCLIENT_API FVecF64Cols +{ + explicit FVecF64Cols(const char* TableName) + : F(TableName, "f") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueU8(const FReducer& Reducer) { return Reducer.IsInsertUniqueU8(); } + ::SpacetimeDB::query_builder::Col> F; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueU8Args GetAsInsertUniqueU8(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueU8(); - } +struct TESTCLIENT_API FVecF64IxCols +{ + explicit FVecF64IxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUniqueUuid(const FInsertUniqueUuidArgs& Value) { - return FReducer::InsertUniqueUuid(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUniqueUuid(const FReducer& Reducer) { return Reducer.IsInsertUniqueUuid(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUniqueUuidArgs GetAsInsertUniqueUuid(const FReducer& Reducer) { - return Reducer.GetAsInsertUniqueUuid(); - } +struct TESTCLIENT_API FVecI128Cols +{ + explicit FVecI128Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertUser(const FInsertUserArgs& Value) { - return FReducer::InsertUser(Value); - } + ::SpacetimeDB::query_builder::Col> N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertUser(const FReducer& Reducer) { return Reducer.IsInsertUser(); } +struct TESTCLIENT_API FVecI128IxCols +{ + explicit FVecI128IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertUserArgs GetAsInsertUser(const FReducer& Reducer) { - return Reducer.GetAsInsertUser(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecBool(const FInsertVecBoolArgs& Value) { - return FReducer::InsertVecBool(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecBool(const FReducer& Reducer) { return Reducer.IsInsertVecBool(); } +struct TESTCLIENT_API FVecI16Cols +{ + explicit FVecI16Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecBoolArgs GetAsInsertVecBool(const FReducer& Reducer) { - return Reducer.GetAsInsertVecBool(); - } + ::SpacetimeDB::query_builder::Col> N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecByteStruct(const FInsertVecByteStructArgs& Value) { - return FReducer::InsertVecByteStruct(Value); - } +struct TESTCLIENT_API FVecI16IxCols +{ + explicit FVecI16IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecByteStruct(const FReducer& Reducer) { return Reducer.IsInsertVecByteStruct(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecByteStructArgs GetAsInsertVecByteStruct(const FReducer& Reducer) { - return Reducer.GetAsInsertVecByteStruct(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecConnectionId(const FInsertVecConnectionIdArgs& Value) { - return FReducer::InsertVecConnectionId(Value); - } +struct TESTCLIENT_API FVecI256Cols +{ + explicit FVecI256Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecConnectionId(const FReducer& Reducer) { return Reducer.IsInsertVecConnectionId(); } + ::SpacetimeDB::query_builder::Col> N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecConnectionIdArgs GetAsInsertVecConnectionId(const FReducer& Reducer) { - return Reducer.GetAsInsertVecConnectionId(); - } +struct TESTCLIENT_API FVecI256IxCols +{ + explicit FVecI256IxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecEnumWithPayload(const FInsertVecEnumWithPayloadArgs& Value) { - return FReducer::InsertVecEnumWithPayload(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecEnumWithPayload(const FReducer& Reducer) { return Reducer.IsInsertVecEnumWithPayload(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecEnumWithPayloadArgs GetAsInsertVecEnumWithPayload(const FReducer& Reducer) { - return Reducer.GetAsInsertVecEnumWithPayload(); - } +struct TESTCLIENT_API FVecI32Cols +{ + explicit FVecI32Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecEveryPrimitiveStruct(const FInsertVecEveryPrimitiveStructArgs& Value) { - return FReducer::InsertVecEveryPrimitiveStruct(Value); - } + ::SpacetimeDB::query_builder::Col> N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecEveryPrimitiveStruct(const FReducer& Reducer) { return Reducer.IsInsertVecEveryPrimitiveStruct(); } +struct TESTCLIENT_API FVecI32IxCols +{ + explicit FVecI32IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecEveryPrimitiveStructArgs GetAsInsertVecEveryPrimitiveStruct(const FReducer& Reducer) { - return Reducer.GetAsInsertVecEveryPrimitiveStruct(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecEveryVecStruct(const FInsertVecEveryVecStructArgs& Value) { - return FReducer::InsertVecEveryVecStruct(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecEveryVecStruct(const FReducer& Reducer) { return Reducer.IsInsertVecEveryVecStruct(); } +struct TESTCLIENT_API FVecI64Cols +{ + explicit FVecI64Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecEveryVecStructArgs GetAsInsertVecEveryVecStruct(const FReducer& Reducer) { - return Reducer.GetAsInsertVecEveryVecStruct(); - } + ::SpacetimeDB::query_builder::Col> N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecF32(const FInsertVecF32Args& Value) { - return FReducer::InsertVecF32(Value); - } +struct TESTCLIENT_API FVecI64IxCols +{ + explicit FVecI64IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecF32(const FReducer& Reducer) { return Reducer.IsInsertVecF32(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecF32Args GetAsInsertVecF32(const FReducer& Reducer) { - return Reducer.GetAsInsertVecF32(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecF64(const FInsertVecF64Args& Value) { - return FReducer::InsertVecF64(Value); - } +struct TESTCLIENT_API FVecI8Cols +{ + explicit FVecI8Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecF64(const FReducer& Reducer) { return Reducer.IsInsertVecF64(); } + ::SpacetimeDB::query_builder::Col> N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecF64Args GetAsInsertVecF64(const FReducer& Reducer) { - return Reducer.GetAsInsertVecF64(); - } +struct TESTCLIENT_API FVecI8IxCols +{ + explicit FVecI8IxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecI128(const FInsertVecI128Args& Value) { - return FReducer::InsertVecI128(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecI128(const FReducer& Reducer) { return Reducer.IsInsertVecI128(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecI128Args GetAsInsertVecI128(const FReducer& Reducer) { - return Reducer.GetAsInsertVecI128(); - } +struct TESTCLIENT_API FVecIdentityCols +{ + explicit FVecIdentityCols(const char* TableName) + : I(TableName, "i") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecI16(const FInsertVecI16Args& Value) { - return FReducer::InsertVecI16(Value); - } + ::SpacetimeDB::query_builder::Col> I; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecI16(const FReducer& Reducer) { return Reducer.IsInsertVecI16(); } +struct TESTCLIENT_API FVecIdentityIxCols +{ + explicit FVecIdentityIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecI16Args GetAsInsertVecI16(const FReducer& Reducer) { - return Reducer.GetAsInsertVecI16(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecI256(const FInsertVecI256Args& Value) { - return FReducer::InsertVecI256(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecI256(const FReducer& Reducer) { return Reducer.IsInsertVecI256(); } +struct TESTCLIENT_API FVecSimpleEnumCols +{ + explicit FVecSimpleEnumCols(const char* TableName) + : E(TableName, "e") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecI256Args GetAsInsertVecI256(const FReducer& Reducer) { - return Reducer.GetAsInsertVecI256(); - } + ::SpacetimeDB::query_builder::Col> E; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecI32(const FInsertVecI32Args& Value) { - return FReducer::InsertVecI32(Value); - } +struct TESTCLIENT_API FVecSimpleEnumIxCols +{ + explicit FVecSimpleEnumIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecI32(const FReducer& Reducer) { return Reducer.IsInsertVecI32(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecI32Args GetAsInsertVecI32(const FReducer& Reducer) { - return Reducer.GetAsInsertVecI32(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecI64(const FInsertVecI64Args& Value) { - return FReducer::InsertVecI64(Value); - } +struct TESTCLIENT_API FVecStringCols +{ + explicit FVecStringCols(const char* TableName) + : S(TableName, "s") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecI64(const FReducer& Reducer) { return Reducer.IsInsertVecI64(); } + ::SpacetimeDB::query_builder::Col> S; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecI64Args GetAsInsertVecI64(const FReducer& Reducer) { - return Reducer.GetAsInsertVecI64(); - } +struct TESTCLIENT_API FVecStringIxCols +{ + explicit FVecStringIxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecI8(const FInsertVecI8Args& Value) { - return FReducer::InsertVecI8(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecI8(const FReducer& Reducer) { return Reducer.IsInsertVecI8(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecI8Args GetAsInsertVecI8(const FReducer& Reducer) { - return Reducer.GetAsInsertVecI8(); - } +struct TESTCLIENT_API FVecTimestampCols +{ + explicit FVecTimestampCols(const char* TableName) + : T(TableName, "t") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecIdentity(const FInsertVecIdentityArgs& Value) { - return FReducer::InsertVecIdentity(Value); - } + ::SpacetimeDB::query_builder::Col> T; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecIdentity(const FReducer& Reducer) { return Reducer.IsInsertVecIdentity(); } +struct TESTCLIENT_API FVecTimestampIxCols +{ + explicit FVecTimestampIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecIdentityArgs GetAsInsertVecIdentity(const FReducer& Reducer) { - return Reducer.GetAsInsertVecIdentity(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecSimpleEnum(const FInsertVecSimpleEnumArgs& Value) { - return FReducer::InsertVecSimpleEnum(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecSimpleEnum(const FReducer& Reducer) { return Reducer.IsInsertVecSimpleEnum(); } +struct TESTCLIENT_API FVecU128Cols +{ + explicit FVecU128Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecSimpleEnumArgs GetAsInsertVecSimpleEnum(const FReducer& Reducer) { - return Reducer.GetAsInsertVecSimpleEnum(); - } + ::SpacetimeDB::query_builder::Col> N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecString(const FInsertVecStringArgs& Value) { - return FReducer::InsertVecString(Value); - } +struct TESTCLIENT_API FVecU128IxCols +{ + explicit FVecU128IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecString(const FReducer& Reducer) { return Reducer.IsInsertVecString(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecStringArgs GetAsInsertVecString(const FReducer& Reducer) { - return Reducer.GetAsInsertVecString(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecTimestamp(const FInsertVecTimestampArgs& Value) { - return FReducer::InsertVecTimestamp(Value); - } +struct TESTCLIENT_API FVecU16Cols +{ + explicit FVecU16Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecTimestamp(const FReducer& Reducer) { return Reducer.IsInsertVecTimestamp(); } + ::SpacetimeDB::query_builder::Col> N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecTimestampArgs GetAsInsertVecTimestamp(const FReducer& Reducer) { - return Reducer.GetAsInsertVecTimestamp(); - } +struct TESTCLIENT_API FVecU16IxCols +{ + explicit FVecU16IxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecU128(const FInsertVecU128Args& Value) { - return FReducer::InsertVecU128(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecU128(const FReducer& Reducer) { return Reducer.IsInsertVecU128(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecU128Args GetAsInsertVecU128(const FReducer& Reducer) { - return Reducer.GetAsInsertVecU128(); - } +struct TESTCLIENT_API FVecU256Cols +{ + explicit FVecU256Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecU16(const FInsertVecU16Args& Value) { - return FReducer::InsertVecU16(Value); - } + ::SpacetimeDB::query_builder::Col> N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecU16(const FReducer& Reducer) { return Reducer.IsInsertVecU16(); } +struct TESTCLIENT_API FVecU256IxCols +{ + explicit FVecU256IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecU16Args GetAsInsertVecU16(const FReducer& Reducer) { - return Reducer.GetAsInsertVecU16(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecU256(const FInsertVecU256Args& Value) { - return FReducer::InsertVecU256(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecU256(const FReducer& Reducer) { return Reducer.IsInsertVecU256(); } +struct TESTCLIENT_API FVecU32Cols +{ + explicit FVecU32Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecU256Args GetAsInsertVecU256(const FReducer& Reducer) { - return Reducer.GetAsInsertVecU256(); - } + ::SpacetimeDB::query_builder::Col> N; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecU32(const FInsertVecU32Args& Value) { - return FReducer::InsertVecU32(Value); - } +struct TESTCLIENT_API FVecU32IxCols +{ + explicit FVecU32IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecU32(const FReducer& Reducer) { return Reducer.IsInsertVecU32(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecU32Args GetAsInsertVecU32(const FReducer& Reducer) { - return Reducer.GetAsInsertVecU32(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecU64(const FInsertVecU64Args& Value) { - return FReducer::InsertVecU64(Value); - } +struct TESTCLIENT_API FVecU64Cols +{ + explicit FVecU64Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecU64(const FReducer& Reducer) { return Reducer.IsInsertVecU64(); } + ::SpacetimeDB::query_builder::Col> N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecU64Args GetAsInsertVecU64(const FReducer& Reducer) { - return Reducer.GetAsInsertVecU64(); - } +struct TESTCLIENT_API FVecU64IxCols +{ + explicit FVecU64IxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecU8(const FInsertVecU8Args& Value) { - return FReducer::InsertVecU8(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecU8(const FReducer& Reducer) { return Reducer.IsInsertVecU8(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecU8Args GetAsInsertVecU8(const FReducer& Reducer) { - return Reducer.GetAsInsertVecU8(); - } +struct TESTCLIENT_API FVecU8Cols +{ + explicit FVecU8Cols(const char* TableName) + : N(TableName, "n") {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecUnitStruct(const FInsertVecUnitStructArgs& Value) { - return FReducer::InsertVecUnitStruct(Value); - } + ::SpacetimeDB::query_builder::Col> N; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecUnitStruct(const FReducer& Reducer) { return Reducer.IsInsertVecUnitStruct(); } +struct TESTCLIENT_API FVecU8IxCols +{ + explicit FVecU8IxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecUnitStructArgs GetAsInsertVecUnitStruct(const FReducer& Reducer) { - return Reducer.GetAsInsertVecUnitStruct(); - } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer InsertVecUuid(const FInsertVecUuidArgs& Value) { - return FReducer::InsertVecUuid(Value); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsInsertVecUuid(const FReducer& Reducer) { return Reducer.IsInsertVecUuid(); } +struct TESTCLIENT_API FVecUnitStructCols +{ + explicit FVecUnitStructCols(const char* TableName) + : S(TableName, "s") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FInsertVecUuidArgs GetAsInsertVecUuid(const FReducer& Reducer) { - return Reducer.GetAsInsertVecUuid(); - } + ::SpacetimeDB::query_builder::Col> S; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer NoOpSucceeds(const FNoOpSucceedsArgs& Value) { - return FReducer::NoOpSucceeds(Value); - } +struct TESTCLIENT_API FVecUnitStructIxCols +{ + explicit FVecUnitStructIxCols(const char* TableName) + {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsNoOpSucceeds(const FReducer& Reducer) { return Reducer.IsNoOpSucceeds(); } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FNoOpSucceedsArgs GetAsNoOpSucceeds(const FReducer& Reducer) { - return Reducer.GetAsNoOpSucceeds(); - } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer SortedUuidsInsert(const FSortedUuidsInsertArgs& Value) { - return FReducer::SortedUuidsInsert(Value); - } +struct TESTCLIENT_API FVecUuidCols +{ + explicit FVecUuidCols(const char* TableName) + : U(TableName, "u") {} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsSortedUuidsInsert(const FReducer& Reducer) { return Reducer.IsSortedUuidsInsert(); } + ::SpacetimeDB::query_builder::Col> U; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FSortedUuidsInsertArgs GetAsSortedUuidsInsert(const FReducer& Reducer) { - return Reducer.GetAsSortedUuidsInsert(); - } +struct TESTCLIENT_API FVecUuidIxCols +{ + explicit FVecUuidIxCols(const char* TableName) + {} - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateIndexedSimpleEnum(const FUpdateIndexedSimpleEnumArgs& Value) { - return FReducer::UpdateIndexedSimpleEnum(Value); - } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateIndexedSimpleEnum(const FReducer& Reducer) { return Reducer.IsUpdateIndexedSimpleEnum(); } +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateIndexedSimpleEnumArgs GetAsUpdateIndexedSimpleEnum(const FReducer& Reducer) { - return Reducer.GetAsUpdateIndexedSimpleEnum(); - } +struct TESTCLIENT_API FFrom +{ + [[nodiscard]] ::SpacetimeDB::query_builder::Table BtreeU32() const { return ::SpacetimeDB::query_builder::Table("btree_u_32", FBTreeU32Cols("btree_u_32"), FBTreeU32IxCols("btree_u_32")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table IndexedSimpleEnum() const { return ::SpacetimeDB::query_builder::Table("indexed_simple_enum", FIndexedSimpleEnumCols("indexed_simple_enum"), FIndexedSimpleEnumIxCols("indexed_simple_enum")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table LargeTable() const { return ::SpacetimeDB::query_builder::Table("large_table", FLargeTableCols("large_table"), FLargeTableIxCols("large_table")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneBool() const { return ::SpacetimeDB::query_builder::Table("one_bool", FOneBoolCols("one_bool"), FOneBoolIxCols("one_bool")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneByteStruct() const { return ::SpacetimeDB::query_builder::Table("one_byte_struct", FOneByteStructCols("one_byte_struct"), FOneByteStructIxCols("one_byte_struct")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneConnectionId() const { return ::SpacetimeDB::query_builder::Table("one_connection_id", FOneConnectionIdCols("one_connection_id"), FOneConnectionIdIxCols("one_connection_id")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneEnumWithPayload() const { return ::SpacetimeDB::query_builder::Table("one_enum_with_payload", FOneEnumWithPayloadCols("one_enum_with_payload"), FOneEnumWithPayloadIxCols("one_enum_with_payload")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneEveryPrimitiveStruct() const { return ::SpacetimeDB::query_builder::Table("one_every_primitive_struct", FOneEveryPrimitiveStructCols("one_every_primitive_struct"), FOneEveryPrimitiveStructIxCols("one_every_primitive_struct")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneEveryVecStruct() const { return ::SpacetimeDB::query_builder::Table("one_every_vec_struct", FOneEveryVecStructCols("one_every_vec_struct"), FOneEveryVecStructIxCols("one_every_vec_struct")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneF32() const { return ::SpacetimeDB::query_builder::Table("one_f_32", FOneF32Cols("one_f_32"), FOneF32IxCols("one_f_32")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneF64() const { return ::SpacetimeDB::query_builder::Table("one_f_64", FOneF64Cols("one_f_64"), FOneF64IxCols("one_f_64")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneI128() const { return ::SpacetimeDB::query_builder::Table("one_i_128", FOneI128Cols("one_i_128"), FOneI128IxCols("one_i_128")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneI16() const { return ::SpacetimeDB::query_builder::Table("one_i_16", FOneI16Cols("one_i_16"), FOneI16IxCols("one_i_16")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneI256() const { return ::SpacetimeDB::query_builder::Table("one_i_256", FOneI256Cols("one_i_256"), FOneI256IxCols("one_i_256")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneI32() const { return ::SpacetimeDB::query_builder::Table("one_i_32", FOneI32Cols("one_i_32"), FOneI32IxCols("one_i_32")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneI64() const { return ::SpacetimeDB::query_builder::Table("one_i_64", FOneI64Cols("one_i_64"), FOneI64IxCols("one_i_64")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneI8() const { return ::SpacetimeDB::query_builder::Table("one_i_8", FOneI8Cols("one_i_8"), FOneI8IxCols("one_i_8")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneIdentity() const { return ::SpacetimeDB::query_builder::Table("one_identity", FOneIdentityCols("one_identity"), FOneIdentityIxCols("one_identity")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneSimpleEnum() const { return ::SpacetimeDB::query_builder::Table("one_simple_enum", FOneSimpleEnumCols("one_simple_enum"), FOneSimpleEnumIxCols("one_simple_enum")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneString() const { return ::SpacetimeDB::query_builder::Table("one_string", FOneStringCols("one_string"), FOneStringIxCols("one_string")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneTimestamp() const { return ::SpacetimeDB::query_builder::Table("one_timestamp", FOneTimestampCols("one_timestamp"), FOneTimestampIxCols("one_timestamp")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneU128() const { return ::SpacetimeDB::query_builder::Table("one_u_128", FOneU128Cols("one_u_128"), FOneU128IxCols("one_u_128")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneU16() const { return ::SpacetimeDB::query_builder::Table("one_u_16", FOneU16Cols("one_u_16"), FOneU16IxCols("one_u_16")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneU256() const { return ::SpacetimeDB::query_builder::Table("one_u_256", FOneU256Cols("one_u_256"), FOneU256IxCols("one_u_256")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneU32() const { return ::SpacetimeDB::query_builder::Table("one_u_32", FOneU32Cols("one_u_32"), FOneU32IxCols("one_u_32")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneU64() const { return ::SpacetimeDB::query_builder::Table("one_u_64", FOneU64Cols("one_u_64"), FOneU64IxCols("one_u_64")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneU8() const { return ::SpacetimeDB::query_builder::Table("one_u_8", FOneU8Cols("one_u_8"), FOneU8IxCols("one_u_8")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneUnitStruct() const { return ::SpacetimeDB::query_builder::Table("one_unit_struct", FOneUnitStructCols("one_unit_struct"), FOneUnitStructIxCols("one_unit_struct")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OneUuid() const { return ::SpacetimeDB::query_builder::Table("one_uuid", FOneUuidCols("one_uuid"), FOneUuidIxCols("one_uuid")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OptionEveryPrimitiveStruct() const { return ::SpacetimeDB::query_builder::Table("option_every_primitive_struct", FOptionEveryPrimitiveStructCols("option_every_primitive_struct"), FOptionEveryPrimitiveStructIxCols("option_every_primitive_struct")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OptionI32() const { return ::SpacetimeDB::query_builder::Table("option_i_32", FOptionI32Cols("option_i_32"), FOptionI32IxCols("option_i_32")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OptionIdentity() const { return ::SpacetimeDB::query_builder::Table("option_identity", FOptionIdentityCols("option_identity"), FOptionIdentityIxCols("option_identity")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OptionSimpleEnum() const { return ::SpacetimeDB::query_builder::Table("option_simple_enum", FOptionSimpleEnumCols("option_simple_enum"), FOptionSimpleEnumIxCols("option_simple_enum")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OptionString() const { return ::SpacetimeDB::query_builder::Table("option_string", FOptionStringCols("option_string"), FOptionStringIxCols("option_string")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OptionUuid() const { return ::SpacetimeDB::query_builder::Table("option_uuid", FOptionUuidCols("option_uuid"), FOptionUuidIxCols("option_uuid")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table OptionVecOptionI32() const { return ::SpacetimeDB::query_builder::Table("option_vec_option_i_32", FOptionVecOptionI32Cols("option_vec_option_i_32"), FOptionVecOptionI32IxCols("option_vec_option_i_32")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkBool() const { return ::SpacetimeDB::query_builder::Table("pk_bool", FPkBoolCols("pk_bool"), FPkBoolIxCols("pk_bool")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkConnectionId() const { return ::SpacetimeDB::query_builder::Table("pk_connection_id", FPkConnectionIdCols("pk_connection_id"), FPkConnectionIdIxCols("pk_connection_id")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkI128() const { return ::SpacetimeDB::query_builder::Table("pk_i_128", FPkI128Cols("pk_i_128"), FPkI128IxCols("pk_i_128")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkI16() const { return ::SpacetimeDB::query_builder::Table("pk_i_16", FPkI16Cols("pk_i_16"), FPkI16IxCols("pk_i_16")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkI256() const { return ::SpacetimeDB::query_builder::Table("pk_i_256", FPkI256Cols("pk_i_256"), FPkI256IxCols("pk_i_256")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkI32() const { return ::SpacetimeDB::query_builder::Table("pk_i_32", FPkI32Cols("pk_i_32"), FPkI32IxCols("pk_i_32")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkI64() const { return ::SpacetimeDB::query_builder::Table("pk_i_64", FPkI64Cols("pk_i_64"), FPkI64IxCols("pk_i_64")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkI8() const { return ::SpacetimeDB::query_builder::Table("pk_i_8", FPkI8Cols("pk_i_8"), FPkI8IxCols("pk_i_8")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkIdentity() const { return ::SpacetimeDB::query_builder::Table("pk_identity", FPkIdentityCols("pk_identity"), FPkIdentityIxCols("pk_identity")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkSimpleEnum() const { return ::SpacetimeDB::query_builder::Table("pk_simple_enum", FPkSimpleEnumCols("pk_simple_enum"), FPkSimpleEnumIxCols("pk_simple_enum")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkString() const { return ::SpacetimeDB::query_builder::Table("pk_string", FPkStringCols("pk_string"), FPkStringIxCols("pk_string")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkU128() const { return ::SpacetimeDB::query_builder::Table("pk_u_128", FPkU128Cols("pk_u_128"), FPkU128IxCols("pk_u_128")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkU16() const { return ::SpacetimeDB::query_builder::Table("pk_u_16", FPkU16Cols("pk_u_16"), FPkU16IxCols("pk_u_16")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkU256() const { return ::SpacetimeDB::query_builder::Table("pk_u_256", FPkU256Cols("pk_u_256"), FPkU256IxCols("pk_u_256")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkU32() const { return ::SpacetimeDB::query_builder::Table("pk_u_32", FPkU32Cols("pk_u_32"), FPkU32IxCols("pk_u_32")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkU32Two() const { return ::SpacetimeDB::query_builder::Table("pk_u_32_two", FPkU32TwoCols("pk_u_32_two"), FPkU32TwoIxCols("pk_u_32_two")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkU64() const { return ::SpacetimeDB::query_builder::Table("pk_u_64", FPkU64Cols("pk_u_64"), FPkU64IxCols("pk_u_64")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkU8() const { return ::SpacetimeDB::query_builder::Table("pk_u_8", FPkU8Cols("pk_u_8"), FPkU8IxCols("pk_u_8")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkUuid() const { return ::SpacetimeDB::query_builder::Table("pk_uuid", FPkUuidCols("pk_uuid"), FPkUuidIxCols("pk_uuid")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table ResultEveryPrimitiveStructString() const { return ::SpacetimeDB::query_builder::Table("result_every_primitive_struct_string", FResultEveryPrimitiveStructStringCols("result_every_primitive_struct_string"), FResultEveryPrimitiveStructStringIxCols("result_every_primitive_struct_string")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table ResultI32String() const { return ::SpacetimeDB::query_builder::Table("result_i_32_string", FResultI32StringCols("result_i_32_string"), FResultI32StringIxCols("result_i_32_string")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table ResultIdentityString() const { return ::SpacetimeDB::query_builder::Table("result_identity_string", FResultIdentityStringCols("result_identity_string"), FResultIdentityStringIxCols("result_identity_string")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table ResultSimpleEnumI32() const { return ::SpacetimeDB::query_builder::Table("result_simple_enum_i_32", FResultSimpleEnumI32Cols("result_simple_enum_i_32"), FResultSimpleEnumI32IxCols("result_simple_enum_i_32")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table ResultStringI32() const { return ::SpacetimeDB::query_builder::Table("result_string_i_32", FResultStringI32Cols("result_string_i_32"), FResultStringI32IxCols("result_string_i_32")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table ResultVecI32String() const { return ::SpacetimeDB::query_builder::Table("result_vec_i_32_string", FResultVecI32StringCols("result_vec_i_32_string"), FResultVecI32StringIxCols("result_vec_i_32_string")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table ScheduledTable() const { return ::SpacetimeDB::query_builder::Table("scheduled_table", FScheduledTableCols("scheduled_table"), FScheduledTableIxCols("scheduled_table")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table TableHoldsTable() const { return ::SpacetimeDB::query_builder::Table("table_holds_table", FTableHoldsTableCols("table_holds_table"), FTableHoldsTableIxCols("table_holds_table")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueBool() const { return ::SpacetimeDB::query_builder::Table("unique_bool", FUniqueBoolCols("unique_bool"), FUniqueBoolIxCols("unique_bool")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueConnectionId() const { return ::SpacetimeDB::query_builder::Table("unique_connection_id", FUniqueConnectionIdCols("unique_connection_id"), FUniqueConnectionIdIxCols("unique_connection_id")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueI128() const { return ::SpacetimeDB::query_builder::Table("unique_i_128", FUniqueI128Cols("unique_i_128"), FUniqueI128IxCols("unique_i_128")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueI16() const { return ::SpacetimeDB::query_builder::Table("unique_i_16", FUniqueI16Cols("unique_i_16"), FUniqueI16IxCols("unique_i_16")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueI256() const { return ::SpacetimeDB::query_builder::Table("unique_i_256", FUniqueI256Cols("unique_i_256"), FUniqueI256IxCols("unique_i_256")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueI32() const { return ::SpacetimeDB::query_builder::Table("unique_i_32", FUniqueI32Cols("unique_i_32"), FUniqueI32IxCols("unique_i_32")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueI64() const { return ::SpacetimeDB::query_builder::Table("unique_i_64", FUniqueI64Cols("unique_i_64"), FUniqueI64IxCols("unique_i_64")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueI8() const { return ::SpacetimeDB::query_builder::Table("unique_i_8", FUniqueI8Cols("unique_i_8"), FUniqueI8IxCols("unique_i_8")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueIdentity() const { return ::SpacetimeDB::query_builder::Table("unique_identity", FUniqueIdentityCols("unique_identity"), FUniqueIdentityIxCols("unique_identity")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueString() const { return ::SpacetimeDB::query_builder::Table("unique_string", FUniqueStringCols("unique_string"), FUniqueStringIxCols("unique_string")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueU128() const { return ::SpacetimeDB::query_builder::Table("unique_u_128", FUniqueU128Cols("unique_u_128"), FUniqueU128IxCols("unique_u_128")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueU16() const { return ::SpacetimeDB::query_builder::Table("unique_u_16", FUniqueU16Cols("unique_u_16"), FUniqueU16IxCols("unique_u_16")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueU256() const { return ::SpacetimeDB::query_builder::Table("unique_u_256", FUniqueU256Cols("unique_u_256"), FUniqueU256IxCols("unique_u_256")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueU32() const { return ::SpacetimeDB::query_builder::Table("unique_u_32", FUniqueU32Cols("unique_u_32"), FUniqueU32IxCols("unique_u_32")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueU64() const { return ::SpacetimeDB::query_builder::Table("unique_u_64", FUniqueU64Cols("unique_u_64"), FUniqueU64IxCols("unique_u_64")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueU8() const { return ::SpacetimeDB::query_builder::Table("unique_u_8", FUniqueU8Cols("unique_u_8"), FUniqueU8IxCols("unique_u_8")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table UniqueUuid() const { return ::SpacetimeDB::query_builder::Table("unique_uuid", FUniqueUuidCols("unique_uuid"), FUniqueUuidIxCols("unique_uuid")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table Users() const { return ::SpacetimeDB::query_builder::Table("users", FUsersCols("users"), FUsersIxCols("users")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecBool() const { return ::SpacetimeDB::query_builder::Table("vec_bool", FVecBoolCols("vec_bool"), FVecBoolIxCols("vec_bool")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecByteStruct() const { return ::SpacetimeDB::query_builder::Table("vec_byte_struct", FVecByteStructCols("vec_byte_struct"), FVecByteStructIxCols("vec_byte_struct")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecConnectionId() const { return ::SpacetimeDB::query_builder::Table("vec_connection_id", FVecConnectionIdCols("vec_connection_id"), FVecConnectionIdIxCols("vec_connection_id")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecEnumWithPayload() const { return ::SpacetimeDB::query_builder::Table("vec_enum_with_payload", FVecEnumWithPayloadCols("vec_enum_with_payload"), FVecEnumWithPayloadIxCols("vec_enum_with_payload")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecEveryPrimitiveStruct() const { return ::SpacetimeDB::query_builder::Table("vec_every_primitive_struct", FVecEveryPrimitiveStructCols("vec_every_primitive_struct"), FVecEveryPrimitiveStructIxCols("vec_every_primitive_struct")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecEveryVecStruct() const { return ::SpacetimeDB::query_builder::Table("vec_every_vec_struct", FVecEveryVecStructCols("vec_every_vec_struct"), FVecEveryVecStructIxCols("vec_every_vec_struct")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecF32() const { return ::SpacetimeDB::query_builder::Table("vec_f_32", FVecF32Cols("vec_f_32"), FVecF32IxCols("vec_f_32")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecF64() const { return ::SpacetimeDB::query_builder::Table("vec_f_64", FVecF64Cols("vec_f_64"), FVecF64IxCols("vec_f_64")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecI128() const { return ::SpacetimeDB::query_builder::Table("vec_i_128", FVecI128Cols("vec_i_128"), FVecI128IxCols("vec_i_128")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecI16() const { return ::SpacetimeDB::query_builder::Table("vec_i_16", FVecI16Cols("vec_i_16"), FVecI16IxCols("vec_i_16")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecI256() const { return ::SpacetimeDB::query_builder::Table("vec_i_256", FVecI256Cols("vec_i_256"), FVecI256IxCols("vec_i_256")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecI32() const { return ::SpacetimeDB::query_builder::Table("vec_i_32", FVecI32Cols("vec_i_32"), FVecI32IxCols("vec_i_32")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecI64() const { return ::SpacetimeDB::query_builder::Table("vec_i_64", FVecI64Cols("vec_i_64"), FVecI64IxCols("vec_i_64")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecI8() const { return ::SpacetimeDB::query_builder::Table("vec_i_8", FVecI8Cols("vec_i_8"), FVecI8IxCols("vec_i_8")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecIdentity() const { return ::SpacetimeDB::query_builder::Table("vec_identity", FVecIdentityCols("vec_identity"), FVecIdentityIxCols("vec_identity")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecSimpleEnum() const { return ::SpacetimeDB::query_builder::Table("vec_simple_enum", FVecSimpleEnumCols("vec_simple_enum"), FVecSimpleEnumIxCols("vec_simple_enum")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecString() const { return ::SpacetimeDB::query_builder::Table("vec_string", FVecStringCols("vec_string"), FVecStringIxCols("vec_string")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecTimestamp() const { return ::SpacetimeDB::query_builder::Table("vec_timestamp", FVecTimestampCols("vec_timestamp"), FVecTimestampIxCols("vec_timestamp")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecU128() const { return ::SpacetimeDB::query_builder::Table("vec_u_128", FVecU128Cols("vec_u_128"), FVecU128IxCols("vec_u_128")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecU16() const { return ::SpacetimeDB::query_builder::Table("vec_u_16", FVecU16Cols("vec_u_16"), FVecU16IxCols("vec_u_16")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecU256() const { return ::SpacetimeDB::query_builder::Table("vec_u_256", FVecU256Cols("vec_u_256"), FVecU256IxCols("vec_u_256")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecU32() const { return ::SpacetimeDB::query_builder::Table("vec_u_32", FVecU32Cols("vec_u_32"), FVecU32IxCols("vec_u_32")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecU64() const { return ::SpacetimeDB::query_builder::Table("vec_u_64", FVecU64Cols("vec_u_64"), FVecU64IxCols("vec_u_64")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecU8() const { return ::SpacetimeDB::query_builder::Table("vec_u_8", FVecU8Cols("vec_u_8"), FVecU8IxCols("vec_u_8")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecUnitStruct() const { return ::SpacetimeDB::query_builder::Table("vec_unit_struct", FVecUnitStructCols("vec_unit_struct"), FVecUnitStructIxCols("vec_unit_struct")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table VecUuid() const { return ::SpacetimeDB::query_builder::Table("vec_uuid", FVecUuidCols("vec_uuid"), FVecUuidIxCols("vec_uuid")); } +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkBool(const FUpdatePkBoolArgs& Value) { - return FReducer::UpdatePkBool(Value); +struct TESTCLIENT_API FQueryBuilder +{ + FFrom From; + + static TArray AllTablesSqlQueries() + { + TArray Sql; + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.BtreeU32().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.IndexedSimpleEnum().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.LargeTable().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneBool().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneByteStruct().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneConnectionId().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneEnumWithPayload().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneEveryPrimitiveStruct().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneEveryVecStruct().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneF32().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneF64().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneI128().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneI16().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneI256().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneI32().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneI64().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneI8().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneIdentity().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneSimpleEnum().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneString().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneTimestamp().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneU128().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneU16().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneU256().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneU32().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneU64().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneU8().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneUnitStruct().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneUuid().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OptionEveryPrimitiveStruct().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OptionI32().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OptionIdentity().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OptionSimpleEnum().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OptionString().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OptionUuid().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.OptionVecOptionI32().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkBool().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkConnectionId().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkI128().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkI16().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkI256().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkI32().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkI64().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkI8().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkIdentity().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkSimpleEnum().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkString().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkU128().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkU16().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkU256().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkU32().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkU32Two().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkU64().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkU8().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkUuid().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.ResultEveryPrimitiveStructString().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.ResultI32String().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.ResultIdentityString().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.ResultSimpleEnumI32().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.ResultStringI32().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.ResultVecI32String().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.ScheduledTable().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.TableHoldsTable().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueBool().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueConnectionId().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueI128().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueI16().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueI256().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueI32().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueI64().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueI8().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueIdentity().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueString().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueU128().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueU16().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueU256().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueU32().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueU64().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueU8().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueUuid().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.Users().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecBool().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecByteStruct().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecConnectionId().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecEnumWithPayload().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecEveryPrimitiveStruct().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecEveryVecStruct().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecF32().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecF64().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecI128().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecI16().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecI256().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecI32().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecI64().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecI8().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecIdentity().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecSimpleEnum().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecString().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecTimestamp().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecU128().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecU16().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecU256().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecU32().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecU64().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecU8().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecUnitStruct().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecUuid().into_sql().c_str()))); + return Sql; } +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkBool(const FReducer& Reducer) { return Reducer.IsUpdatePkBool(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FBlueprintQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkBoolArgs GetAsUpdatePkBool(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkBool(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkConnectionId(const FUpdatePkConnectionIdArgs& Value) { - return FReducer::UpdatePkConnectionId(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkConnectionId(const FReducer& Reducer) { return Reducer.IsUpdatePkConnectionId(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FBlueprintPredicate +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkConnectionIdArgs GetAsUpdatePkConnectionId(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkConnectionId(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkI128(const FUpdatePkI128Args& Value) { - return FReducer::UpdatePkI128(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkI128(const FReducer& Reducer) { return Reducer.IsUpdatePkI128(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FBtreeU32Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkI128Args GetAsUpdatePkI128(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkI128(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkI16(const FUpdatePkI16Args& Value) { - return FReducer::UpdatePkI16(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkI16(const FReducer& Reducer) { return Reducer.IsUpdatePkI16(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FIndexedSimpleEnumQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkI16Args GetAsUpdatePkI16(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkI16(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkI256(const FUpdatePkI256Args& Value) { - return FReducer::UpdatePkI256(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkI256(const FReducer& Reducer) { return Reducer.IsUpdatePkI256(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FLargeTableQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkI256Args GetAsUpdatePkI256(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkI256(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkI32(const FUpdatePkI32Args& Value) { - return FReducer::UpdatePkI32(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkI32(const FReducer& Reducer) { return Reducer.IsUpdatePkI32(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneBoolQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkI32Args GetAsUpdatePkI32(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkI32(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkI64(const FUpdatePkI64Args& Value) { - return FReducer::UpdatePkI64(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkI64(const FReducer& Reducer) { return Reducer.IsUpdatePkI64(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneByteStructQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkI64Args GetAsUpdatePkI64(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkI64(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkI8(const FUpdatePkI8Args& Value) { - return FReducer::UpdatePkI8(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkI8(const FReducer& Reducer) { return Reducer.IsUpdatePkI8(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneConnectionIdQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkI8Args GetAsUpdatePkI8(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkI8(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkIdentity(const FUpdatePkIdentityArgs& Value) { - return FReducer::UpdatePkIdentity(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkIdentity(const FReducer& Reducer) { return Reducer.IsUpdatePkIdentity(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneEnumWithPayloadQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkIdentityArgs GetAsUpdatePkIdentity(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkIdentity(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkSimpleEnum(const FUpdatePkSimpleEnumArgs& Value) { - return FReducer::UpdatePkSimpleEnum(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkSimpleEnum(const FReducer& Reducer) { return Reducer.IsUpdatePkSimpleEnum(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneEveryPrimitiveStructQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkSimpleEnumArgs GetAsUpdatePkSimpleEnum(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkSimpleEnum(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkString(const FUpdatePkStringArgs& Value) { - return FReducer::UpdatePkString(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkString(const FReducer& Reducer) { return Reducer.IsUpdatePkString(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneEveryVecStructQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkStringArgs GetAsUpdatePkString(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkString(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkU128(const FUpdatePkU128Args& Value) { - return FReducer::UpdatePkU128(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkU128(const FReducer& Reducer) { return Reducer.IsUpdatePkU128(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneF32Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkU128Args GetAsUpdatePkU128(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkU128(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkU16(const FUpdatePkU16Args& Value) { - return FReducer::UpdatePkU16(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkU16(const FReducer& Reducer) { return Reducer.IsUpdatePkU16(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneF64Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkU16Args GetAsUpdatePkU16(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkU16(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkU256(const FUpdatePkU256Args& Value) { - return FReducer::UpdatePkU256(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkU256(const FReducer& Reducer) { return Reducer.IsUpdatePkU256(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneI128Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkU256Args GetAsUpdatePkU256(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkU256(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkU32(const FUpdatePkU32Args& Value) { - return FReducer::UpdatePkU32(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkU32(const FReducer& Reducer) { return Reducer.IsUpdatePkU32(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneI16Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkU32Args GetAsUpdatePkU32(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkU32(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkU32Two(const FUpdatePkU32TwoArgs& Value) { - return FReducer::UpdatePkU32Two(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkU32Two(const FReducer& Reducer) { return Reducer.IsUpdatePkU32Two(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneI256Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkU32TwoArgs GetAsUpdatePkU32Two(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkU32Two(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkU64(const FUpdatePkU64Args& Value) { - return FReducer::UpdatePkU64(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkU64(const FReducer& Reducer) { return Reducer.IsUpdatePkU64(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneI32Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkU64Args GetAsUpdatePkU64(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkU64(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkU8(const FUpdatePkU8Args& Value) { - return FReducer::UpdatePkU8(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkU8(const FReducer& Reducer) { return Reducer.IsUpdatePkU8(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneI64Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkU8Args GetAsUpdatePkU8(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkU8(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdatePkUuid(const FUpdatePkUuidArgs& Value) { - return FReducer::UpdatePkUuid(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdatePkUuid(const FReducer& Reducer) { return Reducer.IsUpdatePkUuid(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneI8Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdatePkUuidArgs GetAsUpdatePkUuid(const FReducer& Reducer) { - return Reducer.GetAsUpdatePkUuid(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueBool(const FUpdateUniqueBoolArgs& Value) { - return FReducer::UpdateUniqueBool(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueBool(const FReducer& Reducer) { return Reducer.IsUpdateUniqueBool(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneIdentityQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueBoolArgs GetAsUpdateUniqueBool(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueBool(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueConnectionId(const FUpdateUniqueConnectionIdArgs& Value) { - return FReducer::UpdateUniqueConnectionId(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueConnectionId(const FReducer& Reducer) { return Reducer.IsUpdateUniqueConnectionId(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneSimpleEnumQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueConnectionIdArgs GetAsUpdateUniqueConnectionId(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueConnectionId(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueI128(const FUpdateUniqueI128Args& Value) { - return FReducer::UpdateUniqueI128(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueI128(const FReducer& Reducer) { return Reducer.IsUpdateUniqueI128(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneStringQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueI128Args GetAsUpdateUniqueI128(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueI128(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueI16(const FUpdateUniqueI16Args& Value) { - return FReducer::UpdateUniqueI16(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueI16(const FReducer& Reducer) { return Reducer.IsUpdateUniqueI16(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneTimestampQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueI16Args GetAsUpdateUniqueI16(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueI16(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueI256(const FUpdateUniqueI256Args& Value) { - return FReducer::UpdateUniqueI256(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueI256(const FReducer& Reducer) { return Reducer.IsUpdateUniqueI256(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneU128Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueI256Args GetAsUpdateUniqueI256(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueI256(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueI32(const FUpdateUniqueI32Args& Value) { - return FReducer::UpdateUniqueI32(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueI32(const FReducer& Reducer) { return Reducer.IsUpdateUniqueI32(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneU16Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueI32Args GetAsUpdateUniqueI32(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueI32(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueI64(const FUpdateUniqueI64Args& Value) { - return FReducer::UpdateUniqueI64(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueI64(const FReducer& Reducer) { return Reducer.IsUpdateUniqueI64(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneU256Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueI64Args GetAsUpdateUniqueI64(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueI64(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueI8(const FUpdateUniqueI8Args& Value) { - return FReducer::UpdateUniqueI8(Value); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneU32Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueI8(const FReducer& Reducer) { return Reducer.IsUpdateUniqueI8(); } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueI8Args GetAsUpdateUniqueI8(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueI8(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueIdentity(const FUpdateUniqueIdentityArgs& Value) { - return FReducer::UpdateUniqueIdentity(Value); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneU64Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueIdentity(const FReducer& Reducer) { return Reducer.IsUpdateUniqueIdentity(); } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueIdentityArgs GetAsUpdateUniqueIdentity(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueIdentity(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueString(const FUpdateUniqueStringArgs& Value) { - return FReducer::UpdateUniqueString(Value); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneU8Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueString(const FReducer& Reducer) { return Reducer.IsUpdateUniqueString(); } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueStringArgs GetAsUpdateUniqueString(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueString(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueU128(const FUpdateUniqueU128Args& Value) { - return FReducer::UpdateUniqueU128(Value); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneUnitStructQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueU128(const FReducer& Reducer) { return Reducer.IsUpdateUniqueU128(); } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueU128Args GetAsUpdateUniqueU128(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueU128(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueU16(const FUpdateUniqueU16Args& Value) { - return FReducer::UpdateUniqueU16(Value); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOneUuidQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueU16(const FReducer& Reducer) { return Reducer.IsUpdateUniqueU16(); } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueU16Args GetAsUpdateUniqueU16(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueU16(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueU256(const FUpdateUniqueU256Args& Value) { - return FReducer::UpdateUniqueU256(Value); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOptionEveryPrimitiveStructQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueU256(const FReducer& Reducer) { return Reducer.IsUpdateUniqueU256(); } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueU256Args GetAsUpdateUniqueU256(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueU256(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueU32(const FUpdateUniqueU32Args& Value) { - return FReducer::UpdateUniqueU32(Value); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOptionI32Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueU32(const FReducer& Reducer) { return Reducer.IsUpdateUniqueU32(); } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueU32Args GetAsUpdateUniqueU32(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueU32(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueU64(const FUpdateUniqueU64Args& Value) { - return FReducer::UpdateUniqueU64(Value); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOptionIdentityQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueU64(const FReducer& Reducer) { return Reducer.IsUpdateUniqueU64(); } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueU64Args GetAsUpdateUniqueU64(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueU64(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueU8(const FUpdateUniqueU8Args& Value) { - return FReducer::UpdateUniqueU8(Value); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOptionSimpleEnumQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueU8(const FReducer& Reducer) { return Reducer.IsUpdateUniqueU8(); } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueU8Args GetAsUpdateUniqueU8(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueU8(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") - static FReducer UpdateUniqueUuid(const FUpdateUniqueUuidArgs& Value) { - return FReducer::UpdateUniqueUuid(Value); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOptionStringQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static bool IsUpdateUniqueUuid(const FReducer& Reducer) { return Reducer.IsUpdateUniqueUuid(); } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") - static FUpdateUniqueUuidArgs GetAsUpdateUniqueUuid(const FReducer& Reducer) { - return Reducer.GetAsUpdateUniqueUuid(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; }; -/** Metadata describing a reducer run. */ USTRUCT(BlueprintType) -struct TESTCLIENT_API FTestClientReducerEvent +struct TESTCLIENT_API FOptionUuidQuery { - GENERATED_BODY() + GENERATED_BODY() - /** Timestamp for when the reducer executed */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") - FSpacetimeDBTimestamp Timestamp; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - /** Result status of the reducer */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") - FSpacetimeDBStatus Status; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - /** Identity that initiated the call */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") - FSpacetimeDBIdentity CallerIdentity; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FOptionVecOptionI32Query +{ + GENERATED_BODY() - /** Connection ID for the caller */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") - FSpacetimeDBConnectionId CallerConnectionId; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - /** Energy consumed while executing */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") - FEnergyQuantaType EnergyConsumed; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - /** Detailed call information */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") - FReducer Reducer; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkBoolQuery +{ + GENERATED_BODY() - FORCEINLINE bool operator==(const FTestClientReducerEvent& Other) const - { - return Status == Other.Status && Timestamp == Other.Timestamp && CallerIdentity == Other.CallerIdentity && - CallerConnectionId == Other.CallerConnectionId && EnergyConsumed == Other.EnergyConsumed && - Reducer == Other.Reducer; - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - FORCEINLINE bool operator!=(const FTestClientReducerEvent& Other) const - { - return !(*this == Other); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; }; -// No procedures defined in this module. -/** Metadata describing a procedure run. */ USTRUCT(BlueprintType) -struct TESTCLIENT_API FTestClientProcedureEvent +struct TESTCLIENT_API FPkConnectionIdQuery { - GENERATED_BODY() + GENERATED_BODY() - /** Timestamp for when the procedure executed */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") - FSpacetimeDBTimestamp Timestamp; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - /** Result status of the procedure */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") - FSpacetimeDBProcedureStatus Status; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - /** Identity that initiated the call */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") - FSpacetimeDBTimeDuration TotalHostExecutionDuration; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkI128Query +{ + GENERATED_BODY() - FTestClientProcedureEvent() { - } - FTestClientProcedureEvent(FProcedureEvent Event) { - Timestamp = Event.Timestamp; - Status = FSpacetimeDBProcedureStatus::FromStatus(Event.Status); - TotalHostExecutionDuration = Event.TotalHostExecutionDuration; - } - FORCEINLINE bool operator==(const FTestClientProcedureEvent& Other) const - { - return Status == Other.Status && Timestamp == Other.Timestamp && - TotalHostExecutionDuration == Other.TotalHostExecutionDuration; - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - FORCEINLINE bool operator!=(const FTestClientProcedureEvent& Other) const - { - return !(*this == Other); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; }; -/** Represents event with variant message data. */ USTRUCT(BlueprintType) -struct TESTCLIENT_API FTestClientEvent +struct TESTCLIENT_API FPkI16Query { - GENERATED_BODY() + GENERATED_BODY() - /** Tagged union holding reducer call, unit events, or error string */ - TVariant MessageData; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - /** Type tag indicating what this event represents */ - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - ESpacetimeDBEventTag Tag = ESpacetimeDBEventTag::UnknownTransaction; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - /** === Static factory methods ===*/ - static FTestClientEvent Reducer(const FReducer& Value) - { - FTestClientEvent Obj; - Obj.Tag = ESpacetimeDBEventTag::Reducer; - Obj.MessageData.Set(Value); - return Obj; - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkI256Query +{ + GENERATED_BODY() - static FTestClientEvent SubscribeApplied(const FSpacetimeDBUnit& Value) - { - FTestClientEvent Obj; - Obj.Tag = ESpacetimeDBEventTag::SubscribeApplied; - Obj.MessageData.Set(Value); - return Obj; - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - static FTestClientEvent UnsubscribeApplied(const FSpacetimeDBUnit& Value) - { - FTestClientEvent Obj; - Obj.Tag = ESpacetimeDBEventTag::UnsubscribeApplied; - Obj.MessageData.Set(Value); - return Obj; - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - static FTestClientEvent Disconnected(const FSpacetimeDBUnit& Value) - { - FTestClientEvent Obj; - Obj.Tag = ESpacetimeDBEventTag::Disconnected; - Obj.MessageData.Set(Value); - return Obj; - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkI32Query +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - static FTestClientEvent Transaction(const FSpacetimeDBUnit& Value) - { - FTestClientEvent Obj; - Obj.Tag = ESpacetimeDBEventTag::Transaction; - Obj.MessageData.Set(Value); - return Obj; - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkI64Query +{ + GENERATED_BODY() - static FTestClientEvent SubscribeError(const FString& Value) - { - FTestClientEvent Obj; - Obj.Tag = ESpacetimeDBEventTag::SubscribeError; - Obj.MessageData.Set(Value); - return Obj; - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - static FTestClientEvent UnknownTransaction(const FSpacetimeDBUnit& Value) - { - FTestClientEvent Obj; - Obj.Tag = ESpacetimeDBEventTag::UnknownTransaction; - Obj.MessageData.Set(Value); - return Obj; - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - FORCEINLINE bool IsReducer() const { return Tag == ESpacetimeDBEventTag::Reducer; } - FORCEINLINE FReducer GetAsReducer() const - { - ensureMsgf(IsReducer(), TEXT("MessageData does not hold Reducer!")); - return MessageData.Get(); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkI8Query +{ + GENERATED_BODY() - FORCEINLINE bool IsSubscribeApplied() const { return Tag == ESpacetimeDBEventTag::SubscribeApplied; } - FORCEINLINE FSpacetimeDBUnit GetAsSubscribeApplied() const - { - ensureMsgf(IsSubscribeApplied(), TEXT("MessageData does not hold SubscribeApplied!")); - return MessageData.Get(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - FORCEINLINE bool IsUnsubscribeApplied() const { return Tag == ESpacetimeDBEventTag::UnsubscribeApplied; } - FORCEINLINE FSpacetimeDBUnit GetAsUnsubscribeApplied() const - { - ensureMsgf(IsUnsubscribeApplied(), TEXT("MessageData does not hold UnsubscribeApplied!")); - return MessageData.Get(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - FORCEINLINE bool IsDisconnected() const { return Tag == ESpacetimeDBEventTag::Disconnected; } - FORCEINLINE FSpacetimeDBUnit GetAsDisconnected() const - { - ensureMsgf(IsDisconnected(), TEXT("MessageData does not hold Disconnected!")); - return MessageData.Get(); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkIdentityQuery +{ + GENERATED_BODY() - FORCEINLINE bool IsTransaction() const { return Tag == ESpacetimeDBEventTag::Transaction; } - FORCEINLINE FSpacetimeDBUnit GetAsTransaction() const - { - ensureMsgf(IsTransaction(), TEXT("MessageData does not hold Transaction!")); - return MessageData.Get(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - FORCEINLINE bool IsSubscribeError() const { return Tag == ESpacetimeDBEventTag::SubscribeError; } - FORCEINLINE FString GetAsSubscribeError() const - { - ensureMsgf(IsSubscribeError(), TEXT("MessageData does not hold SubscribeError!")); - return MessageData.Get(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - FORCEINLINE bool IsUnknownTransaction() const { return Tag == ESpacetimeDBEventTag::UnknownTransaction; } - FORCEINLINE FSpacetimeDBUnit GetAsUnknownTransaction() const - { - ensureMsgf(IsUnknownTransaction(), TEXT("MessageData does not hold UnknownTransaction!")); - return MessageData.Get(); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkSimpleEnumQuery +{ + GENERATED_BODY() - FORCEINLINE bool operator==(const FTestClientEvent& Other) const - { - if (Tag != Other.Tag) return false; - switch (Tag) - { - case ESpacetimeDBEventTag::Reducer: return GetAsReducer() == Other.GetAsReducer(); - case ESpacetimeDBEventTag::SubscribeApplied: return GetAsSubscribeApplied() == Other.GetAsSubscribeApplied(); - case ESpacetimeDBEventTag::UnsubscribeApplied: return GetAsUnsubscribeApplied() == Other.GetAsUnsubscribeApplied(); - case ESpacetimeDBEventTag::Disconnected: return GetAsDisconnected() == Other.GetAsDisconnected(); - case ESpacetimeDBEventTag::Transaction: return GetAsTransaction() == Other.GetAsTransaction(); - case ESpacetimeDBEventTag::SubscribeError: return GetAsSubscribeError() == Other.GetAsSubscribeError(); - case ESpacetimeDBEventTag::UnknownTransaction: return GetAsUnknownTransaction() == Other.GetAsUnknownTransaction(); - default: return false; - } - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - FORCEINLINE bool operator!=(const FTestClientEvent& Other) const - { - return !(*this == Other); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; }; -UCLASS() -class TESTCLIENT_API UTestClientEventBpLib : public UBlueprintFunctionLibrary +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkStringQuery { GENERATED_BODY() -private: - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestClientEvent") - static FTestClientEvent Reducer(const FReducer& InValue) - { - return FTestClientEvent::Reducer(InValue); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestClientEvent") - static FTestClientEvent SubscribeApplied(const FSpacetimeDBUnit& InValue) - { - return FTestClientEvent::SubscribeApplied(InValue); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestClientEvent") - static FTestClientEvent UnsubscribeApplied(const FSpacetimeDBUnit& InValue) - { - return FTestClientEvent::UnsubscribeApplied(InValue); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkU128Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestClientEvent") - static FTestClientEvent Disconnected(const FSpacetimeDBUnit& InValue) - { - return FTestClientEvent::Disconnected(InValue); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestClientEvent") - static FTestClientEvent Transaction(const FSpacetimeDBUnit& InValue) - { - return FTestClientEvent::Transaction(InValue); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestClientEvent") - static FTestClientEvent SubscribeError(const FString& InValue) - { - return FTestClientEvent::SubscribeError(InValue); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkU16Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestClientEvent") - static FTestClientEvent UnknownTransaction(const FSpacetimeDBUnit& InValue) - { - return FTestClientEvent::UnknownTransaction(InValue); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") - static bool IsReducer(const FTestClientEvent& Event) { return Event.IsReducer(); } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") - static bool IsSubscribeApplied(const FTestClientEvent& Event) { return Event.IsSubscribeApplied(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkU256Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") - static bool IsUnsubscribeApplied(const FTestClientEvent& Event) { return Event.IsUnsubscribeApplied(); } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") - static bool IsDisconnected(const FTestClientEvent& Event) { return Event.IsDisconnected(); } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") - static bool IsTransaction(const FTestClientEvent& Event) { return Event.IsTransaction(); } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkU32Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") - static bool IsSubscribeError(const FTestClientEvent& Event) { return Event.IsSubscribeError(); } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") - static bool IsUnknownTransaction(const FTestClientEvent& Event) { return Event.IsUnknownTransaction(); } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") - static FReducer GetAsReducer(const FTestClientEvent& Event) - { - return Event.GetAsReducer(); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkU32TwoQuery +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") - static FSpacetimeDBUnit GetAsSubscribeApplied(const FTestClientEvent& Event) - { - return Event.GetAsSubscribeApplied(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") - static FSpacetimeDBUnit GetAsUnsubscribeApplied(const FTestClientEvent& Event) - { - return Event.GetAsUnsubscribeApplied(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") - static FSpacetimeDBUnit GetAsDisconnected(const FTestClientEvent& Event) - { - return Event.GetAsDisconnected(); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkU64Query +{ + GENERATED_BODY() - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") - static FSpacetimeDBUnit GetAsTransaction(const FTestClientEvent& Event) - { - return Event.GetAsTransaction(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") - static FString GetAsSubscribeError(const FTestClientEvent& Event) - { - return Event.GetAsSubscribeError(); - } + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestClientEvent") - static FSpacetimeDBUnit GetAsUnknownTransaction(const FTestClientEvent& Event) - { - return Event.GetAsUnknownTransaction(); - } +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkU8Query +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; }; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FPkUuidQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; USTRUCT(BlueprintType) -struct TESTCLIENT_API FEventContext : public FContextBase +struct TESTCLIENT_API FResultEveryPrimitiveStructStringQuery { - GENERATED_BODY() + GENERATED_BODY() - FEventContext() = default; - FEventContext(UDbConnection* InConn, const FTestClientEvent& InEvent) : FContextBase(InConn), Event(InEvent) {} + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - FTestClientEvent Event; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; }; USTRUCT(BlueprintType) -struct TESTCLIENT_API FReducerEventContext : public FContextBase +struct TESTCLIENT_API FResultI32StringQuery { - GENERATED_BODY() + GENERATED_BODY() - FReducerEventContext() = default; - FReducerEventContext(UDbConnection* InConn, FTestClientReducerEvent InEvent) : FContextBase(InConn), Event(InEvent) {} - - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - FTestClientReducerEvent Event; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; }; USTRUCT(BlueprintType) -struct TESTCLIENT_API FProcedureEventContext : public FContextBase +struct TESTCLIENT_API FResultIdentityStringQuery { - GENERATED_BODY() + GENERATED_BODY() - FProcedureEventContext() = default; - FProcedureEventContext(UDbConnection* InConn, FTestClientProcedureEvent InEvent) : FContextBase(InConn), Event(InEvent) {} - - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - FTestClientProcedureEvent Event; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; }; USTRUCT(BlueprintType) -struct TESTCLIENT_API FErrorContext : public FContextBase +struct TESTCLIENT_API FResultSimpleEnumI32Query { - GENERATED_BODY() + GENERATED_BODY() - FErrorContext() = default; - FErrorContext(UDbConnection* InConn, const FString& InError) : FContextBase(InConn), Error(InError) {} + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTCLIENT_API FResultStringI32Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - FString Error; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; }; USTRUCT(BlueprintType) -struct TESTCLIENT_API FSubscriptionEventContext : public FContextBase +struct TESTCLIENT_API FResultVecI32StringQuery { - GENERATED_BODY() + GENERATED_BODY() - FSubscriptionEventContext() = default; - FSubscriptionEventContext(UDbConnection* InConn) : FContextBase(InConn) {} + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; }; -DECLARE_DYNAMIC_DELEGATE_OneParam( - FOnSubscriptionApplied, - FSubscriptionEventContext, Context); - -DECLARE_DYNAMIC_DELEGATE_OneParam( - FOnSubscriptionError, - FErrorContext, Context); - -// RemoteTables class -UCLASS(BlueprintType) -class TESTCLIENT_API URemoteTables : public UObject +USTRUCT(BlueprintType) +struct TESTCLIENT_API FScheduledTableQuery { GENERATED_BODY() -public: - void Initialize(); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UBtreeU32Table* BtreeU32; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UIndexedSimpleEnumTable* IndexedSimpleEnum; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FTableHoldsTableQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - ULargeTableTable* LargeTable; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneBoolTable* OneBool; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneByteStructTable* OneByteStruct; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueBoolQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneConnectionIdTable* OneConnectionId; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneEnumWithPayloadTable* OneEnumWithPayload; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneEveryPrimitiveStructTable* OneEveryPrimitiveStruct; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueConnectionIdQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneEveryVecStructTable* OneEveryVecStruct; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneF32Table* OneF32; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneF64Table* OneF64; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueI128Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneI128Table* OneI128; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneI16Table* OneI16; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneI256Table* OneI256; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueI16Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneI32Table* OneI32; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneI64Table* OneI64; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneI8Table* OneI8; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueI256Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneIdentityTable* OneIdentity; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneSimpleEnumTable* OneSimpleEnum; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneStringTable* OneString; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueI32Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneTimestampTable* OneTimestamp; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneU128Table* OneU128; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneU16Table* OneU16; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueI64Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneU256Table* OneU256; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneU32Table* OneU32; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneU64Table* OneU64; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueI8Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneU8Table* OneU8; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneUnitStructTable* OneUnitStruct; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOneUuidTable* OneUuid; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueIdentityQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOptionEveryPrimitiveStructTable* OptionEveryPrimitiveStruct; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOptionI32Table* OptionI32; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOptionIdentityTable* OptionIdentity; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueStringQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOptionSimpleEnumTable* OptionSimpleEnum; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOptionStringTable* OptionString; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOptionUuidTable* OptionUuid; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueU128Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UOptionVecOptionI32Table* OptionVecOptionI32; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkBoolTable* PkBool; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkConnectionIdTable* PkConnectionId; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueU16Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkI128Table* PkI128; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkI16Table* PkI16; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkI256Table* PkI256; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueU256Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkI32Table* PkI32; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkI64Table* PkI64; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkI8Table* PkI8; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueU32Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkIdentityTable* PkIdentity; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkSimpleEnumTable* PkSimpleEnum; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkStringTable* PkString; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueU64Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkU128Table* PkU128; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkU16Table* PkU16; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkU256Table* PkU256; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueU8Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkU32Table* PkU32; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkU32TwoTable* PkU32Two; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkU64Table* PkU64; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUniqueUuidQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkU8Table* PkU8; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UPkUuidTable* PkUuid; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UResultEveryPrimitiveStructStringTable* ResultEveryPrimitiveStructString; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FUsersQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UResultI32StringTable* ResultI32String; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UResultIdentityStringTable* ResultIdentityString; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UResultSimpleEnumI32Table* ResultSimpleEnumI32; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecBoolQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UResultStringI32Table* ResultStringI32; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UResultVecI32StringTable* ResultVecI32String; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UScheduledTableTable* ScheduledTable; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecByteStructQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UTableHoldsTableTable* TableHoldsTable; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueBoolTable* UniqueBool; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueConnectionIdTable* UniqueConnectionId; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecConnectionIdQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueI128Table* UniqueI128; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueI16Table* UniqueI16; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueI256Table* UniqueI256; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecEnumWithPayloadQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueI32Table* UniqueI32; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueI64Table* UniqueI64; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecEveryPrimitiveStructQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueI8Table* UniqueI8; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueIdentityTable* UniqueIdentity; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueStringTable* UniqueString; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecEveryVecStructQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueU128Table* UniqueU128; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueU16Table* UniqueU16; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueU256Table* UniqueU256; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecF32Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueU32Table* UniqueU32; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueU64Table* UniqueU64; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueU8Table* UniqueU8; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecF64Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUniqueUuidTable* UniqueUuid; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UUsersTable* Users; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecBoolTable* VecBool; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecI128Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecByteStructTable* VecByteStruct; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecConnectionIdTable* VecConnectionId; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecEnumWithPayloadTable* VecEnumWithPayload; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecI16Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecEveryPrimitiveStructTable* VecEveryPrimitiveStruct; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecEveryVecStructTable* VecEveryVecStruct; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecF32Table* VecF32; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecI256Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecF64Table* VecF64; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecI128Table* VecI128; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecI16Table* VecI16; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecI32Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecI256Table* VecI256; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecI32Table* VecI32; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecI64Table* VecI64; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecI64Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecI8Table* VecI8; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecIdentityTable* VecIdentity; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecSimpleEnumTable* VecSimpleEnum; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecI8Query +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecStringTable* VecString; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecTimestampTable* VecTimestamp; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecU128Table* VecU128; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecIdentityQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecU16Table* VecU16; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecU256Table* VecU256; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecU32Table* VecU32; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecSimpleEnumQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecU64Table* VecU64; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecU8Table* VecU8; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecUnitStructTable* VecUnitStruct; +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecStringQuery +{ + GENERATED_BODY() - UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") - UVecUuidTable* VecUuid; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; }; -// RemoteReducers class -UCLASS(BlueprintType) -class TESTCLIENT_API URemoteReducers : public UObject +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecTimestampQuery { GENERATED_BODY() -public: + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteFromBtreeU32Handler, - const FReducerEventContext&, Context, - const TArray&, Rows - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeleteFromBtreeU32Handler OnDeleteFromBtreeU32; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeleteFromBtreeU32(const TArray& Rows); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecU128Query +{ + GENERATED_BODY() - bool InvokeDeleteFromBtreeU32(const FReducerEventContext& Context, const UDeleteFromBtreeU32Reducer* Args); - bool InvokeDeleteFromBtreeU32WithArgs(const FReducerEventContext& Context, const FDeleteFromBtreeU32Args& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteLargeTableHandler, - const FReducerEventContext&, Context, - const FDeleteLargeTableArgs&, Args - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeleteLargeTableHandler OnDeleteLargeTable; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - // NOTE: Not exposed to Blueprint because uint16, uint32, uint64, int8, int16 types are not Blueprint-compatible - void DeleteLargeTable(const uint8 A, const uint16 B, const uint32 C, const uint64 D, const FSpacetimeDBUInt128& E, const FSpacetimeDBUInt256& F, const int8 G, const int16 H, const int32 I, const int64 J, const FSpacetimeDBInt128& K, const FSpacetimeDBInt256& L, const bool M, const float N, const double O, const FString& P, const ESimpleEnumType& Q, const FEnumWithPayloadType& R, const FUnitStructType& S, const FByteStructType& T, const FEveryPrimitiveStructType& U, const FEveryVecStructType& V); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecU16Query +{ + GENERATED_BODY() - bool InvokeDeleteLargeTable(const FReducerEventContext& Context, const UDeleteLargeTableReducer* Args); - bool InvokeDeleteLargeTableWithArgs(const FReducerEventContext& Context, const FDeleteLargeTableArgs& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkBoolHandler, - const FReducerEventContext&, Context, - bool, B - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeletePkBoolHandler OnDeletePkBool; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeletePkBool(const bool B); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecU256Query +{ + GENERATED_BODY() - bool InvokeDeletePkBool(const FReducerEventContext& Context, const UDeletePkBoolReducer* Args); - bool InvokeDeletePkBoolWithArgs(const FReducerEventContext& Context, const FDeletePkBoolArgs& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkConnectionIdHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBConnectionId&, A - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeletePkConnectionIdHandler OnDeletePkConnectionId; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeletePkConnectionId(const FSpacetimeDBConnectionId& A); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecU32Query +{ + GENERATED_BODY() - bool InvokeDeletePkConnectionId(const FReducerEventContext& Context, const UDeletePkConnectionIdReducer* Args); - bool InvokeDeletePkConnectionIdWithArgs(const FReducerEventContext& Context, const FDeletePkConnectionIdArgs& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkI128Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBInt128&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeletePkI128Handler OnDeletePkI128; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeletePkI128(const FSpacetimeDBInt128& N); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecU64Query +{ + GENERATED_BODY() - bool InvokeDeletePkI128(const FReducerEventContext& Context, const UDeletePkI128Reducer* Args); - bool InvokeDeletePkI128WithArgs(const FReducerEventContext& Context, const FDeletePkI128Args& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkI16Handler, - const FReducerEventContext&, Context, - int16, N - ); - // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible - FDeletePkI16Handler OnDeletePkI16; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible - void DeletePkI16(const int16 N); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecU8Query +{ + GENERATED_BODY() - bool InvokeDeletePkI16(const FReducerEventContext& Context, const UDeletePkI16Reducer* Args); - bool InvokeDeletePkI16WithArgs(const FReducerEventContext& Context, const FDeletePkI16Args& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkI256Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBInt256&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeletePkI256Handler OnDeletePkI256; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeletePkI256(const FSpacetimeDBInt256& N); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecUnitStructQuery +{ + GENERATED_BODY() - bool InvokeDeletePkI256(const FReducerEventContext& Context, const UDeletePkI256Reducer* Args); - bool InvokeDeletePkI256WithArgs(const FReducerEventContext& Context, const FDeletePkI256Args& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkI32Handler, - const FReducerEventContext&, Context, - int32, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeletePkI32Handler OnDeletePkI32; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeletePkI32(const int32 N); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FVecUuidQuery +{ + GENERATED_BODY() - bool InvokeDeletePkI32(const FReducerEventContext& Context, const UDeletePkI32Reducer* Args); - bool InvokeDeletePkI32WithArgs(const FReducerEventContext& Context, const FDeletePkI32Args& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkI64Handler, - const FReducerEventContext&, Context, - int64, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeletePkI64Handler OnDeletePkI64; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeletePkI64(const int64 N); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FBlueprintBoolColumn +{ + GENERATED_BODY() - bool InvokeDeletePkI64(const FReducerEventContext& Context, const UDeletePkI64Reducer* Args); - bool InvokeDeletePkI64WithArgs(const FReducerEventContext& Context, const FDeletePkI64Args& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkI8Handler, - const FReducerEventContext&, Context, - int8, N - ); - // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible - FDeletePkI8Handler OnDeletePkI8; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; - // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible - void DeletePkI8(const int8 N); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FBlueprintUInt8Column +{ + GENERATED_BODY() - bool InvokeDeletePkI8(const FReducerEventContext& Context, const UDeletePkI8Reducer* Args); - bool InvokeDeletePkI8WithArgs(const FReducerEventContext& Context, const FDeletePkI8Args& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkIdentityHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBIdentity&, I - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeletePkIdentityHandler OnDeletePkIdentity; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeletePkIdentity(const FSpacetimeDBIdentity& I); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FBlueprintInt32Column +{ + GENERATED_BODY() - bool InvokeDeletePkIdentity(const FReducerEventContext& Context, const UDeletePkIdentityReducer* Args); - bool InvokeDeletePkIdentityWithArgs(const FReducerEventContext& Context, const FDeletePkIdentityArgs& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkStringHandler, - const FReducerEventContext&, Context, - const FString&, S - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeletePkStringHandler OnDeletePkString; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeletePkString(const FString& S); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FBlueprintInt64Column +{ + GENERATED_BODY() - bool InvokeDeletePkString(const FReducerEventContext& Context, const UDeletePkStringReducer* Args); - bool InvokeDeletePkStringWithArgs(const FReducerEventContext& Context, const FDeletePkStringArgs& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkU128Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBUInt128&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeletePkU128Handler OnDeletePkU128; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeletePkU128(const FSpacetimeDBUInt128& N); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FBlueprintFloatColumn +{ + GENERATED_BODY() - bool InvokeDeletePkU128(const FReducerEventContext& Context, const UDeletePkU128Reducer* Args); - bool InvokeDeletePkU128WithArgs(const FReducerEventContext& Context, const FDeletePkU128Args& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkU16Handler, - const FReducerEventContext&, Context, - uint16, N - ); - // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible - FDeletePkU16Handler OnDeletePkU16; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; - // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible - void DeletePkU16(const uint16 N); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FBlueprintDoubleColumn +{ + GENERATED_BODY() - bool InvokeDeletePkU16(const FReducerEventContext& Context, const UDeletePkU16Reducer* Args); - bool InvokeDeletePkU16WithArgs(const FReducerEventContext& Context, const FDeletePkU16Args& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkU256Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBUInt256&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeletePkU256Handler OnDeletePkU256; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeletePkU256(const FSpacetimeDBUInt256& N); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FBlueprintStringColumn +{ + GENERATED_BODY() - bool InvokeDeletePkU256(const FReducerEventContext& Context, const UDeletePkU256Reducer* Args); - bool InvokeDeletePkU256WithArgs(const FReducerEventContext& Context, const FDeletePkU256Args& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkU32Handler, - const FReducerEventContext&, Context, - uint32, N - ); - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - FDeletePkU32Handler OnDeletePkU32; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - void DeletePkU32(const uint32 N); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FBlueprintIdentityColumn +{ + GENERATED_BODY() - bool InvokeDeletePkU32(const FReducerEventContext& Context, const UDeletePkU32Reducer* Args); - bool InvokeDeletePkU32WithArgs(const FReducerEventContext& Context, const FDeletePkU32Args& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FDeletePkU32InsertPkU32TwoHandler, - const FReducerEventContext&, Context, - uint32, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - FDeletePkU32InsertPkU32TwoHandler OnDeletePkU32InsertPkU32Two; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - void DeletePkU32InsertPkU32Two(const uint32 N, const int32 Data); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FBlueprintConnectionIdColumn +{ + GENERATED_BODY() - bool InvokeDeletePkU32InsertPkU32Two(const FReducerEventContext& Context, const UDeletePkU32InsertPkU32TwoReducer* Args); - bool InvokeDeletePkU32InsertPkU32TwoWithArgs(const FReducerEventContext& Context, const FDeletePkU32InsertPkU32TwoArgs& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkU32TwoHandler, - const FReducerEventContext&, Context, - uint32, N - ); - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - FDeletePkU32TwoHandler OnDeletePkU32Two; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - void DeletePkU32Two(const uint32 N); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FBlueprintTimestampColumn +{ + GENERATED_BODY() - bool InvokeDeletePkU32Two(const FReducerEventContext& Context, const UDeletePkU32TwoReducer* Args); - bool InvokeDeletePkU32TwoWithArgs(const FReducerEventContext& Context, const FDeletePkU32TwoArgs& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkU64Handler, - const FReducerEventContext&, Context, - uint64, N - ); - // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible - FDeletePkU64Handler OnDeletePkU64; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; - // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible - void DeletePkU64(const uint64 N); +USTRUCT(BlueprintType) +struct TESTCLIENT_API FBlueprintUuidColumn +{ + GENERATED_BODY() - bool InvokeDeletePkU64(const FReducerEventContext& Context, const UDeletePkU64Reducer* Args); - bool InvokeDeletePkU64WithArgs(const FReducerEventContext& Context, const FDeletePkU64Args& Args); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkU8Handler, - const FReducerEventContext&, Context, - uint8, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeletePkU8Handler OnDeletePkU8; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeletePkU8(const uint8 N); +UCLASS(BlueprintType) +class TESTCLIENT_API UQueryBuilderBlueprintLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() - bool InvokeDeletePkU8(const FReducerEventContext& Context, const UDeletePkU8Reducer* Args); - bool InvokeDeletePkU8WithArgs(const FReducerEventContext& Context, const FDeletePkU8Args& Args); +public: - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeletePkUuidHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBUuid&, U - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeletePkUuidHandler OnDeletePkUuid; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|BtreeU32", meta=(DisplayName="From BtreeU32")) + static FBtreeU32Query FromBtreeU32() + { + FBtreeU32Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.BtreeU32().into_sql().c_str())); + Query.ResultSourceName = TEXT("btree_u_32"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeletePkUuid(const FSpacetimeDBUuid& U); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|BtreeU32", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_BtreeU32QueryToBlueprintQuery(const FBtreeU32Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeDeletePkUuid(const FReducerEventContext& Context, const UDeletePkUuidReducer* Args); - bool InvokeDeletePkUuidWithArgs(const FReducerEventContext& Context, const FDeletePkUuidArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|BtreeU32|Columns", meta=(DisplayName="BtreeU32 Data")) + static FBlueprintInt32Column BtreeU32Data(const FBtreeU32Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("btree_u_32") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueBoolHandler, - const FReducerEventContext&, Context, - bool, B - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeleteUniqueBoolHandler OnDeleteUniqueBool; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|BtreeU32", meta=(DisplayName="BtreeU32 Where")) + static FBtreeU32Query BtreeU32Where(FBtreeU32Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeleteUniqueBool(const bool B); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|IndexedSimpleEnum", meta=(DisplayName="From IndexedSimpleEnum")) + static FIndexedSimpleEnumQuery FromIndexedSimpleEnum() + { + FIndexedSimpleEnumQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.IndexedSimpleEnum().into_sql().c_str())); + Query.ResultSourceName = TEXT("indexed_simple_enum"); + return Query; + } - bool InvokeDeleteUniqueBool(const FReducerEventContext& Context, const UDeleteUniqueBoolReducer* Args); - bool InvokeDeleteUniqueBoolWithArgs(const FReducerEventContext& Context, const FDeleteUniqueBoolArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|IndexedSimpleEnum", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_IndexedSimpleEnumQueryToBlueprintQuery(const FIndexedSimpleEnumQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueConnectionIdHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBConnectionId&, A - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeleteUniqueConnectionIdHandler OnDeleteUniqueConnectionId; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|IndexedSimpleEnum", meta=(DisplayName="IndexedSimpleEnum Where")) + static FIndexedSimpleEnumQuery IndexedSimpleEnumWhere(FIndexedSimpleEnumQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeleteUniqueConnectionId(const FSpacetimeDBConnectionId& A); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|LargeTable", meta=(DisplayName="From LargeTable")) + static FLargeTableQuery FromLargeTable() + { + FLargeTableQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.LargeTable().into_sql().c_str())); + Query.ResultSourceName = TEXT("large_table"); + return Query; + } - bool InvokeDeleteUniqueConnectionId(const FReducerEventContext& Context, const UDeleteUniqueConnectionIdReducer* Args); - bool InvokeDeleteUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FDeleteUniqueConnectionIdArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|LargeTable", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_LargeTableQueryToBlueprintQuery(const FLargeTableQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueI128Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBInt128&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeleteUniqueI128Handler OnDeleteUniqueI128; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|LargeTable|Columns", meta=(DisplayName="LargeTable A")) + static FBlueprintUInt8Column LargeTableA(const FLargeTableQuery& Query) + { + FBlueprintUInt8Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("large_table") : Query.ResultSourceName; + Column.ColumnName = TEXT("a"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeleteUniqueI128(const FSpacetimeDBInt128& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|LargeTable|Columns", meta=(DisplayName="LargeTable I")) + static FBlueprintInt32Column LargeTableI(const FLargeTableQuery& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("large_table") : Query.ResultSourceName; + Column.ColumnName = TEXT("i"); + return Column; + } - bool InvokeDeleteUniqueI128(const FReducerEventContext& Context, const UDeleteUniqueI128Reducer* Args); - bool InvokeDeleteUniqueI128WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI128Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|LargeTable|Columns", meta=(DisplayName="LargeTable J")) + static FBlueprintInt64Column LargeTableJ(const FLargeTableQuery& Query) + { + FBlueprintInt64Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("large_table") : Query.ResultSourceName; + Column.ColumnName = TEXT("j"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueI16Handler, - const FReducerEventContext&, Context, - int16, N - ); - // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible - FDeleteUniqueI16Handler OnDeleteUniqueI16; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|LargeTable|Columns", meta=(DisplayName="LargeTable M")) + static FBlueprintBoolColumn LargeTableM(const FLargeTableQuery& Query) + { + FBlueprintBoolColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("large_table") : Query.ResultSourceName; + Column.ColumnName = TEXT("m"); + return Column; + } - // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible - void DeleteUniqueI16(const int16 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|LargeTable|Columns", meta=(DisplayName="LargeTable N")) + static FBlueprintFloatColumn LargeTableN(const FLargeTableQuery& Query) + { + FBlueprintFloatColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("large_table") : Query.ResultSourceName; + Column.ColumnName = TEXT("n"); + return Column; + } - bool InvokeDeleteUniqueI16(const FReducerEventContext& Context, const UDeleteUniqueI16Reducer* Args); - bool InvokeDeleteUniqueI16WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI16Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|LargeTable|Columns", meta=(DisplayName="LargeTable O")) + static FBlueprintDoubleColumn LargeTableO(const FLargeTableQuery& Query) + { + FBlueprintDoubleColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("large_table") : Query.ResultSourceName; + Column.ColumnName = TEXT("o"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueI256Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBInt256&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeleteUniqueI256Handler OnDeleteUniqueI256; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|LargeTable|Columns", meta=(DisplayName="LargeTable P")) + static FBlueprintStringColumn LargeTableP(const FLargeTableQuery& Query) + { + FBlueprintStringColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("large_table") : Query.ResultSourceName; + Column.ColumnName = TEXT("p"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeleteUniqueI256(const FSpacetimeDBInt256& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|LargeTable", meta=(DisplayName="LargeTable Where")) + static FLargeTableQuery LargeTableWhere(FLargeTableQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeDeleteUniqueI256(const FReducerEventContext& Context, const UDeleteUniqueI256Reducer* Args); - bool InvokeDeleteUniqueI256WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI256Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneBool", meta=(DisplayName="From OneBool")) + static FOneBoolQuery FromOneBool() + { + FOneBoolQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneBool().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_bool"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueI32Handler, - const FReducerEventContext&, Context, - int32, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeleteUniqueI32Handler OnDeleteUniqueI32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneBool", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneBoolQueryToBlueprintQuery(const FOneBoolQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeleteUniqueI32(const int32 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneBool|Columns", meta=(DisplayName="OneBool B")) + static FBlueprintBoolColumn OneBoolB(const FOneBoolQuery& Query) + { + FBlueprintBoolColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("one_bool") : Query.ResultSourceName; + Column.ColumnName = TEXT("b"); + return Column; + } - bool InvokeDeleteUniqueI32(const FReducerEventContext& Context, const UDeleteUniqueI32Reducer* Args); - bool InvokeDeleteUniqueI32WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneBool", meta=(DisplayName="OneBool Where")) + static FOneBoolQuery OneBoolWhere(FOneBoolQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueI64Handler, - const FReducerEventContext&, Context, - int64, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeleteUniqueI64Handler OnDeleteUniqueI64; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneByteStruct", meta=(DisplayName="From OneByteStruct")) + static FOneByteStructQuery FromOneByteStruct() + { + FOneByteStructQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneByteStruct().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_byte_struct"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeleteUniqueI64(const int64 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneByteStruct", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneByteStructQueryToBlueprintQuery(const FOneByteStructQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeDeleteUniqueI64(const FReducerEventContext& Context, const UDeleteUniqueI64Reducer* Args); - bool InvokeDeleteUniqueI64WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI64Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneByteStruct", meta=(DisplayName="OneByteStruct Where")) + static FOneByteStructQuery OneByteStructWhere(FOneByteStructQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueI8Handler, - const FReducerEventContext&, Context, - int8, N - ); - // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible - FDeleteUniqueI8Handler OnDeleteUniqueI8; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneConnectionId", meta=(DisplayName="From OneConnectionId")) + static FOneConnectionIdQuery FromOneConnectionId() + { + FOneConnectionIdQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneConnectionId().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_connection_id"); + return Query; + } - // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible - void DeleteUniqueI8(const int8 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneConnectionId", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneConnectionIdQueryToBlueprintQuery(const FOneConnectionIdQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeDeleteUniqueI8(const FReducerEventContext& Context, const UDeleteUniqueI8Reducer* Args); - bool InvokeDeleteUniqueI8WithArgs(const FReducerEventContext& Context, const FDeleteUniqueI8Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneConnectionId|Columns", meta=(DisplayName="OneConnectionId A")) + static FBlueprintConnectionIdColumn OneConnectionIdA(const FOneConnectionIdQuery& Query) + { + FBlueprintConnectionIdColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("one_connection_id") : Query.ResultSourceName; + Column.ColumnName = TEXT("a"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueIdentityHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBIdentity&, I - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeleteUniqueIdentityHandler OnDeleteUniqueIdentity; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneConnectionId", meta=(DisplayName="OneConnectionId Where")) + static FOneConnectionIdQuery OneConnectionIdWhere(FOneConnectionIdQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeleteUniqueIdentity(const FSpacetimeDBIdentity& I); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneEnumWithPayload", meta=(DisplayName="From OneEnumWithPayload")) + static FOneEnumWithPayloadQuery FromOneEnumWithPayload() + { + FOneEnumWithPayloadQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneEnumWithPayload().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_enum_with_payload"); + return Query; + } - bool InvokeDeleteUniqueIdentity(const FReducerEventContext& Context, const UDeleteUniqueIdentityReducer* Args); - bool InvokeDeleteUniqueIdentityWithArgs(const FReducerEventContext& Context, const FDeleteUniqueIdentityArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneEnumWithPayload", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneEnumWithPayloadQueryToBlueprintQuery(const FOneEnumWithPayloadQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueStringHandler, - const FReducerEventContext&, Context, - const FString&, S - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeleteUniqueStringHandler OnDeleteUniqueString; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneEnumWithPayload", meta=(DisplayName="OneEnumWithPayload Where")) + static FOneEnumWithPayloadQuery OneEnumWithPayloadWhere(FOneEnumWithPayloadQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeleteUniqueString(const FString& S); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneEveryPrimitiveStruct", meta=(DisplayName="From OneEveryPrimitiveStruct")) + static FOneEveryPrimitiveStructQuery FromOneEveryPrimitiveStruct() + { + FOneEveryPrimitiveStructQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneEveryPrimitiveStruct().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_every_primitive_struct"); + return Query; + } - bool InvokeDeleteUniqueString(const FReducerEventContext& Context, const UDeleteUniqueStringReducer* Args); - bool InvokeDeleteUniqueStringWithArgs(const FReducerEventContext& Context, const FDeleteUniqueStringArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneEveryPrimitiveStruct", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneEveryPrimitiveStructQueryToBlueprintQuery(const FOneEveryPrimitiveStructQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueU128Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBUInt128&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeleteUniqueU128Handler OnDeleteUniqueU128; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneEveryPrimitiveStruct", meta=(DisplayName="OneEveryPrimitiveStruct Where")) + static FOneEveryPrimitiveStructQuery OneEveryPrimitiveStructWhere(FOneEveryPrimitiveStructQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeleteUniqueU128(const FSpacetimeDBUInt128& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneEveryVecStruct", meta=(DisplayName="From OneEveryVecStruct")) + static FOneEveryVecStructQuery FromOneEveryVecStruct() + { + FOneEveryVecStructQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneEveryVecStruct().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_every_vec_struct"); + return Query; + } - bool InvokeDeleteUniqueU128(const FReducerEventContext& Context, const UDeleteUniqueU128Reducer* Args); - bool InvokeDeleteUniqueU128WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU128Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneEveryVecStruct", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneEveryVecStructQueryToBlueprintQuery(const FOneEveryVecStructQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueU16Handler, - const FReducerEventContext&, Context, - uint16, N - ); - // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible - FDeleteUniqueU16Handler OnDeleteUniqueU16; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneEveryVecStruct", meta=(DisplayName="OneEveryVecStruct Where")) + static FOneEveryVecStructQuery OneEveryVecStructWhere(FOneEveryVecStructQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible - void DeleteUniqueU16(const uint16 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneF32", meta=(DisplayName="From OneF32")) + static FOneF32Query FromOneF32() + { + FOneF32Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneF32().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_f_32"); + return Query; + } - bool InvokeDeleteUniqueU16(const FReducerEventContext& Context, const UDeleteUniqueU16Reducer* Args); - bool InvokeDeleteUniqueU16WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU16Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneF32", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneF32QueryToBlueprintQuery(const FOneF32Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueU256Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBUInt256&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeleteUniqueU256Handler OnDeleteUniqueU256; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneF32|Columns", meta=(DisplayName="OneF32 F")) + static FBlueprintFloatColumn OneF32F(const FOneF32Query& Query) + { + FBlueprintFloatColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("one_f_32") : Query.ResultSourceName; + Column.ColumnName = TEXT("f"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeleteUniqueU256(const FSpacetimeDBUInt256& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneF32", meta=(DisplayName="OneF32 Where")) + static FOneF32Query OneF32Where(FOneF32Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeDeleteUniqueU256(const FReducerEventContext& Context, const UDeleteUniqueU256Reducer* Args); - bool InvokeDeleteUniqueU256WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU256Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneF64", meta=(DisplayName="From OneF64")) + static FOneF64Query FromOneF64() + { + FOneF64Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneF64().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_f_64"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueU32Handler, - const FReducerEventContext&, Context, - uint32, N - ); - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - FDeleteUniqueU32Handler OnDeleteUniqueU32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneF64", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneF64QueryToBlueprintQuery(const FOneF64Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - void DeleteUniqueU32(const uint32 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneF64|Columns", meta=(DisplayName="OneF64 F")) + static FBlueprintDoubleColumn OneF64F(const FOneF64Query& Query) + { + FBlueprintDoubleColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("one_f_64") : Query.ResultSourceName; + Column.ColumnName = TEXT("f"); + return Column; + } - bool InvokeDeleteUniqueU32(const FReducerEventContext& Context, const UDeleteUniqueU32Reducer* Args); - bool InvokeDeleteUniqueU32WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneF64", meta=(DisplayName="OneF64 Where")) + static FOneF64Query OneF64Where(FOneF64Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueU64Handler, - const FReducerEventContext&, Context, - uint64, N - ); - // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible - FDeleteUniqueU64Handler OnDeleteUniqueU64; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI128", meta=(DisplayName="From OneI128")) + static FOneI128Query FromOneI128() + { + FOneI128Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneI128().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_i_128"); + return Query; + } - // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible - void DeleteUniqueU64(const uint64 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI128", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneI128QueryToBlueprintQuery(const FOneI128Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeDeleteUniqueU64(const FReducerEventContext& Context, const UDeleteUniqueU64Reducer* Args); - bool InvokeDeleteUniqueU64WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU64Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI128", meta=(DisplayName="OneI128 Where")) + static FOneI128Query OneI128Where(FOneI128Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueU8Handler, - const FReducerEventContext&, Context, - uint8, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeleteUniqueU8Handler OnDeleteUniqueU8; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI16", meta=(DisplayName="From OneI16")) + static FOneI16Query FromOneI16() + { + FOneI16Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneI16().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_i_16"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeleteUniqueU8(const uint8 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI16", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneI16QueryToBlueprintQuery(const FOneI16Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeDeleteUniqueU8(const FReducerEventContext& Context, const UDeleteUniqueU8Reducer* Args); - bool InvokeDeleteUniqueU8WithArgs(const FReducerEventContext& Context, const FDeleteUniqueU8Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI16", meta=(DisplayName="OneI16 Where")) + static FOneI16Query OneI16Where(FOneI16Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FDeleteUniqueUuidHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBUuid&, U - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FDeleteUniqueUuidHandler OnDeleteUniqueUuid; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI256", meta=(DisplayName="From OneI256")) + static FOneI256Query FromOneI256() + { + FOneI256Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneI256().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_i_256"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void DeleteUniqueUuid(const FSpacetimeDBUuid& U); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI256", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneI256QueryToBlueprintQuery(const FOneI256Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeDeleteUniqueUuid(const FReducerEventContext& Context, const UDeleteUniqueUuidReducer* Args); - bool InvokeDeleteUniqueUuidWithArgs(const FReducerEventContext& Context, const FDeleteUniqueUuidArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI256", meta=(DisplayName="OneI256 Where")) + static FOneI256Query OneI256Where(FOneI256Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI32", meta=(DisplayName="From OneI32")) + static FOneI32Query FromOneI32() + { + FOneI32Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneI32().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_i_32"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( - FInsertCallTimestampHandler, - const FReducerEventContext&, Context - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertCallTimestampHandler OnInsertCallTimestamp; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI32", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneI32QueryToBlueprintQuery(const FOneI32Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertCallTimestamp(); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI32|Columns", meta=(DisplayName="OneI32 N")) + static FBlueprintInt32Column OneI32N(const FOneI32Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("one_i_32") : Query.ResultSourceName; + Column.ColumnName = TEXT("n"); + return Column; + } - bool InvokeInsertCallTimestamp(const FReducerEventContext& Context, const UInsertCallTimestampReducer* Args); - bool InvokeInsertCallTimestampWithArgs(const FReducerEventContext& Context, const FInsertCallTimestampArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI32", meta=(DisplayName="OneI32 Where")) + static FOneI32Query OneI32Where(FOneI32Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( - FInsertCallUuidV4Handler, - const FReducerEventContext&, Context - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertCallUuidV4Handler OnInsertCallUuidV4; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI64", meta=(DisplayName="From OneI64")) + static FOneI64Query FromOneI64() + { + FOneI64Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneI64().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_i_64"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertCallUuidV4(); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI64", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneI64QueryToBlueprintQuery(const FOneI64Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertCallUuidV4(const FReducerEventContext& Context, const UInsertCallUuidV4Reducer* Args); - bool InvokeInsertCallUuidV4WithArgs(const FReducerEventContext& Context, const FInsertCallUuidV4Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI64|Columns", meta=(DisplayName="OneI64 N")) + static FBlueprintInt64Column OneI64N(const FOneI64Query& Query) + { + FBlueprintInt64Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("one_i_64") : Query.ResultSourceName; + Column.ColumnName = TEXT("n"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( - FInsertCallUuidV7Handler, - const FReducerEventContext&, Context - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertCallUuidV7Handler OnInsertCallUuidV7; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI64", meta=(DisplayName="OneI64 Where")) + static FOneI64Query OneI64Where(FOneI64Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertCallUuidV7(); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI8", meta=(DisplayName="From OneI8")) + static FOneI8Query FromOneI8() + { + FOneI8Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneI8().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_i_8"); + return Query; + } - bool InvokeInsertCallUuidV7(const FReducerEventContext& Context, const UInsertCallUuidV7Reducer* Args); - bool InvokeInsertCallUuidV7WithArgs(const FReducerEventContext& Context, const FInsertCallUuidV7Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI8", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneI8QueryToBlueprintQuery(const FOneI8Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( - FInsertCallerOneConnectionIdHandler, - const FReducerEventContext&, Context - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertCallerOneConnectionIdHandler OnInsertCallerOneConnectionId; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneI8", meta=(DisplayName="OneI8 Where")) + static FOneI8Query OneI8Where(FOneI8Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertCallerOneConnectionId(); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneIdentity", meta=(DisplayName="From OneIdentity")) + static FOneIdentityQuery FromOneIdentity() + { + FOneIdentityQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneIdentity().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_identity"); + return Query; + } - bool InvokeInsertCallerOneConnectionId(const FReducerEventContext& Context, const UInsertCallerOneConnectionIdReducer* Args); - bool InvokeInsertCallerOneConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerOneConnectionIdArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneIdentity", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneIdentityQueryToBlueprintQuery(const FOneIdentityQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( - FInsertCallerOneIdentityHandler, - const FReducerEventContext&, Context - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertCallerOneIdentityHandler OnInsertCallerOneIdentity; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneIdentity|Columns", meta=(DisplayName="OneIdentity I")) + static FBlueprintIdentityColumn OneIdentityI(const FOneIdentityQuery& Query) + { + FBlueprintIdentityColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("one_identity") : Query.ResultSourceName; + Column.ColumnName = TEXT("i"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertCallerOneIdentity(); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneIdentity", meta=(DisplayName="OneIdentity Where")) + static FOneIdentityQuery OneIdentityWhere(FOneIdentityQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertCallerOneIdentity(const FReducerEventContext& Context, const UInsertCallerOneIdentityReducer* Args); - bool InvokeInsertCallerOneIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerOneIdentityArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneSimpleEnum", meta=(DisplayName="From OneSimpleEnum")) + static FOneSimpleEnumQuery FromOneSimpleEnum() + { + FOneSimpleEnumQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneSimpleEnum().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_simple_enum"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertCallerPkConnectionIdHandler, - const FReducerEventContext&, Context, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertCallerPkConnectionIdHandler OnInsertCallerPkConnectionId; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneSimpleEnum", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneSimpleEnumQueryToBlueprintQuery(const FOneSimpleEnumQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertCallerPkConnectionId(const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneSimpleEnum", meta=(DisplayName="OneSimpleEnum Where")) + static FOneSimpleEnumQuery OneSimpleEnumWhere(FOneSimpleEnumQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertCallerPkConnectionId(const FReducerEventContext& Context, const UInsertCallerPkConnectionIdReducer* Args); - bool InvokeInsertCallerPkConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerPkConnectionIdArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneString", meta=(DisplayName="From OneString")) + static FOneStringQuery FromOneString() + { + FOneStringQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneString().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_string"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertCallerPkIdentityHandler, - const FReducerEventContext&, Context, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertCallerPkIdentityHandler OnInsertCallerPkIdentity; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneString", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneStringQueryToBlueprintQuery(const FOneStringQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertCallerPkIdentity(const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneString|Columns", meta=(DisplayName="OneString S")) + static FBlueprintStringColumn OneStringS(const FOneStringQuery& Query) + { + FBlueprintStringColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("one_string") : Query.ResultSourceName; + Column.ColumnName = TEXT("s"); + return Column; + } - bool InvokeInsertCallerPkIdentity(const FReducerEventContext& Context, const UInsertCallerPkIdentityReducer* Args); - bool InvokeInsertCallerPkIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerPkIdentityArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneString", meta=(DisplayName="OneString Where")) + static FOneStringQuery OneStringWhere(FOneStringQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertCallerUniqueConnectionIdHandler, - const FReducerEventContext&, Context, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertCallerUniqueConnectionIdHandler OnInsertCallerUniqueConnectionId; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneTimestamp", meta=(DisplayName="From OneTimestamp")) + static FOneTimestampQuery FromOneTimestamp() + { + FOneTimestampQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneTimestamp().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_timestamp"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertCallerUniqueConnectionId(const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneTimestamp", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneTimestampQueryToBlueprintQuery(const FOneTimestampQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertCallerUniqueConnectionId(const FReducerEventContext& Context, const UInsertCallerUniqueConnectionIdReducer* Args); - bool InvokeInsertCallerUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerUniqueConnectionIdArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneTimestamp|Columns", meta=(DisplayName="OneTimestamp T")) + static FBlueprintTimestampColumn OneTimestampT(const FOneTimestampQuery& Query) + { + FBlueprintTimestampColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("one_timestamp") : Query.ResultSourceName; + Column.ColumnName = TEXT("t"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertCallerUniqueIdentityHandler, - const FReducerEventContext&, Context, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertCallerUniqueIdentityHandler OnInsertCallerUniqueIdentity; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneTimestamp", meta=(DisplayName="OneTimestamp Where")) + static FOneTimestampQuery OneTimestampWhere(FOneTimestampQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertCallerUniqueIdentity(const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU128", meta=(DisplayName="From OneU128")) + static FOneU128Query FromOneU128() + { + FOneU128Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneU128().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_u_128"); + return Query; + } - bool InvokeInsertCallerUniqueIdentity(const FReducerEventContext& Context, const UInsertCallerUniqueIdentityReducer* Args); - bool InvokeInsertCallerUniqueIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerUniqueIdentityArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU128", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneU128QueryToBlueprintQuery(const FOneU128Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( - FInsertCallerVecConnectionIdHandler, - const FReducerEventContext&, Context - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertCallerVecConnectionIdHandler OnInsertCallerVecConnectionId; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU128", meta=(DisplayName="OneU128 Where")) + static FOneU128Query OneU128Where(FOneU128Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertCallerVecConnectionId(); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU16", meta=(DisplayName="From OneU16")) + static FOneU16Query FromOneU16() + { + FOneU16Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneU16().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_u_16"); + return Query; + } - bool InvokeInsertCallerVecConnectionId(const FReducerEventContext& Context, const UInsertCallerVecConnectionIdReducer* Args); - bool InvokeInsertCallerVecConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertCallerVecConnectionIdArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU16", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneU16QueryToBlueprintQuery(const FOneU16Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( - FInsertCallerVecIdentityHandler, - const FReducerEventContext&, Context - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertCallerVecIdentityHandler OnInsertCallerVecIdentity; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU16", meta=(DisplayName="OneU16 Where")) + static FOneU16Query OneU16Where(FOneU16Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertCallerVecIdentity(); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU256", meta=(DisplayName="From OneU256")) + static FOneU256Query FromOneU256() + { + FOneU256Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneU256().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_u_256"); + return Query; + } - bool InvokeInsertCallerVecIdentity(const FReducerEventContext& Context, const UInsertCallerVecIdentityReducer* Args); - bool InvokeInsertCallerVecIdentityWithArgs(const FReducerEventContext& Context, const FInsertCallerVecIdentityArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU256", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneU256QueryToBlueprintQuery(const FOneU256Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertIntoBtreeU32Handler, - const FReducerEventContext&, Context, - const TArray&, Rows - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertIntoBtreeU32Handler OnInsertIntoBtreeU32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU256", meta=(DisplayName="OneU256 Where")) + static FOneU256Query OneU256Where(FOneU256Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertIntoBtreeU32(const TArray& Rows); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU32", meta=(DisplayName="From OneU32")) + static FOneU32Query FromOneU32() + { + FOneU32Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneU32().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_u_32"); + return Query; + } - bool InvokeInsertIntoBtreeU32(const FReducerEventContext& Context, const UInsertIntoBtreeU32Reducer* Args); - bool InvokeInsertIntoBtreeU32WithArgs(const FReducerEventContext& Context, const FInsertIntoBtreeU32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU32", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneU32QueryToBlueprintQuery(const FOneU32Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertIntoIndexedSimpleEnumHandler, - const FReducerEventContext&, Context, - const ESimpleEnumType&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertIntoIndexedSimpleEnumHandler OnInsertIntoIndexedSimpleEnum; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU32", meta=(DisplayName="OneU32 Where")) + static FOneU32Query OneU32Where(FOneU32Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertIntoIndexedSimpleEnum(const ESimpleEnumType& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU64", meta=(DisplayName="From OneU64")) + static FOneU64Query FromOneU64() + { + FOneU64Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneU64().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_u_64"); + return Query; + } - bool InvokeInsertIntoIndexedSimpleEnum(const FReducerEventContext& Context, const UInsertIntoIndexedSimpleEnumReducer* Args); - bool InvokeInsertIntoIndexedSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertIntoIndexedSimpleEnumArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU64", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneU64QueryToBlueprintQuery(const FOneU64Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertIntoPkBtreeU32Handler, - const FReducerEventContext&, Context, - const TArray&, PkU32, - const TArray&, BtU32 - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertIntoPkBtreeU32Handler OnInsertIntoPkBtreeU32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU64", meta=(DisplayName="OneU64 Where")) + static FOneU64Query OneU64Where(FOneU64Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertIntoPkBtreeU32(const TArray& PkU32, const TArray& BtU32); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU8", meta=(DisplayName="From OneU8")) + static FOneU8Query FromOneU8() + { + FOneU8Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneU8().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_u_8"); + return Query; + } - bool InvokeInsertIntoPkBtreeU32(const FReducerEventContext& Context, const UInsertIntoPkBtreeU32Reducer* Args); - bool InvokeInsertIntoPkBtreeU32WithArgs(const FReducerEventContext& Context, const FInsertIntoPkBtreeU32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU8", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneU8QueryToBlueprintQuery(const FOneU8Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertLargeTableHandler, - const FReducerEventContext&, Context, - const FInsertLargeTableArgs&, Args - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertLargeTableHandler OnInsertLargeTable; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU8|Columns", meta=(DisplayName="OneU8 N")) + static FBlueprintUInt8Column OneU8N(const FOneU8Query& Query) + { + FBlueprintUInt8Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("one_u_8") : Query.ResultSourceName; + Column.ColumnName = TEXT("n"); + return Column; + } - // NOTE: Not exposed to Blueprint because uint16, uint32, uint64, int8, int16 types are not Blueprint-compatible - void InsertLargeTable(const uint8 A, const uint16 B, const uint32 C, const uint64 D, const FSpacetimeDBUInt128& E, const FSpacetimeDBUInt256& F, const int8 G, const int16 H, const int32 I, const int64 J, const FSpacetimeDBInt128& K, const FSpacetimeDBInt256& L, const bool M, const float N, const double O, const FString& P, const ESimpleEnumType& Q, const FEnumWithPayloadType& R, const FUnitStructType& S, const FByteStructType& T, const FEveryPrimitiveStructType& U, const FEveryVecStructType& V); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneU8", meta=(DisplayName="OneU8 Where")) + static FOneU8Query OneU8Where(FOneU8Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertLargeTable(const FReducerEventContext& Context, const UInsertLargeTableReducer* Args); - bool InvokeInsertLargeTableWithArgs(const FReducerEventContext& Context, const FInsertLargeTableArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneUnitStruct", meta=(DisplayName="From OneUnitStruct")) + static FOneUnitStructQuery FromOneUnitStruct() + { + FOneUnitStructQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneUnitStruct().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_unit_struct"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneBoolHandler, - const FReducerEventContext&, Context, - bool, B - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneBoolHandler OnInsertOneBool; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneUnitStruct", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneUnitStructQueryToBlueprintQuery(const FOneUnitStructQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneBool(const bool B); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneUnitStruct", meta=(DisplayName="OneUnitStruct Where")) + static FOneUnitStructQuery OneUnitStructWhere(FOneUnitStructQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertOneBool(const FReducerEventContext& Context, const UInsertOneBoolReducer* Args); - bool InvokeInsertOneBoolWithArgs(const FReducerEventContext& Context, const FInsertOneBoolArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneUuid", meta=(DisplayName="From OneUuid")) + static FOneUuidQuery FromOneUuid() + { + FOneUuidQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OneUuid().into_sql().c_str())); + Query.ResultSourceName = TEXT("one_uuid"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneByteStructHandler, - const FReducerEventContext&, Context, - const FByteStructType&, S - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneByteStructHandler OnInsertOneByteStruct; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneUuid", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OneUuidQueryToBlueprintQuery(const FOneUuidQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneByteStruct(const FByteStructType& S); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneUuid|Columns", meta=(DisplayName="OneUuid U")) + static FBlueprintUuidColumn OneUuidU(const FOneUuidQuery& Query) + { + FBlueprintUuidColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("one_uuid") : Query.ResultSourceName; + Column.ColumnName = TEXT("u"); + return Column; + } - bool InvokeInsertOneByteStruct(const FReducerEventContext& Context, const UInsertOneByteStructReducer* Args); - bool InvokeInsertOneByteStructWithArgs(const FReducerEventContext& Context, const FInsertOneByteStructArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OneUuid", meta=(DisplayName="OneUuid Where")) + static FOneUuidQuery OneUuidWhere(FOneUuidQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneConnectionIdHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBConnectionId&, A - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneConnectionIdHandler OnInsertOneConnectionId; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionEveryPrimitiveStruct", meta=(DisplayName="From OptionEveryPrimitiveStruct")) + static FOptionEveryPrimitiveStructQuery FromOptionEveryPrimitiveStruct() + { + FOptionEveryPrimitiveStructQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OptionEveryPrimitiveStruct().into_sql().c_str())); + Query.ResultSourceName = TEXT("option_every_primitive_struct"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneConnectionId(const FSpacetimeDBConnectionId& A); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionEveryPrimitiveStruct", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OptionEveryPrimitiveStructQueryToBlueprintQuery(const FOptionEveryPrimitiveStructQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertOneConnectionId(const FReducerEventContext& Context, const UInsertOneConnectionIdReducer* Args); - bool InvokeInsertOneConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertOneConnectionIdArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionEveryPrimitiveStruct", meta=(DisplayName="OptionEveryPrimitiveStruct Where")) + static FOptionEveryPrimitiveStructQuery OptionEveryPrimitiveStructWhere(FOptionEveryPrimitiveStructQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneEnumWithPayloadHandler, - const FReducerEventContext&, Context, - const FEnumWithPayloadType&, E - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneEnumWithPayloadHandler OnInsertOneEnumWithPayload; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionI32", meta=(DisplayName="From OptionI32")) + static FOptionI32Query FromOptionI32() + { + FOptionI32Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OptionI32().into_sql().c_str())); + Query.ResultSourceName = TEXT("option_i_32"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneEnumWithPayload(const FEnumWithPayloadType& E); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionI32", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OptionI32QueryToBlueprintQuery(const FOptionI32Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertOneEnumWithPayload(const FReducerEventContext& Context, const UInsertOneEnumWithPayloadReducer* Args); - bool InvokeInsertOneEnumWithPayloadWithArgs(const FReducerEventContext& Context, const FInsertOneEnumWithPayloadArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionI32", meta=(DisplayName="OptionI32 Where")) + static FOptionI32Query OptionI32Where(FOptionI32Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneEveryPrimitiveStructHandler, - const FReducerEventContext&, Context, - const FEveryPrimitiveStructType&, S - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneEveryPrimitiveStructHandler OnInsertOneEveryPrimitiveStruct; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionIdentity", meta=(DisplayName="From OptionIdentity")) + static FOptionIdentityQuery FromOptionIdentity() + { + FOptionIdentityQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OptionIdentity().into_sql().c_str())); + Query.ResultSourceName = TEXT("option_identity"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneEveryPrimitiveStruct(const FEveryPrimitiveStructType& S); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionIdentity", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OptionIdentityQueryToBlueprintQuery(const FOptionIdentityQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertOneEveryPrimitiveStruct(const FReducerEventContext& Context, const UInsertOneEveryPrimitiveStructReducer* Args); - bool InvokeInsertOneEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FInsertOneEveryPrimitiveStructArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionIdentity", meta=(DisplayName="OptionIdentity Where")) + static FOptionIdentityQuery OptionIdentityWhere(FOptionIdentityQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneEveryVecStructHandler, - const FReducerEventContext&, Context, - const FEveryVecStructType&, S - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneEveryVecStructHandler OnInsertOneEveryVecStruct; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionSimpleEnum", meta=(DisplayName="From OptionSimpleEnum")) + static FOptionSimpleEnumQuery FromOptionSimpleEnum() + { + FOptionSimpleEnumQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OptionSimpleEnum().into_sql().c_str())); + Query.ResultSourceName = TEXT("option_simple_enum"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneEveryVecStruct(const FEveryVecStructType& S); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionSimpleEnum", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OptionSimpleEnumQueryToBlueprintQuery(const FOptionSimpleEnumQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertOneEveryVecStruct(const FReducerEventContext& Context, const UInsertOneEveryVecStructReducer* Args); - bool InvokeInsertOneEveryVecStructWithArgs(const FReducerEventContext& Context, const FInsertOneEveryVecStructArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionSimpleEnum", meta=(DisplayName="OptionSimpleEnum Where")) + static FOptionSimpleEnumQuery OptionSimpleEnumWhere(FOptionSimpleEnumQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneF32Handler, - const FReducerEventContext&, Context, - float, F - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneF32Handler OnInsertOneF32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionString", meta=(DisplayName="From OptionString")) + static FOptionStringQuery FromOptionString() + { + FOptionStringQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OptionString().into_sql().c_str())); + Query.ResultSourceName = TEXT("option_string"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneF32(const float F); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionString", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OptionStringQueryToBlueprintQuery(const FOptionStringQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertOneF32(const FReducerEventContext& Context, const UInsertOneF32Reducer* Args); - bool InvokeInsertOneF32WithArgs(const FReducerEventContext& Context, const FInsertOneF32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionString", meta=(DisplayName="OptionString Where")) + static FOptionStringQuery OptionStringWhere(FOptionStringQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneF64Handler, - const FReducerEventContext&, Context, - double, F - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneF64Handler OnInsertOneF64; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionUuid", meta=(DisplayName="From OptionUuid")) + static FOptionUuidQuery FromOptionUuid() + { + FOptionUuidQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OptionUuid().into_sql().c_str())); + Query.ResultSourceName = TEXT("option_uuid"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneF64(const double F); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionUuid", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OptionUuidQueryToBlueprintQuery(const FOptionUuidQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertOneF64(const FReducerEventContext& Context, const UInsertOneF64Reducer* Args); - bool InvokeInsertOneF64WithArgs(const FReducerEventContext& Context, const FInsertOneF64Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionUuid", meta=(DisplayName="OptionUuid Where")) + static FOptionUuidQuery OptionUuidWhere(FOptionUuidQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneI128Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBInt128&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneI128Handler OnInsertOneI128; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionVecOptionI32", meta=(DisplayName="From OptionVecOptionI32")) + static FOptionVecOptionI32Query FromOptionVecOptionI32() + { + FOptionVecOptionI32Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.OptionVecOptionI32().into_sql().c_str())); + Query.ResultSourceName = TEXT("option_vec_option_i_32"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneI128(const FSpacetimeDBInt128& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionVecOptionI32", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_OptionVecOptionI32QueryToBlueprintQuery(const FOptionVecOptionI32Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertOneI128(const FReducerEventContext& Context, const UInsertOneI128Reducer* Args); - bool InvokeInsertOneI128WithArgs(const FReducerEventContext& Context, const FInsertOneI128Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|OptionVecOptionI32", meta=(DisplayName="OptionVecOptionI32 Where")) + static FOptionVecOptionI32Query OptionVecOptionI32Where(FOptionVecOptionI32Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneI16Handler, - const FReducerEventContext&, Context, - int16, N - ); - // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible - FInsertOneI16Handler OnInsertOneI16; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkBool", meta=(DisplayName="From PkBool")) + static FPkBoolQuery FromPkBool() + { + FPkBoolQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkBool().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_bool"); + return Query; + } - // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible - void InsertOneI16(const int16 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkBool", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkBoolQueryToBlueprintQuery(const FPkBoolQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertOneI16(const FReducerEventContext& Context, const UInsertOneI16Reducer* Args); - bool InvokeInsertOneI16WithArgs(const FReducerEventContext& Context, const FInsertOneI16Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkBool|Columns", meta=(DisplayName="PkBool B")) + static FBlueprintBoolColumn PkBoolB(const FPkBoolQuery& Query) + { + FBlueprintBoolColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_bool") : Query.ResultSourceName; + Column.ColumnName = TEXT("b"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneI256Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBInt256&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneI256Handler OnInsertOneI256; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkBool|Columns", meta=(DisplayName="PkBool Data")) + static FBlueprintInt32Column PkBoolData(const FPkBoolQuery& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_bool") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneI256(const FSpacetimeDBInt256& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkBool", meta=(DisplayName="PkBool Where")) + static FPkBoolQuery PkBoolWhere(FPkBoolQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertOneI256(const FReducerEventContext& Context, const UInsertOneI256Reducer* Args); - bool InvokeInsertOneI256WithArgs(const FReducerEventContext& Context, const FInsertOneI256Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkConnectionId", meta=(DisplayName="From PkConnectionId")) + static FPkConnectionIdQuery FromPkConnectionId() + { + FPkConnectionIdQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkConnectionId().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_connection_id"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneI32Handler, - const FReducerEventContext&, Context, - int32, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneI32Handler OnInsertOneI32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkConnectionId", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkConnectionIdQueryToBlueprintQuery(const FPkConnectionIdQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneI32(const int32 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkConnectionId|Columns", meta=(DisplayName="PkConnectionId A")) + static FBlueprintConnectionIdColumn PkConnectionIdA(const FPkConnectionIdQuery& Query) + { + FBlueprintConnectionIdColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_connection_id") : Query.ResultSourceName; + Column.ColumnName = TEXT("a"); + return Column; + } - bool InvokeInsertOneI32(const FReducerEventContext& Context, const UInsertOneI32Reducer* Args); - bool InvokeInsertOneI32WithArgs(const FReducerEventContext& Context, const FInsertOneI32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkConnectionId|Columns", meta=(DisplayName="PkConnectionId Data")) + static FBlueprintInt32Column PkConnectionIdData(const FPkConnectionIdQuery& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_connection_id") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneI64Handler, - const FReducerEventContext&, Context, - int64, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneI64Handler OnInsertOneI64; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkConnectionId", meta=(DisplayName="PkConnectionId Where")) + static FPkConnectionIdQuery PkConnectionIdWhere(FPkConnectionIdQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneI64(const int64 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI128", meta=(DisplayName="From PkI128")) + static FPkI128Query FromPkI128() + { + FPkI128Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkI128().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_i_128"); + return Query; + } - bool InvokeInsertOneI64(const FReducerEventContext& Context, const UInsertOneI64Reducer* Args); - bool InvokeInsertOneI64WithArgs(const FReducerEventContext& Context, const FInsertOneI64Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI128", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkI128QueryToBlueprintQuery(const FPkI128Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneI8Handler, - const FReducerEventContext&, Context, - int8, N - ); - // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible - FInsertOneI8Handler OnInsertOneI8; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI128|Columns", meta=(DisplayName="PkI128 Data")) + static FBlueprintInt32Column PkI128Data(const FPkI128Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_i_128") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible - void InsertOneI8(const int8 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI128", meta=(DisplayName="PkI128 Where")) + static FPkI128Query PkI128Where(FPkI128Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertOneI8(const FReducerEventContext& Context, const UInsertOneI8Reducer* Args); - bool InvokeInsertOneI8WithArgs(const FReducerEventContext& Context, const FInsertOneI8Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI16", meta=(DisplayName="From PkI16")) + static FPkI16Query FromPkI16() + { + FPkI16Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkI16().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_i_16"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneIdentityHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBIdentity&, I - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneIdentityHandler OnInsertOneIdentity; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI16", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkI16QueryToBlueprintQuery(const FPkI16Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneIdentity(const FSpacetimeDBIdentity& I); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI16|Columns", meta=(DisplayName="PkI16 Data")) + static FBlueprintInt32Column PkI16Data(const FPkI16Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_i_16") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - bool InvokeInsertOneIdentity(const FReducerEventContext& Context, const UInsertOneIdentityReducer* Args); - bool InvokeInsertOneIdentityWithArgs(const FReducerEventContext& Context, const FInsertOneIdentityArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI16", meta=(DisplayName="PkI16 Where")) + static FPkI16Query PkI16Where(FPkI16Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneSimpleEnumHandler, - const FReducerEventContext&, Context, - const ESimpleEnumType&, E - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneSimpleEnumHandler OnInsertOneSimpleEnum; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI256", meta=(DisplayName="From PkI256")) + static FPkI256Query FromPkI256() + { + FPkI256Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkI256().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_i_256"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneSimpleEnum(const ESimpleEnumType& E); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI256", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkI256QueryToBlueprintQuery(const FPkI256Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertOneSimpleEnum(const FReducerEventContext& Context, const UInsertOneSimpleEnumReducer* Args); - bool InvokeInsertOneSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertOneSimpleEnumArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI256|Columns", meta=(DisplayName="PkI256 Data")) + static FBlueprintInt32Column PkI256Data(const FPkI256Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_i_256") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneStringHandler, - const FReducerEventContext&, Context, - const FString&, S - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneStringHandler OnInsertOneString; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI256", meta=(DisplayName="PkI256 Where")) + static FPkI256Query PkI256Where(FPkI256Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneString(const FString& S); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI32", meta=(DisplayName="From PkI32")) + static FPkI32Query FromPkI32() + { + FPkI32Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkI32().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_i_32"); + return Query; + } - bool InvokeInsertOneString(const FReducerEventContext& Context, const UInsertOneStringReducer* Args); - bool InvokeInsertOneStringWithArgs(const FReducerEventContext& Context, const FInsertOneStringArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI32", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkI32QueryToBlueprintQuery(const FPkI32Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneTimestampHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBTimestamp&, T - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneTimestampHandler OnInsertOneTimestamp; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI32|Columns", meta=(DisplayName="PkI32 N")) + static FBlueprintInt32Column PkI32N(const FPkI32Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_i_32") : Query.ResultSourceName; + Column.ColumnName = TEXT("n"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneTimestamp(const FSpacetimeDBTimestamp& T); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI32|Columns", meta=(DisplayName="PkI32 Data")) + static FBlueprintInt32Column PkI32Data(const FPkI32Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_i_32") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - bool InvokeInsertOneTimestamp(const FReducerEventContext& Context, const UInsertOneTimestampReducer* Args); - bool InvokeInsertOneTimestampWithArgs(const FReducerEventContext& Context, const FInsertOneTimestampArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI32", meta=(DisplayName="PkI32 Where")) + static FPkI32Query PkI32Where(FPkI32Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneU128Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBUInt128&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneU128Handler OnInsertOneU128; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI64", meta=(DisplayName="From PkI64")) + static FPkI64Query FromPkI64() + { + FPkI64Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkI64().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_i_64"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneU128(const FSpacetimeDBUInt128& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI64", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkI64QueryToBlueprintQuery(const FPkI64Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertOneU128(const FReducerEventContext& Context, const UInsertOneU128Reducer* Args); - bool InvokeInsertOneU128WithArgs(const FReducerEventContext& Context, const FInsertOneU128Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI64|Columns", meta=(DisplayName="PkI64 N")) + static FBlueprintInt64Column PkI64N(const FPkI64Query& Query) + { + FBlueprintInt64Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_i_64") : Query.ResultSourceName; + Column.ColumnName = TEXT("n"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneU16Handler, - const FReducerEventContext&, Context, - uint16, N - ); - // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible - FInsertOneU16Handler OnInsertOneU16; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI64|Columns", meta=(DisplayName="PkI64 Data")) + static FBlueprintInt32Column PkI64Data(const FPkI64Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_i_64") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible - void InsertOneU16(const uint16 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI64", meta=(DisplayName="PkI64 Where")) + static FPkI64Query PkI64Where(FPkI64Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertOneU16(const FReducerEventContext& Context, const UInsertOneU16Reducer* Args); - bool InvokeInsertOneU16WithArgs(const FReducerEventContext& Context, const FInsertOneU16Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI8", meta=(DisplayName="From PkI8")) + static FPkI8Query FromPkI8() + { + FPkI8Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkI8().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_i_8"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneU256Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBUInt256&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneU256Handler OnInsertOneU256; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI8", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkI8QueryToBlueprintQuery(const FPkI8Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneU256(const FSpacetimeDBUInt256& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI8|Columns", meta=(DisplayName="PkI8 Data")) + static FBlueprintInt32Column PkI8Data(const FPkI8Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_i_8") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - bool InvokeInsertOneU256(const FReducerEventContext& Context, const UInsertOneU256Reducer* Args); - bool InvokeInsertOneU256WithArgs(const FReducerEventContext& Context, const FInsertOneU256Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkI8", meta=(DisplayName="PkI8 Where")) + static FPkI8Query PkI8Where(FPkI8Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneU32Handler, - const FReducerEventContext&, Context, - uint32, N - ); - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - FInsertOneU32Handler OnInsertOneU32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkIdentity", meta=(DisplayName="From PkIdentity")) + static FPkIdentityQuery FromPkIdentity() + { + FPkIdentityQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkIdentity().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_identity"); + return Query; + } - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - void InsertOneU32(const uint32 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkIdentity", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkIdentityQueryToBlueprintQuery(const FPkIdentityQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertOneU32(const FReducerEventContext& Context, const UInsertOneU32Reducer* Args); - bool InvokeInsertOneU32WithArgs(const FReducerEventContext& Context, const FInsertOneU32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkIdentity|Columns", meta=(DisplayName="PkIdentity I")) + static FBlueprintIdentityColumn PkIdentityI(const FPkIdentityQuery& Query) + { + FBlueprintIdentityColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_identity") : Query.ResultSourceName; + Column.ColumnName = TEXT("i"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneU64Handler, - const FReducerEventContext&, Context, - uint64, N - ); - // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible - FInsertOneU64Handler OnInsertOneU64; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkIdentity|Columns", meta=(DisplayName="PkIdentity Data")) + static FBlueprintInt32Column PkIdentityData(const FPkIdentityQuery& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_identity") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible - void InsertOneU64(const uint64 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkIdentity", meta=(DisplayName="PkIdentity Where")) + static FPkIdentityQuery PkIdentityWhere(FPkIdentityQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertOneU64(const FReducerEventContext& Context, const UInsertOneU64Reducer* Args); - bool InvokeInsertOneU64WithArgs(const FReducerEventContext& Context, const FInsertOneU64Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkSimpleEnum", meta=(DisplayName="From PkSimpleEnum")) + static FPkSimpleEnumQuery FromPkSimpleEnum() + { + FPkSimpleEnumQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkSimpleEnum().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_simple_enum"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneU8Handler, - const FReducerEventContext&, Context, - uint8, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneU8Handler OnInsertOneU8; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkSimpleEnum", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkSimpleEnumQueryToBlueprintQuery(const FPkSimpleEnumQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneU8(const uint8 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkSimpleEnum|Columns", meta=(DisplayName="PkSimpleEnum Data")) + static FBlueprintInt32Column PkSimpleEnumData(const FPkSimpleEnumQuery& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_simple_enum") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - bool InvokeInsertOneU8(const FReducerEventContext& Context, const UInsertOneU8Reducer* Args); - bool InvokeInsertOneU8WithArgs(const FReducerEventContext& Context, const FInsertOneU8Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkSimpleEnum", meta=(DisplayName="PkSimpleEnum Where")) + static FPkSimpleEnumQuery PkSimpleEnumWhere(FPkSimpleEnumQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneUnitStructHandler, - const FReducerEventContext&, Context, - const FUnitStructType&, S - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneUnitStructHandler OnInsertOneUnitStruct; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkString", meta=(DisplayName="From PkString")) + static FPkStringQuery FromPkString() + { + FPkStringQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkString().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_string"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneUnitStruct(const FUnitStructType& S); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkString", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkStringQueryToBlueprintQuery(const FPkStringQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertOneUnitStruct(const FReducerEventContext& Context, const UInsertOneUnitStructReducer* Args); - bool InvokeInsertOneUnitStructWithArgs(const FReducerEventContext& Context, const FInsertOneUnitStructArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkString|Columns", meta=(DisplayName="PkString S")) + static FBlueprintStringColumn PkStringS(const FPkStringQuery& Query) + { + FBlueprintStringColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_string") : Query.ResultSourceName; + Column.ColumnName = TEXT("s"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOneUuidHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBUuid&, U - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOneUuidHandler OnInsertOneUuid; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkString|Columns", meta=(DisplayName="PkString Data")) + static FBlueprintInt32Column PkStringData(const FPkStringQuery& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_string") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOneUuid(const FSpacetimeDBUuid& U); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkString", meta=(DisplayName="PkString Where")) + static FPkStringQuery PkStringWhere(FPkStringQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertOneUuid(const FReducerEventContext& Context, const UInsertOneUuidReducer* Args); - bool InvokeInsertOneUuidWithArgs(const FReducerEventContext& Context, const FInsertOneUuidArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU128", meta=(DisplayName="From PkU128")) + static FPkU128Query FromPkU128() + { + FPkU128Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkU128().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_u_128"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOptionEveryPrimitiveStructHandler, - const FReducerEventContext&, Context, - const FTestClientOptionalEveryPrimitiveStruct&, S - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOptionEveryPrimitiveStructHandler OnInsertOptionEveryPrimitiveStruct; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU128", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkU128QueryToBlueprintQuery(const FPkU128Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOptionEveryPrimitiveStruct(const FTestClientOptionalEveryPrimitiveStruct& S); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU128|Columns", meta=(DisplayName="PkU128 Data")) + static FBlueprintInt32Column PkU128Data(const FPkU128Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_u_128") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - bool InvokeInsertOptionEveryPrimitiveStruct(const FReducerEventContext& Context, const UInsertOptionEveryPrimitiveStructReducer* Args); - bool InvokeInsertOptionEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FInsertOptionEveryPrimitiveStructArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU128", meta=(DisplayName="PkU128 Where")) + static FPkU128Query PkU128Where(FPkU128Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOptionI32Handler, - const FReducerEventContext&, Context, - FTestClientOptionalInt32, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOptionI32Handler OnInsertOptionI32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU16", meta=(DisplayName="From PkU16")) + static FPkU16Query FromPkU16() + { + FPkU16Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkU16().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_u_16"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOptionI32(const FTestClientOptionalInt32 N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU16", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkU16QueryToBlueprintQuery(const FPkU16Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertOptionI32(const FReducerEventContext& Context, const UInsertOptionI32Reducer* Args); - bool InvokeInsertOptionI32WithArgs(const FReducerEventContext& Context, const FInsertOptionI32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU16|Columns", meta=(DisplayName="PkU16 Data")) + static FBlueprintInt32Column PkU16Data(const FPkU16Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_u_16") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOptionIdentityHandler, - const FReducerEventContext&, Context, - const FTestClientOptionalIdentity&, I - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOptionIdentityHandler OnInsertOptionIdentity; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU16", meta=(DisplayName="PkU16 Where")) + static FPkU16Query PkU16Where(FPkU16Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOptionIdentity(const FTestClientOptionalIdentity& I); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU256", meta=(DisplayName="From PkU256")) + static FPkU256Query FromPkU256() + { + FPkU256Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkU256().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_u_256"); + return Query; + } - bool InvokeInsertOptionIdentity(const FReducerEventContext& Context, const UInsertOptionIdentityReducer* Args); - bool InvokeInsertOptionIdentityWithArgs(const FReducerEventContext& Context, const FInsertOptionIdentityArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU256", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkU256QueryToBlueprintQuery(const FPkU256Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOptionSimpleEnumHandler, - const FReducerEventContext&, Context, - const FTestClientOptionalSimpleEnum&, E - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOptionSimpleEnumHandler OnInsertOptionSimpleEnum; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU256|Columns", meta=(DisplayName="PkU256 Data")) + static FBlueprintInt32Column PkU256Data(const FPkU256Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_u_256") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOptionSimpleEnum(const FTestClientOptionalSimpleEnum& E); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU256", meta=(DisplayName="PkU256 Where")) + static FPkU256Query PkU256Where(FPkU256Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertOptionSimpleEnum(const FReducerEventContext& Context, const UInsertOptionSimpleEnumReducer* Args); - bool InvokeInsertOptionSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertOptionSimpleEnumArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU32", meta=(DisplayName="From PkU32")) + static FPkU32Query FromPkU32() + { + FPkU32Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkU32().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_u_32"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOptionStringHandler, - const FReducerEventContext&, Context, - const FTestClientOptionalString&, S - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOptionStringHandler OnInsertOptionString; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU32", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkU32QueryToBlueprintQuery(const FPkU32Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOptionString(const FTestClientOptionalString& S); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU32|Columns", meta=(DisplayName="PkU32 Data")) + static FBlueprintInt32Column PkU32Data(const FPkU32Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_u_32") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - bool InvokeInsertOptionString(const FReducerEventContext& Context, const UInsertOptionStringReducer* Args); - bool InvokeInsertOptionStringWithArgs(const FReducerEventContext& Context, const FInsertOptionStringArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU32", meta=(DisplayName="PkU32 Where")) + static FPkU32Query PkU32Where(FPkU32Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOptionUuidHandler, - const FReducerEventContext&, Context, - const FTestClientOptionalUuid&, U - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOptionUuidHandler OnInsertOptionUuid; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU32Two", meta=(DisplayName="From PkU32Two")) + static FPkU32TwoQuery FromPkU32Two() + { + FPkU32TwoQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkU32Two().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_u_32_two"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOptionUuid(const FTestClientOptionalUuid& U); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU32Two", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkU32TwoQueryToBlueprintQuery(const FPkU32TwoQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertOptionUuid(const FReducerEventContext& Context, const UInsertOptionUuidReducer* Args); - bool InvokeInsertOptionUuidWithArgs(const FReducerEventContext& Context, const FInsertOptionUuidArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU32Two|Columns", meta=(DisplayName="PkU32Two Data")) + static FBlueprintInt32Column PkU32TwoData(const FPkU32TwoQuery& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_u_32_two") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertOptionVecOptionI32Handler, - const FReducerEventContext&, Context, - const FTestClientOptionalVecOptionalInt32&, V - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertOptionVecOptionI32Handler OnInsertOptionVecOptionI32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU32Two", meta=(DisplayName="PkU32Two Where")) + static FPkU32TwoQuery PkU32TwoWhere(FPkU32TwoQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertOptionVecOptionI32(const FTestClientOptionalVecOptionalInt32& V); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU64", meta=(DisplayName="From PkU64")) + static FPkU64Query FromPkU64() + { + FPkU64Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkU64().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_u_64"); + return Query; + } - bool InvokeInsertOptionVecOptionI32(const FReducerEventContext& Context, const UInsertOptionVecOptionI32Reducer* Args); - bool InvokeInsertOptionVecOptionI32WithArgs(const FReducerEventContext& Context, const FInsertOptionVecOptionI32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU64", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkU64QueryToBlueprintQuery(const FPkU64Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkBoolHandler, - const FReducerEventContext&, Context, - bool, B, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertPkBoolHandler OnInsertPkBool; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU64|Columns", meta=(DisplayName="PkU64 Data")) + static FBlueprintInt32Column PkU64Data(const FPkU64Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_u_64") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertPkBool(const bool B, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU64", meta=(DisplayName="PkU64 Where")) + static FPkU64Query PkU64Where(FPkU64Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertPkBool(const FReducerEventContext& Context, const UInsertPkBoolReducer* Args); - bool InvokeInsertPkBoolWithArgs(const FReducerEventContext& Context, const FInsertPkBoolArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU8", meta=(DisplayName="From PkU8")) + static FPkU8Query FromPkU8() + { + FPkU8Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkU8().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_u_8"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkConnectionIdHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBConnectionId&, A, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertPkConnectionIdHandler OnInsertPkConnectionId; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU8", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkU8QueryToBlueprintQuery(const FPkU8Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertPkConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU8|Columns", meta=(DisplayName="PkU8 N")) + static FBlueprintUInt8Column PkU8N(const FPkU8Query& Query) + { + FBlueprintUInt8Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_u_8") : Query.ResultSourceName; + Column.ColumnName = TEXT("n"); + return Column; + } - bool InvokeInsertPkConnectionId(const FReducerEventContext& Context, const UInsertPkConnectionIdReducer* Args); - bool InvokeInsertPkConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertPkConnectionIdArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU8|Columns", meta=(DisplayName="PkU8 Data")) + static FBlueprintInt32Column PkU8Data(const FPkU8Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_u_8") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkI128Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBInt128&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertPkI128Handler OnInsertPkI128; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkU8", meta=(DisplayName="PkU8 Where")) + static FPkU8Query PkU8Where(FPkU8Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertPkI128(const FSpacetimeDBInt128& N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkUuid", meta=(DisplayName="From PkUuid")) + static FPkUuidQuery FromPkUuid() + { + FPkUuidQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkUuid().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_uuid"); + return Query; + } - bool InvokeInsertPkI128(const FReducerEventContext& Context, const UInsertPkI128Reducer* Args); - bool InvokeInsertPkI128WithArgs(const FReducerEventContext& Context, const FInsertPkI128Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkUuid", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkUuidQueryToBlueprintQuery(const FPkUuidQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkI16Handler, - const FReducerEventContext&, Context, - int16, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible - FInsertPkI16Handler OnInsertPkI16; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkUuid|Columns", meta=(DisplayName="PkUuid U")) + static FBlueprintUuidColumn PkUuidU(const FPkUuidQuery& Query) + { + FBlueprintUuidColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_uuid") : Query.ResultSourceName; + Column.ColumnName = TEXT("u"); + return Column; + } - // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible - void InsertPkI16(const int16 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkUuid|Columns", meta=(DisplayName="PkUuid Data")) + static FBlueprintInt32Column PkUuidData(const FPkUuidQuery& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_uuid") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - bool InvokeInsertPkI16(const FReducerEventContext& Context, const UInsertPkI16Reducer* Args); - bool InvokeInsertPkI16WithArgs(const FReducerEventContext& Context, const FInsertPkI16Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkUuid", meta=(DisplayName="PkUuid Where")) + static FPkUuidQuery PkUuidWhere(FPkUuidQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkI256Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBInt256&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertPkI256Handler OnInsertPkI256; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultEveryPrimitiveStructString", meta=(DisplayName="From ResultEveryPrimitiveStructString")) + static FResultEveryPrimitiveStructStringQuery FromResultEveryPrimitiveStructString() + { + FResultEveryPrimitiveStructStringQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.ResultEveryPrimitiveStructString().into_sql().c_str())); + Query.ResultSourceName = TEXT("result_every_primitive_struct_string"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertPkI256(const FSpacetimeDBInt256& N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultEveryPrimitiveStructString", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_ResultEveryPrimitiveStructStringQueryToBlueprintQuery(const FResultEveryPrimitiveStructStringQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertPkI256(const FReducerEventContext& Context, const UInsertPkI256Reducer* Args); - bool InvokeInsertPkI256WithArgs(const FReducerEventContext& Context, const FInsertPkI256Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultEveryPrimitiveStructString", meta=(DisplayName="ResultEveryPrimitiveStructString Where")) + static FResultEveryPrimitiveStructStringQuery ResultEveryPrimitiveStructStringWhere(FResultEveryPrimitiveStructStringQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkI32Handler, - const FReducerEventContext&, Context, - int32, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertPkI32Handler OnInsertPkI32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultI32String", meta=(DisplayName="From ResultI32String")) + static FResultI32StringQuery FromResultI32String() + { + FResultI32StringQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.ResultI32String().into_sql().c_str())); + Query.ResultSourceName = TEXT("result_i_32_string"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertPkI32(const int32 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultI32String", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_ResultI32StringQueryToBlueprintQuery(const FResultI32StringQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertPkI32(const FReducerEventContext& Context, const UInsertPkI32Reducer* Args); - bool InvokeInsertPkI32WithArgs(const FReducerEventContext& Context, const FInsertPkI32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultI32String", meta=(DisplayName="ResultI32String Where")) + static FResultI32StringQuery ResultI32StringWhere(FResultI32StringQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkI64Handler, - const FReducerEventContext&, Context, - int64, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertPkI64Handler OnInsertPkI64; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultIdentityString", meta=(DisplayName="From ResultIdentityString")) + static FResultIdentityStringQuery FromResultIdentityString() + { + FResultIdentityStringQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.ResultIdentityString().into_sql().c_str())); + Query.ResultSourceName = TEXT("result_identity_string"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertPkI64(const int64 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultIdentityString", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_ResultIdentityStringQueryToBlueprintQuery(const FResultIdentityStringQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertPkI64(const FReducerEventContext& Context, const UInsertPkI64Reducer* Args); - bool InvokeInsertPkI64WithArgs(const FReducerEventContext& Context, const FInsertPkI64Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultIdentityString", meta=(DisplayName="ResultIdentityString Where")) + static FResultIdentityStringQuery ResultIdentityStringWhere(FResultIdentityStringQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkI8Handler, - const FReducerEventContext&, Context, - int8, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible - FInsertPkI8Handler OnInsertPkI8; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultSimpleEnumI32", meta=(DisplayName="From ResultSimpleEnumI32")) + static FResultSimpleEnumI32Query FromResultSimpleEnumI32() + { + FResultSimpleEnumI32Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.ResultSimpleEnumI32().into_sql().c_str())); + Query.ResultSourceName = TEXT("result_simple_enum_i_32"); + return Query; + } - // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible - void InsertPkI8(const int8 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultSimpleEnumI32", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_ResultSimpleEnumI32QueryToBlueprintQuery(const FResultSimpleEnumI32Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertPkI8(const FReducerEventContext& Context, const UInsertPkI8Reducer* Args); - bool InvokeInsertPkI8WithArgs(const FReducerEventContext& Context, const FInsertPkI8Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultSimpleEnumI32", meta=(DisplayName="ResultSimpleEnumI32 Where")) + static FResultSimpleEnumI32Query ResultSimpleEnumI32Where(FResultSimpleEnumI32Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkIdentityHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBIdentity&, I, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertPkIdentityHandler OnInsertPkIdentity; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultStringI32", meta=(DisplayName="From ResultStringI32")) + static FResultStringI32Query FromResultStringI32() + { + FResultStringI32Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.ResultStringI32().into_sql().c_str())); + Query.ResultSourceName = TEXT("result_string_i_32"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertPkIdentity(const FSpacetimeDBIdentity& I, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultStringI32", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_ResultStringI32QueryToBlueprintQuery(const FResultStringI32Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertPkIdentity(const FReducerEventContext& Context, const UInsertPkIdentityReducer* Args); - bool InvokeInsertPkIdentityWithArgs(const FReducerEventContext& Context, const FInsertPkIdentityArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultStringI32", meta=(DisplayName="ResultStringI32 Where")) + static FResultStringI32Query ResultStringI32Where(FResultStringI32Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkSimpleEnumHandler, - const FReducerEventContext&, Context, - const ESimpleEnumType&, A, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertPkSimpleEnumHandler OnInsertPkSimpleEnum; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultVecI32String", meta=(DisplayName="From ResultVecI32String")) + static FResultVecI32StringQuery FromResultVecI32String() + { + FResultVecI32StringQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.ResultVecI32String().into_sql().c_str())); + Query.ResultSourceName = TEXT("result_vec_i_32_string"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertPkSimpleEnum(const ESimpleEnumType& A, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultVecI32String", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_ResultVecI32StringQueryToBlueprintQuery(const FResultVecI32StringQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertPkSimpleEnum(const FReducerEventContext& Context, const UInsertPkSimpleEnumReducer* Args); - bool InvokeInsertPkSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertPkSimpleEnumArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ResultVecI32String", meta=(DisplayName="ResultVecI32String Where")) + static FResultVecI32StringQuery ResultVecI32StringWhere(FResultVecI32StringQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkStringHandler, - const FReducerEventContext&, Context, - const FString&, S, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertPkStringHandler OnInsertPkString; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ScheduledTable", meta=(DisplayName="From ScheduledTable")) + static FScheduledTableQuery FromScheduledTable() + { + FScheduledTableQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.ScheduledTable().into_sql().c_str())); + Query.ResultSourceName = TEXT("scheduled_table"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertPkString(const FString& S, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ScheduledTable", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_ScheduledTableQueryToBlueprintQuery(const FScheduledTableQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertPkString(const FReducerEventContext& Context, const UInsertPkStringReducer* Args); - bool InvokeInsertPkStringWithArgs(const FReducerEventContext& Context, const FInsertPkStringArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ScheduledTable|Columns", meta=(DisplayName="ScheduledTable Text")) + static FBlueprintStringColumn ScheduledTableText(const FScheduledTableQuery& Query) + { + FBlueprintStringColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("scheduled_table") : Query.ResultSourceName; + Column.ColumnName = TEXT("text"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkU128Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBUInt128&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertPkU128Handler OnInsertPkU128; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ScheduledTable", meta=(DisplayName="ScheduledTable Where")) + static FScheduledTableQuery ScheduledTableWhere(FScheduledTableQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertPkU128(const FSpacetimeDBUInt128& N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|TableHoldsTable", meta=(DisplayName="From TableHoldsTable")) + static FTableHoldsTableQuery FromTableHoldsTable() + { + FTableHoldsTableQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.TableHoldsTable().into_sql().c_str())); + Query.ResultSourceName = TEXT("table_holds_table"); + return Query; + } - bool InvokeInsertPkU128(const FReducerEventContext& Context, const UInsertPkU128Reducer* Args); - bool InvokeInsertPkU128WithArgs(const FReducerEventContext& Context, const FInsertPkU128Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|TableHoldsTable", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_TableHoldsTableQueryToBlueprintQuery(const FTableHoldsTableQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkU16Handler, - const FReducerEventContext&, Context, - uint16, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible - FInsertPkU16Handler OnInsertPkU16; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|TableHoldsTable", meta=(DisplayName="TableHoldsTable Where")) + static FTableHoldsTableQuery TableHoldsTableWhere(FTableHoldsTableQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible - void InsertPkU16(const uint16 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueBool", meta=(DisplayName="From UniqueBool")) + static FUniqueBoolQuery FromUniqueBool() + { + FUniqueBoolQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueBool().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_bool"); + return Query; + } - bool InvokeInsertPkU16(const FReducerEventContext& Context, const UInsertPkU16Reducer* Args); - bool InvokeInsertPkU16WithArgs(const FReducerEventContext& Context, const FInsertPkU16Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueBool", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueBoolQueryToBlueprintQuery(const FUniqueBoolQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkU256Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBUInt256&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertPkU256Handler OnInsertPkU256; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueBool|Columns", meta=(DisplayName="UniqueBool B")) + static FBlueprintBoolColumn UniqueBoolB(const FUniqueBoolQuery& Query) + { + FBlueprintBoolColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_bool") : Query.ResultSourceName; + Column.ColumnName = TEXT("b"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertPkU256(const FSpacetimeDBUInt256& N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueBool|Columns", meta=(DisplayName="UniqueBool Data")) + static FBlueprintInt32Column UniqueBoolData(const FUniqueBoolQuery& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_bool") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - bool InvokeInsertPkU256(const FReducerEventContext& Context, const UInsertPkU256Reducer* Args); - bool InvokeInsertPkU256WithArgs(const FReducerEventContext& Context, const FInsertPkU256Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueBool", meta=(DisplayName="UniqueBool Where")) + static FUniqueBoolQuery UniqueBoolWhere(FUniqueBoolQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkU32Handler, - const FReducerEventContext&, Context, - uint32, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - FInsertPkU32Handler OnInsertPkU32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueConnectionId", meta=(DisplayName="From UniqueConnectionId")) + static FUniqueConnectionIdQuery FromUniqueConnectionId() + { + FUniqueConnectionIdQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueConnectionId().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_connection_id"); + return Query; + } - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - void InsertPkU32(const uint32 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueConnectionId", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueConnectionIdQueryToBlueprintQuery(const FUniqueConnectionIdQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertPkU32(const FReducerEventContext& Context, const UInsertPkU32Reducer* Args); - bool InvokeInsertPkU32WithArgs(const FReducerEventContext& Context, const FInsertPkU32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueConnectionId|Columns", meta=(DisplayName="UniqueConnectionId A")) + static FBlueprintConnectionIdColumn UniqueConnectionIdA(const FUniqueConnectionIdQuery& Query) + { + FBlueprintConnectionIdColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_connection_id") : Query.ResultSourceName; + Column.ColumnName = TEXT("a"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkU32TwoHandler, - const FReducerEventContext&, Context, - uint32, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - FInsertPkU32TwoHandler OnInsertPkU32Two; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueConnectionId|Columns", meta=(DisplayName="UniqueConnectionId Data")) + static FBlueprintInt32Column UniqueConnectionIdData(const FUniqueConnectionIdQuery& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_connection_id") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - void InsertPkU32Two(const uint32 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueConnectionId", meta=(DisplayName="UniqueConnectionId Where")) + static FUniqueConnectionIdQuery UniqueConnectionIdWhere(FUniqueConnectionIdQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertPkU32Two(const FReducerEventContext& Context, const UInsertPkU32TwoReducer* Args); - bool InvokeInsertPkU32TwoWithArgs(const FReducerEventContext& Context, const FInsertPkU32TwoArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI128", meta=(DisplayName="From UniqueI128")) + static FUniqueI128Query FromUniqueI128() + { + FUniqueI128Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueI128().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_i_128"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkU64Handler, - const FReducerEventContext&, Context, - uint64, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible - FInsertPkU64Handler OnInsertPkU64; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI128", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueI128QueryToBlueprintQuery(const FUniqueI128Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible - void InsertPkU64(const uint64 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI128|Columns", meta=(DisplayName="UniqueI128 Data")) + static FBlueprintInt32Column UniqueI128Data(const FUniqueI128Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_i_128") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - bool InvokeInsertPkU64(const FReducerEventContext& Context, const UInsertPkU64Reducer* Args); - bool InvokeInsertPkU64WithArgs(const FReducerEventContext& Context, const FInsertPkU64Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI128", meta=(DisplayName="UniqueI128 Where")) + static FUniqueI128Query UniqueI128Where(FUniqueI128Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkU8Handler, - const FReducerEventContext&, Context, - uint8, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertPkU8Handler OnInsertPkU8; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI16", meta=(DisplayName="From UniqueI16")) + static FUniqueI16Query FromUniqueI16() + { + FUniqueI16Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueI16().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_i_16"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertPkU8(const uint8 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI16", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueI16QueryToBlueprintQuery(const FUniqueI16Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertPkU8(const FReducerEventContext& Context, const UInsertPkU8Reducer* Args); - bool InvokeInsertPkU8WithArgs(const FReducerEventContext& Context, const FInsertPkU8Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI16|Columns", meta=(DisplayName="UniqueI16 Data")) + static FBlueprintInt32Column UniqueI16Data(const FUniqueI16Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_i_16") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertPkUuidHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBUuid&, U, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertPkUuidHandler OnInsertPkUuid; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI16", meta=(DisplayName="UniqueI16 Where")) + static FUniqueI16Query UniqueI16Where(FUniqueI16Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertPkUuid(const FSpacetimeDBUuid& U, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI256", meta=(DisplayName="From UniqueI256")) + static FUniqueI256Query FromUniqueI256() + { + FUniqueI256Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueI256().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_i_256"); + return Query; + } - bool InvokeInsertPkUuid(const FReducerEventContext& Context, const UInsertPkUuidReducer* Args); - bool InvokeInsertPkUuidWithArgs(const FReducerEventContext& Context, const FInsertPkUuidArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI256", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueI256QueryToBlueprintQuery(const FUniqueI256Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertPrimitivesAsStringsHandler, - const FReducerEventContext&, Context, - const FEveryPrimitiveStructType&, S - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertPrimitivesAsStringsHandler OnInsertPrimitivesAsStrings; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI256|Columns", meta=(DisplayName="UniqueI256 Data")) + static FBlueprintInt32Column UniqueI256Data(const FUniqueI256Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_i_256") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertPrimitivesAsStrings(const FEveryPrimitiveStructType& S); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI256", meta=(DisplayName="UniqueI256 Where")) + static FUniqueI256Query UniqueI256Where(FUniqueI256Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertPrimitivesAsStrings(const FReducerEventContext& Context, const UInsertPrimitivesAsStringsReducer* Args); - bool InvokeInsertPrimitivesAsStringsWithArgs(const FReducerEventContext& Context, const FInsertPrimitivesAsStringsArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI32", meta=(DisplayName="From UniqueI32")) + static FUniqueI32Query FromUniqueI32() + { + FUniqueI32Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueI32().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_i_32"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI32", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueI32QueryToBlueprintQuery(const FUniqueI32Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertResultEveryPrimitiveStructStringHandler, - const FReducerEventContext&, Context, - const FTestClientResultEveryPrimitiveStructString&, R - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertResultEveryPrimitiveStructStringHandler OnInsertResultEveryPrimitiveStructString; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI32|Columns", meta=(DisplayName="UniqueI32 N")) + static FBlueprintInt32Column UniqueI32N(const FUniqueI32Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_i_32") : Query.ResultSourceName; + Column.ColumnName = TEXT("n"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertResultEveryPrimitiveStructString(const FTestClientResultEveryPrimitiveStructString& R); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI32|Columns", meta=(DisplayName="UniqueI32 Data")) + static FBlueprintInt32Column UniqueI32Data(const FUniqueI32Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_i_32") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - bool InvokeInsertResultEveryPrimitiveStructString(const FReducerEventContext& Context, const UInsertResultEveryPrimitiveStructStringReducer* Args); - bool InvokeInsertResultEveryPrimitiveStructStringWithArgs(const FReducerEventContext& Context, const FInsertResultEveryPrimitiveStructStringArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI32", meta=(DisplayName="UniqueI32 Where")) + static FUniqueI32Query UniqueI32Where(FUniqueI32Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertResultI32StringHandler, - const FReducerEventContext&, Context, - const FTestClientResultInt32String&, R - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertResultI32StringHandler OnInsertResultI32String; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI64", meta=(DisplayName="From UniqueI64")) + static FUniqueI64Query FromUniqueI64() + { + FUniqueI64Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueI64().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_i_64"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertResultI32String(const FTestClientResultInt32String& R); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI64", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueI64QueryToBlueprintQuery(const FUniqueI64Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertResultI32String(const FReducerEventContext& Context, const UInsertResultI32StringReducer* Args); - bool InvokeInsertResultI32StringWithArgs(const FReducerEventContext& Context, const FInsertResultI32StringArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI64|Columns", meta=(DisplayName="UniqueI64 N")) + static FBlueprintInt64Column UniqueI64N(const FUniqueI64Query& Query) + { + FBlueprintInt64Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_i_64") : Query.ResultSourceName; + Column.ColumnName = TEXT("n"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertResultIdentityStringHandler, - const FReducerEventContext&, Context, - const FTestClientResultIdentityString&, R - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertResultIdentityStringHandler OnInsertResultIdentityString; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI64|Columns", meta=(DisplayName="UniqueI64 Data")) + static FBlueprintInt32Column UniqueI64Data(const FUniqueI64Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_i_64") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertResultIdentityString(const FTestClientResultIdentityString& R); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI64", meta=(DisplayName="UniqueI64 Where")) + static FUniqueI64Query UniqueI64Where(FUniqueI64Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertResultIdentityString(const FReducerEventContext& Context, const UInsertResultIdentityStringReducer* Args); - bool InvokeInsertResultIdentityStringWithArgs(const FReducerEventContext& Context, const FInsertResultIdentityStringArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI8", meta=(DisplayName="From UniqueI8")) + static FUniqueI8Query FromUniqueI8() + { + FUniqueI8Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueI8().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_i_8"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertResultSimpleEnumI32Handler, - const FReducerEventContext&, Context, - const FTestClientResultSimpleEnumInt32&, R - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertResultSimpleEnumI32Handler OnInsertResultSimpleEnumI32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI8", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueI8QueryToBlueprintQuery(const FUniqueI8Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertResultSimpleEnumI32(const FTestClientResultSimpleEnumInt32& R); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI8|Columns", meta=(DisplayName="UniqueI8 Data")) + static FBlueprintInt32Column UniqueI8Data(const FUniqueI8Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_i_8") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - bool InvokeInsertResultSimpleEnumI32(const FReducerEventContext& Context, const UInsertResultSimpleEnumI32Reducer* Args); - bool InvokeInsertResultSimpleEnumI32WithArgs(const FReducerEventContext& Context, const FInsertResultSimpleEnumI32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueI8", meta=(DisplayName="UniqueI8 Where")) + static FUniqueI8Query UniqueI8Where(FUniqueI8Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertResultStringI32Handler, - const FReducerEventContext&, Context, - const FTestClientResultStringInt32&, R - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertResultStringI32Handler OnInsertResultStringI32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueIdentity", meta=(DisplayName="From UniqueIdentity")) + static FUniqueIdentityQuery FromUniqueIdentity() + { + FUniqueIdentityQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueIdentity().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_identity"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertResultStringI32(const FTestClientResultStringInt32& R); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueIdentity", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueIdentityQueryToBlueprintQuery(const FUniqueIdentityQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertResultStringI32(const FReducerEventContext& Context, const UInsertResultStringI32Reducer* Args); - bool InvokeInsertResultStringI32WithArgs(const FReducerEventContext& Context, const FInsertResultStringI32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueIdentity|Columns", meta=(DisplayName="UniqueIdentity I")) + static FBlueprintIdentityColumn UniqueIdentityI(const FUniqueIdentityQuery& Query) + { + FBlueprintIdentityColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_identity") : Query.ResultSourceName; + Column.ColumnName = TEXT("i"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertResultVecI32StringHandler, - const FReducerEventContext&, Context, - const FTestClientResultVecInt32String&, R - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertResultVecI32StringHandler OnInsertResultVecI32String; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueIdentity|Columns", meta=(DisplayName="UniqueIdentity Data")) + static FBlueprintInt32Column UniqueIdentityData(const FUniqueIdentityQuery& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_identity") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertResultVecI32String(const FTestClientResultVecInt32String& R); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueIdentity", meta=(DisplayName="UniqueIdentity Where")) + static FUniqueIdentityQuery UniqueIdentityWhere(FUniqueIdentityQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertResultVecI32String(const FReducerEventContext& Context, const UInsertResultVecI32StringReducer* Args); - bool InvokeInsertResultVecI32StringWithArgs(const FReducerEventContext& Context, const FInsertResultVecI32StringArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueString", meta=(DisplayName="From UniqueString")) + static FUniqueStringQuery FromUniqueString() + { + FUniqueStringQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueString().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_string"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertTableHoldsTableHandler, - const FReducerEventContext&, Context, - const FOneU8Type&, A, - const FVecU8Type&, B - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertTableHoldsTableHandler OnInsertTableHoldsTable; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueString", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueStringQueryToBlueprintQuery(const FUniqueStringQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertTableHoldsTable(const FOneU8Type& A, const FVecU8Type& B); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueString|Columns", meta=(DisplayName="UniqueString S")) + static FBlueprintStringColumn UniqueStringS(const FUniqueStringQuery& Query) + { + FBlueprintStringColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_string") : Query.ResultSourceName; + Column.ColumnName = TEXT("s"); + return Column; + } - bool InvokeInsertTableHoldsTable(const FReducerEventContext& Context, const UInsertTableHoldsTableReducer* Args); - bool InvokeInsertTableHoldsTableWithArgs(const FReducerEventContext& Context, const FInsertTableHoldsTableArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueString|Columns", meta=(DisplayName="UniqueString Data")) + static FBlueprintInt32Column UniqueStringData(const FUniqueStringQuery& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_string") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueBoolHandler, - const FReducerEventContext&, Context, - bool, B, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertUniqueBoolHandler OnInsertUniqueBool; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueString", meta=(DisplayName="UniqueString Where")) + static FUniqueStringQuery UniqueStringWhere(FUniqueStringQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertUniqueBool(const bool B, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU128", meta=(DisplayName="From UniqueU128")) + static FUniqueU128Query FromUniqueU128() + { + FUniqueU128Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueU128().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_u_128"); + return Query; + } - bool InvokeInsertUniqueBool(const FReducerEventContext& Context, const UInsertUniqueBoolReducer* Args); - bool InvokeInsertUniqueBoolWithArgs(const FReducerEventContext& Context, const FInsertUniqueBoolArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU128", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueU128QueryToBlueprintQuery(const FUniqueU128Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueConnectionIdHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBConnectionId&, A, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertUniqueConnectionIdHandler OnInsertUniqueConnectionId; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU128|Columns", meta=(DisplayName="UniqueU128 Data")) + static FBlueprintInt32Column UniqueU128Data(const FUniqueU128Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_u_128") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertUniqueConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU128", meta=(DisplayName="UniqueU128 Where")) + static FUniqueU128Query UniqueU128Where(FUniqueU128Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertUniqueConnectionId(const FReducerEventContext& Context, const UInsertUniqueConnectionIdReducer* Args); - bool InvokeInsertUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertUniqueConnectionIdArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU16", meta=(DisplayName="From UniqueU16")) + static FUniqueU16Query FromUniqueU16() + { + FUniqueU16Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueU16().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_u_16"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueI128Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBInt128&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertUniqueI128Handler OnInsertUniqueI128; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU16", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueU16QueryToBlueprintQuery(const FUniqueU16Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertUniqueI128(const FSpacetimeDBInt128& N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU16|Columns", meta=(DisplayName="UniqueU16 Data")) + static FBlueprintInt32Column UniqueU16Data(const FUniqueU16Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_u_16") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - bool InvokeInsertUniqueI128(const FReducerEventContext& Context, const UInsertUniqueI128Reducer* Args); - bool InvokeInsertUniqueI128WithArgs(const FReducerEventContext& Context, const FInsertUniqueI128Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU16", meta=(DisplayName="UniqueU16 Where")) + static FUniqueU16Query UniqueU16Where(FUniqueU16Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueI16Handler, - const FReducerEventContext&, Context, - int16, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible - FInsertUniqueI16Handler OnInsertUniqueI16; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU256", meta=(DisplayName="From UniqueU256")) + static FUniqueU256Query FromUniqueU256() + { + FUniqueU256Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueU256().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_u_256"); + return Query; + } - // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible - void InsertUniqueI16(const int16 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU256", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueU256QueryToBlueprintQuery(const FUniqueU256Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertUniqueI16(const FReducerEventContext& Context, const UInsertUniqueI16Reducer* Args); - bool InvokeInsertUniqueI16WithArgs(const FReducerEventContext& Context, const FInsertUniqueI16Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU256|Columns", meta=(DisplayName="UniqueU256 Data")) + static FBlueprintInt32Column UniqueU256Data(const FUniqueU256Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_u_256") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueI256Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBInt256&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertUniqueI256Handler OnInsertUniqueI256; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU256", meta=(DisplayName="UniqueU256 Where")) + static FUniqueU256Query UniqueU256Where(FUniqueU256Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertUniqueI256(const FSpacetimeDBInt256& N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU32", meta=(DisplayName="From UniqueU32")) + static FUniqueU32Query FromUniqueU32() + { + FUniqueU32Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueU32().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_u_32"); + return Query; + } - bool InvokeInsertUniqueI256(const FReducerEventContext& Context, const UInsertUniqueI256Reducer* Args); - bool InvokeInsertUniqueI256WithArgs(const FReducerEventContext& Context, const FInsertUniqueI256Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU32", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueU32QueryToBlueprintQuery(const FUniqueU32Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueI32Handler, - const FReducerEventContext&, Context, - int32, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertUniqueI32Handler OnInsertUniqueI32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU32|Columns", meta=(DisplayName="UniqueU32 Data")) + static FBlueprintInt32Column UniqueU32Data(const FUniqueU32Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_u_32") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertUniqueI32(const int32 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU32", meta=(DisplayName="UniqueU32 Where")) + static FUniqueU32Query UniqueU32Where(FUniqueU32Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertUniqueI32(const FReducerEventContext& Context, const UInsertUniqueI32Reducer* Args); - bool InvokeInsertUniqueI32WithArgs(const FReducerEventContext& Context, const FInsertUniqueI32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU64", meta=(DisplayName="From UniqueU64")) + static FUniqueU64Query FromUniqueU64() + { + FUniqueU64Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueU64().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_u_64"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueI64Handler, - const FReducerEventContext&, Context, - int64, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertUniqueI64Handler OnInsertUniqueI64; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU64", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueU64QueryToBlueprintQuery(const FUniqueU64Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertUniqueI64(const int64 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU64|Columns", meta=(DisplayName="UniqueU64 Data")) + static FBlueprintInt32Column UniqueU64Data(const FUniqueU64Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_u_64") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - bool InvokeInsertUniqueI64(const FReducerEventContext& Context, const UInsertUniqueI64Reducer* Args); - bool InvokeInsertUniqueI64WithArgs(const FReducerEventContext& Context, const FInsertUniqueI64Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU64", meta=(DisplayName="UniqueU64 Where")) + static FUniqueU64Query UniqueU64Where(FUniqueU64Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueI8Handler, - const FReducerEventContext&, Context, - int8, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible - FInsertUniqueI8Handler OnInsertUniqueI8; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU8", meta=(DisplayName="From UniqueU8")) + static FUniqueU8Query FromUniqueU8() + { + FUniqueU8Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueU8().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_u_8"); + return Query; + } - // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible - void InsertUniqueI8(const int8 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU8", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueU8QueryToBlueprintQuery(const FUniqueU8Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertUniqueI8(const FReducerEventContext& Context, const UInsertUniqueI8Reducer* Args); - bool InvokeInsertUniqueI8WithArgs(const FReducerEventContext& Context, const FInsertUniqueI8Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU8|Columns", meta=(DisplayName="UniqueU8 N")) + static FBlueprintUInt8Column UniqueU8N(const FUniqueU8Query& Query) + { + FBlueprintUInt8Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_u_8") : Query.ResultSourceName; + Column.ColumnName = TEXT("n"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueIdentityHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBIdentity&, I, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertUniqueIdentityHandler OnInsertUniqueIdentity; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU8|Columns", meta=(DisplayName="UniqueU8 Data")) + static FBlueprintInt32Column UniqueU8Data(const FUniqueU8Query& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_u_8") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertUniqueIdentity(const FSpacetimeDBIdentity& I, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueU8", meta=(DisplayName="UniqueU8 Where")) + static FUniqueU8Query UniqueU8Where(FUniqueU8Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - bool InvokeInsertUniqueIdentity(const FReducerEventContext& Context, const UInsertUniqueIdentityReducer* Args); - bool InvokeInsertUniqueIdentityWithArgs(const FReducerEventContext& Context, const FInsertUniqueIdentityArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueUuid", meta=(DisplayName="From UniqueUuid")) + static FUniqueUuidQuery FromUniqueUuid() + { + FUniqueUuidQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.UniqueUuid().into_sql().c_str())); + Query.ResultSourceName = TEXT("unique_uuid"); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueStringHandler, - const FReducerEventContext&, Context, - const FString&, S, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertUniqueStringHandler OnInsertUniqueString; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueUuid", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UniqueUuidQueryToBlueprintQuery(const FUniqueUuidQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertUniqueString(const FString& S, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueUuid|Columns", meta=(DisplayName="UniqueUuid U")) + static FBlueprintUuidColumn UniqueUuidU(const FUniqueUuidQuery& Query) + { + FBlueprintUuidColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_uuid") : Query.ResultSourceName; + Column.ColumnName = TEXT("u"); + return Column; + } - bool InvokeInsertUniqueString(const FReducerEventContext& Context, const UInsertUniqueStringReducer* Args); - bool InvokeInsertUniqueStringWithArgs(const FReducerEventContext& Context, const FInsertUniqueStringArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueUuid|Columns", meta=(DisplayName="UniqueUuid Data")) + static FBlueprintInt32Column UniqueUuidData(const FUniqueUuidQuery& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("unique_uuid") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueU128Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBUInt128&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertUniqueU128Handler OnInsertUniqueU128; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|UniqueUuid", meta=(DisplayName="UniqueUuid Where")) + static FUniqueUuidQuery UniqueUuidWhere(FUniqueUuidQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertUniqueU128(const FSpacetimeDBUInt128& N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Users", meta=(DisplayName="From Users")) + static FUsersQuery FromUsers() + { + FUsersQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.Users().into_sql().c_str())); + Query.ResultSourceName = TEXT("users"); + return Query; + } - bool InvokeInsertUniqueU128(const FReducerEventContext& Context, const UInsertUniqueU128Reducer* Args); - bool InvokeInsertUniqueU128WithArgs(const FReducerEventContext& Context, const FInsertUniqueU128Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Users", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_UsersQueryToBlueprintQuery(const FUsersQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueU16Handler, - const FReducerEventContext&, Context, - uint16, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible - FInsertUniqueU16Handler OnInsertUniqueU16; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Users|Columns", meta=(DisplayName="Users Identity")) + static FBlueprintIdentityColumn UsersIdentity(const FUsersQuery& Query) + { + FBlueprintIdentityColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("users") : Query.ResultSourceName; + Column.ColumnName = TEXT("identity"); + return Column; + } - // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible - void InsertUniqueU16(const uint16 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Users|Columns", meta=(DisplayName="Users Name")) + static FBlueprintStringColumn UsersName(const FUsersQuery& Query) + { + FBlueprintStringColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("users") : Query.ResultSourceName; + Column.ColumnName = TEXT("name"); + return Column; + } - bool InvokeInsertUniqueU16(const FReducerEventContext& Context, const UInsertUniqueU16Reducer* Args); - bool InvokeInsertUniqueU16WithArgs(const FReducerEventContext& Context, const FInsertUniqueU16Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Users", meta=(DisplayName="Users Where")) + static FUsersQuery UsersWhere(FUsersQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueU256Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBUInt256&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertUniqueU256Handler OnInsertUniqueU256; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecBool", meta=(DisplayName="From VecBool")) + static FVecBoolQuery FromVecBool() + { + FVecBoolQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecBool().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_bool"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertUniqueU256(const FSpacetimeDBUInt256& N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecBool", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecBoolQueryToBlueprintQuery(const FVecBoolQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertUniqueU256(const FReducerEventContext& Context, const UInsertUniqueU256Reducer* Args); - bool InvokeInsertUniqueU256WithArgs(const FReducerEventContext& Context, const FInsertUniqueU256Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecBool", meta=(DisplayName="VecBool Where")) + static FVecBoolQuery VecBoolWhere(FVecBoolQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueU32Handler, - const FReducerEventContext&, Context, - uint32, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - FInsertUniqueU32Handler OnInsertUniqueU32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecByteStruct", meta=(DisplayName="From VecByteStruct")) + static FVecByteStructQuery FromVecByteStruct() + { + FVecByteStructQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecByteStruct().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_byte_struct"); + return Query; + } - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - void InsertUniqueU32(const uint32 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecByteStruct", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecByteStructQueryToBlueprintQuery(const FVecByteStructQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertUniqueU32(const FReducerEventContext& Context, const UInsertUniqueU32Reducer* Args); - bool InvokeInsertUniqueU32WithArgs(const FReducerEventContext& Context, const FInsertUniqueU32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecByteStruct", meta=(DisplayName="VecByteStruct Where")) + static FVecByteStructQuery VecByteStructWhere(FVecByteStructQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams( - FInsertUniqueU32UpdatePkU32Handler, - const FReducerEventContext&, Context, - uint32, N, - int32, DUnique, - int32, DPk - ); - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - FInsertUniqueU32UpdatePkU32Handler OnInsertUniqueU32UpdatePkU32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecConnectionId", meta=(DisplayName="From VecConnectionId")) + static FVecConnectionIdQuery FromVecConnectionId() + { + FVecConnectionIdQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecConnectionId().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_connection_id"); + return Query; + } - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - void InsertUniqueU32UpdatePkU32(const uint32 N, const int32 DUnique, const int32 DPk); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecConnectionId", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecConnectionIdQueryToBlueprintQuery(const FVecConnectionIdQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertUniqueU32UpdatePkU32(const FReducerEventContext& Context, const UInsertUniqueU32UpdatePkU32Reducer* Args); - bool InvokeInsertUniqueU32UpdatePkU32WithArgs(const FReducerEventContext& Context, const FInsertUniqueU32UpdatePkU32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecConnectionId", meta=(DisplayName="VecConnectionId Where")) + static FVecConnectionIdQuery VecConnectionIdWhere(FVecConnectionIdQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueU64Handler, - const FReducerEventContext&, Context, - uint64, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible - FInsertUniqueU64Handler OnInsertUniqueU64; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecEnumWithPayload", meta=(DisplayName="From VecEnumWithPayload")) + static FVecEnumWithPayloadQuery FromVecEnumWithPayload() + { + FVecEnumWithPayloadQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecEnumWithPayload().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_enum_with_payload"); + return Query; + } - // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible - void InsertUniqueU64(const uint64 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecEnumWithPayload", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecEnumWithPayloadQueryToBlueprintQuery(const FVecEnumWithPayloadQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertUniqueU64(const FReducerEventContext& Context, const UInsertUniqueU64Reducer* Args); - bool InvokeInsertUniqueU64WithArgs(const FReducerEventContext& Context, const FInsertUniqueU64Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecEnumWithPayload", meta=(DisplayName="VecEnumWithPayload Where")) + static FVecEnumWithPayloadQuery VecEnumWithPayloadWhere(FVecEnumWithPayloadQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueU8Handler, - const FReducerEventContext&, Context, - uint8, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertUniqueU8Handler OnInsertUniqueU8; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecEveryPrimitiveStruct", meta=(DisplayName="From VecEveryPrimitiveStruct")) + static FVecEveryPrimitiveStructQuery FromVecEveryPrimitiveStruct() + { + FVecEveryPrimitiveStructQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecEveryPrimitiveStruct().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_every_primitive_struct"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertUniqueU8(const uint8 N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecEveryPrimitiveStruct", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecEveryPrimitiveStructQueryToBlueprintQuery(const FVecEveryPrimitiveStructQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertUniqueU8(const FReducerEventContext& Context, const UInsertUniqueU8Reducer* Args); - bool InvokeInsertUniqueU8WithArgs(const FReducerEventContext& Context, const FInsertUniqueU8Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecEveryPrimitiveStruct", meta=(DisplayName="VecEveryPrimitiveStruct Where")) + static FVecEveryPrimitiveStructQuery VecEveryPrimitiveStructWhere(FVecEveryPrimitiveStructQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUniqueUuidHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBUuid&, U, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertUniqueUuidHandler OnInsertUniqueUuid; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecEveryVecStruct", meta=(DisplayName="From VecEveryVecStruct")) + static FVecEveryVecStructQuery FromVecEveryVecStruct() + { + FVecEveryVecStructQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecEveryVecStruct().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_every_vec_struct"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertUniqueUuid(const FSpacetimeDBUuid& U, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecEveryVecStruct", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecEveryVecStructQueryToBlueprintQuery(const FVecEveryVecStructQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertUniqueUuid(const FReducerEventContext& Context, const UInsertUniqueUuidReducer* Args); - bool InvokeInsertUniqueUuidWithArgs(const FReducerEventContext& Context, const FInsertUniqueUuidArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecEveryVecStruct", meta=(DisplayName="VecEveryVecStruct Where")) + static FVecEveryVecStructQuery VecEveryVecStructWhere(FVecEveryVecStructQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FInsertUserHandler, - const FReducerEventContext&, Context, - const FString&, Name, - const FSpacetimeDBIdentity&, Identity - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertUserHandler OnInsertUser; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecF32", meta=(DisplayName="From VecF32")) + static FVecF32Query FromVecF32() + { + FVecF32Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecF32().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_f_32"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertUser(const FString& Name, const FSpacetimeDBIdentity& Identity); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecF32", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecF32QueryToBlueprintQuery(const FVecF32Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertUser(const FReducerEventContext& Context, const UInsertUserReducer* Args); - bool InvokeInsertUserWithArgs(const FReducerEventContext& Context, const FInsertUserArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecF32", meta=(DisplayName="VecF32 Where")) + static FVecF32Query VecF32Where(FVecF32Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecBoolHandler, - const FReducerEventContext&, Context, - const TArray&, B - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecBoolHandler OnInsertVecBool; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecF64", meta=(DisplayName="From VecF64")) + static FVecF64Query FromVecF64() + { + FVecF64Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecF64().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_f_64"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecBool(const TArray& B); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecF64", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecF64QueryToBlueprintQuery(const FVecF64Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecBool(const FReducerEventContext& Context, const UInsertVecBoolReducer* Args); - bool InvokeInsertVecBoolWithArgs(const FReducerEventContext& Context, const FInsertVecBoolArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecF64", meta=(DisplayName="VecF64 Where")) + static FVecF64Query VecF64Where(FVecF64Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecByteStructHandler, - const FReducerEventContext&, Context, - const TArray&, S - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecByteStructHandler OnInsertVecByteStruct; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI128", meta=(DisplayName="From VecI128")) + static FVecI128Query FromVecI128() + { + FVecI128Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecI128().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_i_128"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecByteStruct(const TArray& S); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI128", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecI128QueryToBlueprintQuery(const FVecI128Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecByteStruct(const FReducerEventContext& Context, const UInsertVecByteStructReducer* Args); - bool InvokeInsertVecByteStructWithArgs(const FReducerEventContext& Context, const FInsertVecByteStructArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI128", meta=(DisplayName="VecI128 Where")) + static FVecI128Query VecI128Where(FVecI128Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecConnectionIdHandler, - const FReducerEventContext&, Context, - const TArray&, A - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecConnectionIdHandler OnInsertVecConnectionId; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI16", meta=(DisplayName="From VecI16")) + static FVecI16Query FromVecI16() + { + FVecI16Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecI16().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_i_16"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecConnectionId(const TArray& A); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI16", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecI16QueryToBlueprintQuery(const FVecI16Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecConnectionId(const FReducerEventContext& Context, const UInsertVecConnectionIdReducer* Args); - bool InvokeInsertVecConnectionIdWithArgs(const FReducerEventContext& Context, const FInsertVecConnectionIdArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI16", meta=(DisplayName="VecI16 Where")) + static FVecI16Query VecI16Where(FVecI16Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecEnumWithPayloadHandler, - const FReducerEventContext&, Context, - const TArray&, E - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecEnumWithPayloadHandler OnInsertVecEnumWithPayload; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI256", meta=(DisplayName="From VecI256")) + static FVecI256Query FromVecI256() + { + FVecI256Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecI256().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_i_256"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecEnumWithPayload(const TArray& E); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI256", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecI256QueryToBlueprintQuery(const FVecI256Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecEnumWithPayload(const FReducerEventContext& Context, const UInsertVecEnumWithPayloadReducer* Args); - bool InvokeInsertVecEnumWithPayloadWithArgs(const FReducerEventContext& Context, const FInsertVecEnumWithPayloadArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI256", meta=(DisplayName="VecI256 Where")) + static FVecI256Query VecI256Where(FVecI256Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecEveryPrimitiveStructHandler, - const FReducerEventContext&, Context, - const TArray&, S - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecEveryPrimitiveStructHandler OnInsertVecEveryPrimitiveStruct; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI32", meta=(DisplayName="From VecI32")) + static FVecI32Query FromVecI32() + { + FVecI32Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecI32().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_i_32"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecEveryPrimitiveStruct(const TArray& S); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI32", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecI32QueryToBlueprintQuery(const FVecI32Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecEveryPrimitiveStruct(const FReducerEventContext& Context, const UInsertVecEveryPrimitiveStructReducer* Args); - bool InvokeInsertVecEveryPrimitiveStructWithArgs(const FReducerEventContext& Context, const FInsertVecEveryPrimitiveStructArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI32", meta=(DisplayName="VecI32 Where")) + static FVecI32Query VecI32Where(FVecI32Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecEveryVecStructHandler, - const FReducerEventContext&, Context, - const TArray&, S - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecEveryVecStructHandler OnInsertVecEveryVecStruct; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI64", meta=(DisplayName="From VecI64")) + static FVecI64Query FromVecI64() + { + FVecI64Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecI64().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_i_64"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecEveryVecStruct(const TArray& S); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI64", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecI64QueryToBlueprintQuery(const FVecI64Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecEveryVecStruct(const FReducerEventContext& Context, const UInsertVecEveryVecStructReducer* Args); - bool InvokeInsertVecEveryVecStructWithArgs(const FReducerEventContext& Context, const FInsertVecEveryVecStructArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI64", meta=(DisplayName="VecI64 Where")) + static FVecI64Query VecI64Where(FVecI64Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecF32Handler, - const FReducerEventContext&, Context, - const TArray&, F - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecF32Handler OnInsertVecF32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI8", meta=(DisplayName="From VecI8")) + static FVecI8Query FromVecI8() + { + FVecI8Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecI8().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_i_8"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecF32(const TArray& F); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI8", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecI8QueryToBlueprintQuery(const FVecI8Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecF32(const FReducerEventContext& Context, const UInsertVecF32Reducer* Args); - bool InvokeInsertVecF32WithArgs(const FReducerEventContext& Context, const FInsertVecF32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecI8", meta=(DisplayName="VecI8 Where")) + static FVecI8Query VecI8Where(FVecI8Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecF64Handler, - const FReducerEventContext&, Context, - const TArray&, F - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecF64Handler OnInsertVecF64; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecIdentity", meta=(DisplayName="From VecIdentity")) + static FVecIdentityQuery FromVecIdentity() + { + FVecIdentityQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecIdentity().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_identity"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecF64(const TArray& F); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecIdentity", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecIdentityQueryToBlueprintQuery(const FVecIdentityQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecF64(const FReducerEventContext& Context, const UInsertVecF64Reducer* Args); - bool InvokeInsertVecF64WithArgs(const FReducerEventContext& Context, const FInsertVecF64Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecIdentity", meta=(DisplayName="VecIdentity Where")) + static FVecIdentityQuery VecIdentityWhere(FVecIdentityQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecI128Handler, - const FReducerEventContext&, Context, - const TArray&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecI128Handler OnInsertVecI128; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecSimpleEnum", meta=(DisplayName="From VecSimpleEnum")) + static FVecSimpleEnumQuery FromVecSimpleEnum() + { + FVecSimpleEnumQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecSimpleEnum().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_simple_enum"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecI128(const TArray& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecSimpleEnum", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecSimpleEnumQueryToBlueprintQuery(const FVecSimpleEnumQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecI128(const FReducerEventContext& Context, const UInsertVecI128Reducer* Args); - bool InvokeInsertVecI128WithArgs(const FReducerEventContext& Context, const FInsertVecI128Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecSimpleEnum", meta=(DisplayName="VecSimpleEnum Where")) + static FVecSimpleEnumQuery VecSimpleEnumWhere(FVecSimpleEnumQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecI16Handler, - const FReducerEventContext&, Context, - const TArray&, N - ); - // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible - FInsertVecI16Handler OnInsertVecI16; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecString", meta=(DisplayName="From VecString")) + static FVecStringQuery FromVecString() + { + FVecStringQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecString().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_string"); + return Query; + } - // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible - void InsertVecI16(const TArray& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecString", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecStringQueryToBlueprintQuery(const FVecStringQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecI16(const FReducerEventContext& Context, const UInsertVecI16Reducer* Args); - bool InvokeInsertVecI16WithArgs(const FReducerEventContext& Context, const FInsertVecI16Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecString", meta=(DisplayName="VecString Where")) + static FVecStringQuery VecStringWhere(FVecStringQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecI256Handler, - const FReducerEventContext&, Context, - const TArray&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecI256Handler OnInsertVecI256; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecTimestamp", meta=(DisplayName="From VecTimestamp")) + static FVecTimestampQuery FromVecTimestamp() + { + FVecTimestampQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecTimestamp().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_timestamp"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecI256(const TArray& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecTimestamp", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecTimestampQueryToBlueprintQuery(const FVecTimestampQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecI256(const FReducerEventContext& Context, const UInsertVecI256Reducer* Args); - bool InvokeInsertVecI256WithArgs(const FReducerEventContext& Context, const FInsertVecI256Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecTimestamp", meta=(DisplayName="VecTimestamp Where")) + static FVecTimestampQuery VecTimestampWhere(FVecTimestampQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecI32Handler, - const FReducerEventContext&, Context, - const TArray&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecI32Handler OnInsertVecI32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU128", meta=(DisplayName="From VecU128")) + static FVecU128Query FromVecU128() + { + FVecU128Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecU128().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_u_128"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecI32(const TArray& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU128", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecU128QueryToBlueprintQuery(const FVecU128Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecI32(const FReducerEventContext& Context, const UInsertVecI32Reducer* Args); - bool InvokeInsertVecI32WithArgs(const FReducerEventContext& Context, const FInsertVecI32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU128", meta=(DisplayName="VecU128 Where")) + static FVecU128Query VecU128Where(FVecU128Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecI64Handler, - const FReducerEventContext&, Context, - const TArray&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecI64Handler OnInsertVecI64; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU16", meta=(DisplayName="From VecU16")) + static FVecU16Query FromVecU16() + { + FVecU16Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecU16().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_u_16"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecI64(const TArray& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU16", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecU16QueryToBlueprintQuery(const FVecU16Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecI64(const FReducerEventContext& Context, const UInsertVecI64Reducer* Args); - bool InvokeInsertVecI64WithArgs(const FReducerEventContext& Context, const FInsertVecI64Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU16", meta=(DisplayName="VecU16 Where")) + static FVecU16Query VecU16Where(FVecU16Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecI8Handler, - const FReducerEventContext&, Context, - const TArray&, N - ); - // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible - FInsertVecI8Handler OnInsertVecI8; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU256", meta=(DisplayName="From VecU256")) + static FVecU256Query FromVecU256() + { + FVecU256Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecU256().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_u_256"); + return Query; + } - // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible - void InsertVecI8(const TArray& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU256", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecU256QueryToBlueprintQuery(const FVecU256Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecI8(const FReducerEventContext& Context, const UInsertVecI8Reducer* Args); - bool InvokeInsertVecI8WithArgs(const FReducerEventContext& Context, const FInsertVecI8Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU256", meta=(DisplayName="VecU256 Where")) + static FVecU256Query VecU256Where(FVecU256Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecIdentityHandler, - const FReducerEventContext&, Context, - const TArray&, I - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecIdentityHandler OnInsertVecIdentity; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU32", meta=(DisplayName="From VecU32")) + static FVecU32Query FromVecU32() + { + FVecU32Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecU32().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_u_32"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecIdentity(const TArray& I); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU32", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecU32QueryToBlueprintQuery(const FVecU32Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecIdentity(const FReducerEventContext& Context, const UInsertVecIdentityReducer* Args); - bool InvokeInsertVecIdentityWithArgs(const FReducerEventContext& Context, const FInsertVecIdentityArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU32", meta=(DisplayName="VecU32 Where")) + static FVecU32Query VecU32Where(FVecU32Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecSimpleEnumHandler, - const FReducerEventContext&, Context, - const TArray&, E - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecSimpleEnumHandler OnInsertVecSimpleEnum; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU64", meta=(DisplayName="From VecU64")) + static FVecU64Query FromVecU64() + { + FVecU64Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecU64().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_u_64"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecSimpleEnum(const TArray& E); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU64", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecU64QueryToBlueprintQuery(const FVecU64Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecSimpleEnum(const FReducerEventContext& Context, const UInsertVecSimpleEnumReducer* Args); - bool InvokeInsertVecSimpleEnumWithArgs(const FReducerEventContext& Context, const FInsertVecSimpleEnumArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU64", meta=(DisplayName="VecU64 Where")) + static FVecU64Query VecU64Where(FVecU64Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecStringHandler, - const FReducerEventContext&, Context, - const TArray&, S - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecStringHandler OnInsertVecString; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU8", meta=(DisplayName="From VecU8")) + static FVecU8Query FromVecU8() + { + FVecU8Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecU8().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_u_8"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecString(const TArray& S); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU8", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecU8QueryToBlueprintQuery(const FVecU8Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecString(const FReducerEventContext& Context, const UInsertVecStringReducer* Args); - bool InvokeInsertVecStringWithArgs(const FReducerEventContext& Context, const FInsertVecStringArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecU8", meta=(DisplayName="VecU8 Where")) + static FVecU8Query VecU8Where(FVecU8Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecTimestampHandler, - const FReducerEventContext&, Context, - const TArray&, T - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecTimestampHandler OnInsertVecTimestamp; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecUnitStruct", meta=(DisplayName="From VecUnitStruct")) + static FVecUnitStructQuery FromVecUnitStruct() + { + FVecUnitStructQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecUnitStruct().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_unit_struct"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecTimestamp(const TArray& T); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecUnitStruct", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecUnitStructQueryToBlueprintQuery(const FVecUnitStructQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecTimestamp(const FReducerEventContext& Context, const UInsertVecTimestampReducer* Args); - bool InvokeInsertVecTimestampWithArgs(const FReducerEventContext& Context, const FInsertVecTimestampArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecUnitStruct", meta=(DisplayName="VecUnitStruct Where")) + static FVecUnitStructQuery VecUnitStructWhere(FVecUnitStructQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecU128Handler, - const FReducerEventContext&, Context, - const TArray&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecU128Handler OnInsertVecU128; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecUuid", meta=(DisplayName="From VecUuid")) + static FVecUuidQuery FromVecUuid() + { + FVecUuidQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.VecUuid().into_sql().c_str())); + Query.ResultSourceName = TEXT("vec_uuid"); + return Query; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecU128(const TArray& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecUuid", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_VecUuidQueryToBlueprintQuery(const FVecUuidQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } - bool InvokeInsertVecU128(const FReducerEventContext& Context, const UInsertVecU128Reducer* Args); - bool InvokeInsertVecU128WithArgs(const FReducerEventContext& Context, const FInsertVecU128Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|VecUuid", meta=(DisplayName="VecUuid Where")) + static FVecUuidQuery VecUuidWhere(FVecUuidQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecU16Handler, - const FReducerEventContext&, Context, - const TArray&, N - ); - // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible - FInsertVecU16Handler OnInsertVecU16; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Bool Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate BoolEqual(const FBlueprintBoolColumn& Column, const bool Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible - void InsertVecU16(const TArray& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate UInt8Equal(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - bool InvokeInsertVecU16(const FReducerEventContext& Context, const UInsertVecU16Reducer* Args); - bool InvokeInsertVecU16WithArgs(const FReducerEventContext& Context, const FInsertVecU16Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate UInt8GreaterThan(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecU256Handler, - const FReducerEventContext&, Context, - const TArray&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecU256Handler OnInsertVecU256; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate UInt8GreaterEqual(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecU256(const TArray& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate UInt8LessThan(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - bool InvokeInsertVecU256(const FReducerEventContext& Context, const UInsertVecU256Reducer* Args); - bool InvokeInsertVecU256WithArgs(const FReducerEventContext& Context, const FInsertVecU256Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate UInt8LessEqual(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecU32Handler, - const FReducerEventContext&, Context, - const TArray&, N - ); - // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible - FInsertVecU32Handler OnInsertVecU32; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate Int32Equal(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible - void InsertVecU32(const TArray& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate Int32GreaterThan(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - bool InvokeInsertVecU32(const FReducerEventContext& Context, const UInsertVecU32Reducer* Args); - bool InvokeInsertVecU32WithArgs(const FReducerEventContext& Context, const FInsertVecU32Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate Int32GreaterEqual(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecU64Handler, - const FReducerEventContext&, Context, - const TArray&, N - ); - // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible - FInsertVecU64Handler OnInsertVecU64; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate Int32LessThan(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - // NOTE: Not exposed to Blueprint because TArray types are not Blueprint-compatible - void InsertVecU64(const TArray& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate Int32LessEqual(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - bool InvokeInsertVecU64(const FReducerEventContext& Context, const UInsertVecU64Reducer* Args); - bool InvokeInsertVecU64WithArgs(const FReducerEventContext& Context, const FInsertVecU64Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate Int64Equal(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecU8Handler, - const FReducerEventContext&, Context, - const TArray&, N - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecU8Handler OnInsertVecU8; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate Int64GreaterThan(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecU8(const TArray& N); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate Int64GreaterEqual(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - bool InvokeInsertVecU8(const FReducerEventContext& Context, const UInsertVecU8Reducer* Args); - bool InvokeInsertVecU8WithArgs(const FReducerEventContext& Context, const FInsertVecU8Args& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate Int64LessThan(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecUnitStructHandler, - const FReducerEventContext&, Context, - const TArray&, S - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecUnitStructHandler OnInsertVecUnitStruct; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate Int64LessEqual(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecUnitStruct(const TArray& S); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate FloatEqual(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - bool InvokeInsertVecUnitStruct(const FReducerEventContext& Context, const UInsertVecUnitStructReducer* Args); - bool InvokeInsertVecUnitStructWithArgs(const FReducerEventContext& Context, const FInsertVecUnitStructArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate FloatGreaterThan(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( - FInsertVecUuidHandler, - const FReducerEventContext&, Context, - const TArray&, U - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FInsertVecUuidHandler OnInsertVecUuid; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate FloatGreaterEqual(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void InsertVecUuid(const TArray& U); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate FloatLessThan(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - bool InvokeInsertVecUuid(const FReducerEventContext& Context, const UInsertVecUuidReducer* Args); - bool InvokeInsertVecUuidWithArgs(const FReducerEventContext& Context, const FInsertVecUuidArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate FloatLessEqual(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( - FNoOpSucceedsHandler, - const FReducerEventContext&, Context - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FNoOpSucceedsHandler OnNoOpSucceeds; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate DoubleEqual(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void NoOpSucceeds(); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate DoubleGreaterThan(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - bool InvokeNoOpSucceeds(const FReducerEventContext& Context, const UNoOpSucceedsReducer* Args); - bool InvokeNoOpSucceedsWithArgs(const FReducerEventContext& Context, const FNoOpSucceedsArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate DoubleGreaterEqual(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( - FSortedUuidsInsertHandler, - const FReducerEventContext&, Context - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FSortedUuidsInsertHandler OnSortedUuidsInsert; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate DoubleLessThan(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void SortedUuidsInsert(); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate DoubleLessEqual(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - bool InvokeSortedUuidsInsert(const FReducerEventContext& Context, const USortedUuidsInsertReducer* Args); - bool InvokeSortedUuidsInsertWithArgs(const FReducerEventContext& Context, const FSortedUuidsInsertArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="String Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate StringEqual(const FBlueprintStringColumn& Column, const FString& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateIndexedSimpleEnumHandler, - const FReducerEventContext&, Context, - const ESimpleEnumType&, A, - const ESimpleEnumType&, B - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdateIndexedSimpleEnumHandler OnUpdateIndexedSimpleEnum; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Identity Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate IdentityEqual(const FBlueprintIdentityColumn& Column, const FSpacetimeDBIdentity& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdateIndexedSimpleEnum(const ESimpleEnumType& A, const ESimpleEnumType& B); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="ConnectionId Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate ConnectionIdEqual(const FBlueprintConnectionIdColumn& Column, const FSpacetimeDBConnectionId& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - bool InvokeUpdateIndexedSimpleEnum(const FReducerEventContext& Context, const UUpdateIndexedSimpleEnumReducer* Args); - bool InvokeUpdateIndexedSimpleEnumWithArgs(const FReducerEventContext& Context, const FUpdateIndexedSimpleEnumArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate TimestampEqual(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkBoolHandler, - const FReducerEventContext&, Context, - bool, B, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdatePkBoolHandler OnUpdatePkBool; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate TimestampGreaterThan(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdatePkBool(const bool B, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate TimestampGreaterEqual(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - bool InvokeUpdatePkBool(const FReducerEventContext& Context, const UUpdatePkBoolReducer* Args); - bool InvokeUpdatePkBoolWithArgs(const FReducerEventContext& Context, const FUpdatePkBoolArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate TimestampLessThan(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkConnectionIdHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBConnectionId&, A, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdatePkConnectionIdHandler OnUpdatePkConnectionId; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate TimestampLessEqual(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdatePkConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Uuid Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate UuidEqual(const FBlueprintUuidColumn& Column, const FSpacetimeDBUuid& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } - bool InvokeUpdatePkConnectionId(const FReducerEventContext& Context, const UUpdatePkConnectionIdReducer* Args); - bool InvokeUpdatePkConnectionIdWithArgs(const FReducerEventContext& Context, const FUpdatePkConnectionIdArgs& Args); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="AND", CompactNodeTitle="AND", Keywords="and &&")) + static FBlueprintPredicate And(const FBlueprintPredicate& A, const FBlueprintPredicate& B) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = A.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("(%s) AND (%s)"), *A.Sql, *B.Sql); + return Predicate; + } - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkI128Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBInt128&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdatePkI128Handler OnUpdatePkI128; + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="OR", CompactNodeTitle="OR", Keywords="or ||")) + static FBlueprintPredicate Or(const FBlueprintPredicate& A, const FBlueprintPredicate& B) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = A.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("(%s) OR (%s)"), *A.Sql, *B.Sql); + return Predicate; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdatePkI128(const FSpacetimeDBInt128& N, const int32 Data); + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="NOT", CompactNodeTitle="NOT", Keywords="not !")) + static FBlueprintPredicate Not(const FBlueprintPredicate& A) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = A.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("NOT (%s)"), *A.Sql); + return Predicate; + } - bool InvokeUpdatePkI128(const FReducerEventContext& Context, const UUpdatePkI128Reducer* Args); - bool InvokeUpdatePkI128WithArgs(const FReducerEventContext& Context, const FUpdatePkI128Args& Args); +private: + static FString AppendPredicate(const FString& Sql, const FString& Predicate) + { + if (Sql.Contains(TEXT(" WHERE "))) + { + return Sql + TEXT(" AND (") + Predicate + TEXT(")"); + } + return Sql + TEXT(" WHERE (") + Predicate + TEXT(")"); + } +}; - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkI16Handler, - const FReducerEventContext&, Context, - int16, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible - FUpdatePkI16Handler OnUpdatePkI16; +// SubscriptionBuilder class +UCLASS(BlueprintType) +class TESTCLIENT_API USubscriptionBuilder : public USubscriptionBuilderBase +{ + GENERATED_BODY() - // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible - void UpdatePkI16(const int16 N, const int32 Data); +public: - bool InvokeUpdatePkI16(const FReducerEventContext& Context, const UUpdatePkI16Reducer* Args); - bool InvokeUpdatePkI16WithArgs(const FReducerEventContext& Context, const FUpdatePkI16Args& Args); + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + USubscriptionBuilder* OnApplied(FOnSubscriptionApplied Callback); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkI256Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBInt256&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdatePkI256Handler OnUpdatePkI256; + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + USubscriptionBuilder* OnError(FOnSubscriptionError Callback); UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdatePkI256(const FSpacetimeDBInt256& N, const int32 Data); + USubscriptionHandle* Subscribe(); - bool InvokeUpdatePkI256(const FReducerEventContext& Context, const UUpdatePkI256Reducer* Args); - bool InvokeUpdatePkI256WithArgs(const FReducerEventContext& Context, const FUpdatePkI256Args& Args); + USubscriptionHandle* Subscribe(const TArray& SQL); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkI32Handler, - const FReducerEventContext&, Context, - int32, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdatePkI32Handler OnUpdatePkI32; + template + USubscriptionBuilder* AddQuery(TFn&& Build) + { + FQueryBuilder Q; + auto Query = std::forward(Build)(Q); + static_assert(::SpacetimeDB::query_builder::QueryBuilderReturn, + "Typed subscription queries must return a query_builder table/query expression."); + PendingSqlQueries.Add(FString(UTF8_TO_TCHAR(Query.into_sql().c_str()))); + return this; + } - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdatePkI32(const int32 N, const int32 Data); + UFUNCTION(BlueprintCallable, Category="SpacetimeDB", meta=(DisplayName="AddQuery", ScriptName="AddQuery")) + USubscriptionBuilder* AddBlueprintQuery(const FBlueprintQuery& Query); - bool InvokeUpdatePkI32(const FReducerEventContext& Context, const UUpdatePkI32Reducer* Args); - bool InvokeUpdatePkI32WithArgs(const FReducerEventContext& Context, const FUpdatePkI32Args& Args); + USubscriptionBuilder* AddBtreeU32Query(const FBtreeU32Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkI64Handler, - const FReducerEventContext&, Context, - int64, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdatePkI64Handler OnUpdatePkI64; + USubscriptionBuilder* AddIndexedSimpleEnumQuery(const FIndexedSimpleEnumQuery& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdatePkI64(const int64 N, const int32 Data); + USubscriptionBuilder* AddLargeTableQuery(const FLargeTableQuery& Query); - bool InvokeUpdatePkI64(const FReducerEventContext& Context, const UUpdatePkI64Reducer* Args); - bool InvokeUpdatePkI64WithArgs(const FReducerEventContext& Context, const FUpdatePkI64Args& Args); + USubscriptionBuilder* AddOneBoolQuery(const FOneBoolQuery& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkI8Handler, - const FReducerEventContext&, Context, - int8, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible - FUpdatePkI8Handler OnUpdatePkI8; + USubscriptionBuilder* AddOneByteStructQuery(const FOneByteStructQuery& Query); - // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible - void UpdatePkI8(const int8 N, const int32 Data); + USubscriptionBuilder* AddOneConnectionIdQuery(const FOneConnectionIdQuery& Query); - bool InvokeUpdatePkI8(const FReducerEventContext& Context, const UUpdatePkI8Reducer* Args); - bool InvokeUpdatePkI8WithArgs(const FReducerEventContext& Context, const FUpdatePkI8Args& Args); + USubscriptionBuilder* AddOneEnumWithPayloadQuery(const FOneEnumWithPayloadQuery& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkIdentityHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBIdentity&, I, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdatePkIdentityHandler OnUpdatePkIdentity; + USubscriptionBuilder* AddOneEveryPrimitiveStructQuery(const FOneEveryPrimitiveStructQuery& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdatePkIdentity(const FSpacetimeDBIdentity& I, const int32 Data); + USubscriptionBuilder* AddOneEveryVecStructQuery(const FOneEveryVecStructQuery& Query); - bool InvokeUpdatePkIdentity(const FReducerEventContext& Context, const UUpdatePkIdentityReducer* Args); - bool InvokeUpdatePkIdentityWithArgs(const FReducerEventContext& Context, const FUpdatePkIdentityArgs& Args); + USubscriptionBuilder* AddOneF32Query(const FOneF32Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkSimpleEnumHandler, - const FReducerEventContext&, Context, - const ESimpleEnumType&, A, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdatePkSimpleEnumHandler OnUpdatePkSimpleEnum; + USubscriptionBuilder* AddOneF64Query(const FOneF64Query& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdatePkSimpleEnum(const ESimpleEnumType& A, const int32 Data); + USubscriptionBuilder* AddOneI128Query(const FOneI128Query& Query); - bool InvokeUpdatePkSimpleEnum(const FReducerEventContext& Context, const UUpdatePkSimpleEnumReducer* Args); - bool InvokeUpdatePkSimpleEnumWithArgs(const FReducerEventContext& Context, const FUpdatePkSimpleEnumArgs& Args); + USubscriptionBuilder* AddOneI16Query(const FOneI16Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkStringHandler, - const FReducerEventContext&, Context, - const FString&, S, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdatePkStringHandler OnUpdatePkString; + USubscriptionBuilder* AddOneI256Query(const FOneI256Query& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdatePkString(const FString& S, const int32 Data); + USubscriptionBuilder* AddOneI32Query(const FOneI32Query& Query); - bool InvokeUpdatePkString(const FReducerEventContext& Context, const UUpdatePkStringReducer* Args); - bool InvokeUpdatePkStringWithArgs(const FReducerEventContext& Context, const FUpdatePkStringArgs& Args); + USubscriptionBuilder* AddOneI64Query(const FOneI64Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkU128Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBUInt128&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdatePkU128Handler OnUpdatePkU128; + USubscriptionBuilder* AddOneI8Query(const FOneI8Query& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdatePkU128(const FSpacetimeDBUInt128& N, const int32 Data); + USubscriptionBuilder* AddOneIdentityQuery(const FOneIdentityQuery& Query); - bool InvokeUpdatePkU128(const FReducerEventContext& Context, const UUpdatePkU128Reducer* Args); - bool InvokeUpdatePkU128WithArgs(const FReducerEventContext& Context, const FUpdatePkU128Args& Args); + USubscriptionBuilder* AddOneSimpleEnumQuery(const FOneSimpleEnumQuery& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkU16Handler, - const FReducerEventContext&, Context, - uint16, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible - FUpdatePkU16Handler OnUpdatePkU16; + USubscriptionBuilder* AddOneStringQuery(const FOneStringQuery& Query); - // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible - void UpdatePkU16(const uint16 N, const int32 Data); + USubscriptionBuilder* AddOneTimestampQuery(const FOneTimestampQuery& Query); - bool InvokeUpdatePkU16(const FReducerEventContext& Context, const UUpdatePkU16Reducer* Args); - bool InvokeUpdatePkU16WithArgs(const FReducerEventContext& Context, const FUpdatePkU16Args& Args); + USubscriptionBuilder* AddOneU128Query(const FOneU128Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkU256Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBUInt256&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdatePkU256Handler OnUpdatePkU256; + USubscriptionBuilder* AddOneU16Query(const FOneU16Query& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdatePkU256(const FSpacetimeDBUInt256& N, const int32 Data); + USubscriptionBuilder* AddOneU256Query(const FOneU256Query& Query); - bool InvokeUpdatePkU256(const FReducerEventContext& Context, const UUpdatePkU256Reducer* Args); - bool InvokeUpdatePkU256WithArgs(const FReducerEventContext& Context, const FUpdatePkU256Args& Args); + USubscriptionBuilder* AddOneU32Query(const FOneU32Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkU32Handler, - const FReducerEventContext&, Context, - uint32, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - FUpdatePkU32Handler OnUpdatePkU32; + USubscriptionBuilder* AddOneU64Query(const FOneU64Query& Query); - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - void UpdatePkU32(const uint32 N, const int32 Data); + USubscriptionBuilder* AddOneU8Query(const FOneU8Query& Query); - bool InvokeUpdatePkU32(const FReducerEventContext& Context, const UUpdatePkU32Reducer* Args); - bool InvokeUpdatePkU32WithArgs(const FReducerEventContext& Context, const FUpdatePkU32Args& Args); + USubscriptionBuilder* AddOneUnitStructQuery(const FOneUnitStructQuery& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkU32TwoHandler, - const FReducerEventContext&, Context, - uint32, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - FUpdatePkU32TwoHandler OnUpdatePkU32Two; + USubscriptionBuilder* AddOneUuidQuery(const FOneUuidQuery& Query); - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - void UpdatePkU32Two(const uint32 N, const int32 Data); + USubscriptionBuilder* AddOptionEveryPrimitiveStructQuery(const FOptionEveryPrimitiveStructQuery& Query); - bool InvokeUpdatePkU32Two(const FReducerEventContext& Context, const UUpdatePkU32TwoReducer* Args); - bool InvokeUpdatePkU32TwoWithArgs(const FReducerEventContext& Context, const FUpdatePkU32TwoArgs& Args); + USubscriptionBuilder* AddOptionI32Query(const FOptionI32Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkU64Handler, - const FReducerEventContext&, Context, - uint64, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible - FUpdatePkU64Handler OnUpdatePkU64; + USubscriptionBuilder* AddOptionIdentityQuery(const FOptionIdentityQuery& Query); - // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible - void UpdatePkU64(const uint64 N, const int32 Data); + USubscriptionBuilder* AddOptionSimpleEnumQuery(const FOptionSimpleEnumQuery& Query); - bool InvokeUpdatePkU64(const FReducerEventContext& Context, const UUpdatePkU64Reducer* Args); - bool InvokeUpdatePkU64WithArgs(const FReducerEventContext& Context, const FUpdatePkU64Args& Args); + USubscriptionBuilder* AddOptionStringQuery(const FOptionStringQuery& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkU8Handler, - const FReducerEventContext&, Context, - uint8, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdatePkU8Handler OnUpdatePkU8; + USubscriptionBuilder* AddOptionUuidQuery(const FOptionUuidQuery& Query); + + USubscriptionBuilder* AddOptionVecOptionI32Query(const FOptionVecOptionI32Query& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdatePkU8(const uint8 N, const int32 Data); + USubscriptionBuilder* AddPkBoolQuery(const FPkBoolQuery& Query); - bool InvokeUpdatePkU8(const FReducerEventContext& Context, const UUpdatePkU8Reducer* Args); - bool InvokeUpdatePkU8WithArgs(const FReducerEventContext& Context, const FUpdatePkU8Args& Args); + USubscriptionBuilder* AddPkConnectionIdQuery(const FPkConnectionIdQuery& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdatePkUuidHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBUuid&, U, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdatePkUuidHandler OnUpdatePkUuid; + USubscriptionBuilder* AddPkI128Query(const FPkI128Query& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdatePkUuid(const FSpacetimeDBUuid& U, const int32 Data); + USubscriptionBuilder* AddPkI16Query(const FPkI16Query& Query); - bool InvokeUpdatePkUuid(const FReducerEventContext& Context, const UUpdatePkUuidReducer* Args); - bool InvokeUpdatePkUuidWithArgs(const FReducerEventContext& Context, const FUpdatePkUuidArgs& Args); + USubscriptionBuilder* AddPkI256Query(const FPkI256Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueBoolHandler, - const FReducerEventContext&, Context, - bool, B, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdateUniqueBoolHandler OnUpdateUniqueBool; + USubscriptionBuilder* AddPkI32Query(const FPkI32Query& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdateUniqueBool(const bool B, const int32 Data); + USubscriptionBuilder* AddPkI64Query(const FPkI64Query& Query); - bool InvokeUpdateUniqueBool(const FReducerEventContext& Context, const UUpdateUniqueBoolReducer* Args); - bool InvokeUpdateUniqueBoolWithArgs(const FReducerEventContext& Context, const FUpdateUniqueBoolArgs& Args); + USubscriptionBuilder* AddPkI8Query(const FPkI8Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueConnectionIdHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBConnectionId&, A, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdateUniqueConnectionIdHandler OnUpdateUniqueConnectionId; + USubscriptionBuilder* AddPkIdentityQuery(const FPkIdentityQuery& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdateUniqueConnectionId(const FSpacetimeDBConnectionId& A, const int32 Data); + USubscriptionBuilder* AddPkSimpleEnumQuery(const FPkSimpleEnumQuery& Query); - bool InvokeUpdateUniqueConnectionId(const FReducerEventContext& Context, const UUpdateUniqueConnectionIdReducer* Args); - bool InvokeUpdateUniqueConnectionIdWithArgs(const FReducerEventContext& Context, const FUpdateUniqueConnectionIdArgs& Args); + USubscriptionBuilder* AddPkStringQuery(const FPkStringQuery& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueI128Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBInt128&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdateUniqueI128Handler OnUpdateUniqueI128; + USubscriptionBuilder* AddPkU128Query(const FPkU128Query& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdateUniqueI128(const FSpacetimeDBInt128& N, const int32 Data); + USubscriptionBuilder* AddPkU16Query(const FPkU16Query& Query); - bool InvokeUpdateUniqueI128(const FReducerEventContext& Context, const UUpdateUniqueI128Reducer* Args); - bool InvokeUpdateUniqueI128WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI128Args& Args); + USubscriptionBuilder* AddPkU256Query(const FPkU256Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueI16Handler, - const FReducerEventContext&, Context, - int16, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible - FUpdateUniqueI16Handler OnUpdateUniqueI16; + USubscriptionBuilder* AddPkU32Query(const FPkU32Query& Query); - // NOTE: Not exposed to Blueprint because int16 types are not Blueprint-compatible - void UpdateUniqueI16(const int16 N, const int32 Data); + USubscriptionBuilder* AddPkU32TwoQuery(const FPkU32TwoQuery& Query); - bool InvokeUpdateUniqueI16(const FReducerEventContext& Context, const UUpdateUniqueI16Reducer* Args); - bool InvokeUpdateUniqueI16WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI16Args& Args); + USubscriptionBuilder* AddPkU64Query(const FPkU64Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueI256Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBInt256&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdateUniqueI256Handler OnUpdateUniqueI256; + USubscriptionBuilder* AddPkU8Query(const FPkU8Query& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdateUniqueI256(const FSpacetimeDBInt256& N, const int32 Data); + USubscriptionBuilder* AddPkUuidQuery(const FPkUuidQuery& Query); - bool InvokeUpdateUniqueI256(const FReducerEventContext& Context, const UUpdateUniqueI256Reducer* Args); - bool InvokeUpdateUniqueI256WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI256Args& Args); + USubscriptionBuilder* AddResultEveryPrimitiveStructStringQuery(const FResultEveryPrimitiveStructStringQuery& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueI32Handler, - const FReducerEventContext&, Context, - int32, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdateUniqueI32Handler OnUpdateUniqueI32; + USubscriptionBuilder* AddResultI32StringQuery(const FResultI32StringQuery& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdateUniqueI32(const int32 N, const int32 Data); + USubscriptionBuilder* AddResultIdentityStringQuery(const FResultIdentityStringQuery& Query); - bool InvokeUpdateUniqueI32(const FReducerEventContext& Context, const UUpdateUniqueI32Reducer* Args); - bool InvokeUpdateUniqueI32WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI32Args& Args); + USubscriptionBuilder* AddResultSimpleEnumI32Query(const FResultSimpleEnumI32Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueI64Handler, - const FReducerEventContext&, Context, - int64, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdateUniqueI64Handler OnUpdateUniqueI64; + USubscriptionBuilder* AddResultStringI32Query(const FResultStringI32Query& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdateUniqueI64(const int64 N, const int32 Data); + USubscriptionBuilder* AddResultVecI32StringQuery(const FResultVecI32StringQuery& Query); - bool InvokeUpdateUniqueI64(const FReducerEventContext& Context, const UUpdateUniqueI64Reducer* Args); - bool InvokeUpdateUniqueI64WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI64Args& Args); + USubscriptionBuilder* AddScheduledTableQuery(const FScheduledTableQuery& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueI8Handler, - const FReducerEventContext&, Context, - int8, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible - FUpdateUniqueI8Handler OnUpdateUniqueI8; + USubscriptionBuilder* AddTableHoldsTableQuery(const FTableHoldsTableQuery& Query); - // NOTE: Not exposed to Blueprint because int8 types are not Blueprint-compatible - void UpdateUniqueI8(const int8 N, const int32 Data); + USubscriptionBuilder* AddUniqueBoolQuery(const FUniqueBoolQuery& Query); - bool InvokeUpdateUniqueI8(const FReducerEventContext& Context, const UUpdateUniqueI8Reducer* Args); - bool InvokeUpdateUniqueI8WithArgs(const FReducerEventContext& Context, const FUpdateUniqueI8Args& Args); + USubscriptionBuilder* AddUniqueConnectionIdQuery(const FUniqueConnectionIdQuery& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueIdentityHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBIdentity&, I, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdateUniqueIdentityHandler OnUpdateUniqueIdentity; + USubscriptionBuilder* AddUniqueI128Query(const FUniqueI128Query& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdateUniqueIdentity(const FSpacetimeDBIdentity& I, const int32 Data); + USubscriptionBuilder* AddUniqueI16Query(const FUniqueI16Query& Query); - bool InvokeUpdateUniqueIdentity(const FReducerEventContext& Context, const UUpdateUniqueIdentityReducer* Args); - bool InvokeUpdateUniqueIdentityWithArgs(const FReducerEventContext& Context, const FUpdateUniqueIdentityArgs& Args); + USubscriptionBuilder* AddUniqueI256Query(const FUniqueI256Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueStringHandler, - const FReducerEventContext&, Context, - const FString&, S, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdateUniqueStringHandler OnUpdateUniqueString; + USubscriptionBuilder* AddUniqueI32Query(const FUniqueI32Query& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdateUniqueString(const FString& S, const int32 Data); + USubscriptionBuilder* AddUniqueI64Query(const FUniqueI64Query& Query); - bool InvokeUpdateUniqueString(const FReducerEventContext& Context, const UUpdateUniqueStringReducer* Args); - bool InvokeUpdateUniqueStringWithArgs(const FReducerEventContext& Context, const FUpdateUniqueStringArgs& Args); + USubscriptionBuilder* AddUniqueI8Query(const FUniqueI8Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueU128Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBUInt128&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdateUniqueU128Handler OnUpdateUniqueU128; + USubscriptionBuilder* AddUniqueIdentityQuery(const FUniqueIdentityQuery& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdateUniqueU128(const FSpacetimeDBUInt128& N, const int32 Data); + USubscriptionBuilder* AddUniqueStringQuery(const FUniqueStringQuery& Query); - bool InvokeUpdateUniqueU128(const FReducerEventContext& Context, const UUpdateUniqueU128Reducer* Args); - bool InvokeUpdateUniqueU128WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU128Args& Args); + USubscriptionBuilder* AddUniqueU128Query(const FUniqueU128Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueU16Handler, - const FReducerEventContext&, Context, - uint16, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible - FUpdateUniqueU16Handler OnUpdateUniqueU16; + USubscriptionBuilder* AddUniqueU16Query(const FUniqueU16Query& Query); - // NOTE: Not exposed to Blueprint because uint16 types are not Blueprint-compatible - void UpdateUniqueU16(const uint16 N, const int32 Data); + USubscriptionBuilder* AddUniqueU256Query(const FUniqueU256Query& Query); - bool InvokeUpdateUniqueU16(const FReducerEventContext& Context, const UUpdateUniqueU16Reducer* Args); - bool InvokeUpdateUniqueU16WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU16Args& Args); + USubscriptionBuilder* AddUniqueU32Query(const FUniqueU32Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueU256Handler, - const FReducerEventContext&, Context, - const FSpacetimeDBUInt256&, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdateUniqueU256Handler OnUpdateUniqueU256; + USubscriptionBuilder* AddUniqueU64Query(const FUniqueU64Query& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdateUniqueU256(const FSpacetimeDBUInt256& N, const int32 Data); + USubscriptionBuilder* AddUniqueU8Query(const FUniqueU8Query& Query); - bool InvokeUpdateUniqueU256(const FReducerEventContext& Context, const UUpdateUniqueU256Reducer* Args); - bool InvokeUpdateUniqueU256WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU256Args& Args); + USubscriptionBuilder* AddUniqueUuidQuery(const FUniqueUuidQuery& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueU32Handler, - const FReducerEventContext&, Context, - uint32, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - FUpdateUniqueU32Handler OnUpdateUniqueU32; + USubscriptionBuilder* AddUsersQuery(const FUsersQuery& Query); - // NOTE: Not exposed to Blueprint because uint32 types are not Blueprint-compatible - void UpdateUniqueU32(const uint32 N, const int32 Data); + USubscriptionBuilder* AddVecBoolQuery(const FVecBoolQuery& Query); - bool InvokeUpdateUniqueU32(const FReducerEventContext& Context, const UUpdateUniqueU32Reducer* Args); - bool InvokeUpdateUniqueU32WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU32Args& Args); + USubscriptionBuilder* AddVecByteStructQuery(const FVecByteStructQuery& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueU64Handler, - const FReducerEventContext&, Context, - uint64, N, - int32, Data - ); - // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible - FUpdateUniqueU64Handler OnUpdateUniqueU64; + USubscriptionBuilder* AddVecConnectionIdQuery(const FVecConnectionIdQuery& Query); - // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible - void UpdateUniqueU64(const uint64 N, const int32 Data); + USubscriptionBuilder* AddVecEnumWithPayloadQuery(const FVecEnumWithPayloadQuery& Query); - bool InvokeUpdateUniqueU64(const FReducerEventContext& Context, const UUpdateUniqueU64Reducer* Args); - bool InvokeUpdateUniqueU64WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU64Args& Args); + USubscriptionBuilder* AddVecEveryPrimitiveStructQuery(const FVecEveryPrimitiveStructQuery& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueU8Handler, - const FReducerEventContext&, Context, - uint8, N, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdateUniqueU8Handler OnUpdateUniqueU8; + USubscriptionBuilder* AddVecEveryVecStructQuery(const FVecEveryVecStructQuery& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdateUniqueU8(const uint8 N, const int32 Data); + USubscriptionBuilder* AddVecF32Query(const FVecF32Query& Query); - bool InvokeUpdateUniqueU8(const FReducerEventContext& Context, const UUpdateUniqueU8Reducer* Args); - bool InvokeUpdateUniqueU8WithArgs(const FReducerEventContext& Context, const FUpdateUniqueU8Args& Args); + USubscriptionBuilder* AddVecF64Query(const FVecF64Query& Query); - DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( - FUpdateUniqueUuidHandler, - const FReducerEventContext&, Context, - const FSpacetimeDBUuid&, U, - int32, Data - ); - UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") - FUpdateUniqueUuidHandler OnUpdateUniqueUuid; + USubscriptionBuilder* AddVecI128Query(const FVecI128Query& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void UpdateUniqueUuid(const FSpacetimeDBUuid& U, const int32 Data); + USubscriptionBuilder* AddVecI16Query(const FVecI16Query& Query); - bool InvokeUpdateUniqueUuid(const FReducerEventContext& Context, const UUpdateUniqueUuidReducer* Args); - bool InvokeUpdateUniqueUuidWithArgs(const FReducerEventContext& Context, const FUpdateUniqueUuidArgs& Args); + USubscriptionBuilder* AddVecI256Query(const FVecI256Query& Query); - // Internal error handling - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FInternalOnUnhandledReducerError, const FReducerEventContext&, Context, const FString&, Error); - FInternalOnUnhandledReducerError InternalOnUnhandledReducerError; + USubscriptionBuilder* AddVecI32Query(const FVecI32Query& Query); -private: + USubscriptionBuilder* AddVecI64Query(const FVecI64Query& Query); - friend UDbConnection; + USubscriptionBuilder* AddVecI8Query(const FVecI8Query& Query); - UPROPERTY() - class UDbConnection* Conn; -}; + USubscriptionBuilder* AddVecIdentityQuery(const FVecIdentityQuery& Query); -// RemoteProcedures class -UCLASS(BlueprintType) -class TESTCLIENT_API URemoteProcedures : public UObject -{ - GENERATED_BODY() + USubscriptionBuilder* AddVecSimpleEnumQuery(const FVecSimpleEnumQuery& Query); -public: + USubscriptionBuilder* AddVecStringQuery(const FVecStringQuery& Query); - // Internal error handling - DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FInternalOnUnhandledProcedureError, const FProcedureEventContext&, Context, const FString&, Error); - FInternalOnUnhandledProcedureError InternalOnUnhandledProcedureError; + USubscriptionBuilder* AddVecTimestampQuery(const FVecTimestampQuery& Query); -private: + USubscriptionBuilder* AddVecU128Query(const FVecU128Query& Query); - friend UDbConnection; + USubscriptionBuilder* AddVecU16Query(const FVecU16Query& Query); - UPROPERTY() - class UDbConnection* Conn; -}; + USubscriptionBuilder* AddVecU256Query(const FVecU256Query& Query); -// SubscriptionBuilder class -UCLASS(BlueprintType) -class TESTCLIENT_API USubscriptionBuilder : public USubscriptionBuilderBase -{ - GENERATED_BODY() + USubscriptionBuilder* AddVecU32Query(const FVecU32Query& Query); -public: + USubscriptionBuilder* AddVecU64Query(const FVecU64Query& Query); - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") - USubscriptionBuilder* OnApplied(FOnSubscriptionApplied Callback); + USubscriptionBuilder* AddVecU8Query(const FVecU8Query& Query); - UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") - USubscriptionBuilder* OnError(FOnSubscriptionError Callback); + USubscriptionBuilder* AddVecUnitStructQuery(const FVecUnitStructQuery& Query); - UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - USubscriptionHandle* Subscribe(const TArray& SQL); + USubscriptionBuilder* AddVecUuidQuery(const FVecUuidQuery& Query); - /** Convenience for subscribing to all rows from all tables */ + /** Convenience for subscribing to all rows from all public sources, including views */ UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") USubscriptionHandle* SubscribeToAllTables(); @@ -10394,6 +24039,9 @@ class TESTCLIENT_API USubscriptionBuilder : public USubscriptionBuilderBase UPROPERTY() class UDbConnection* Conn; + UPROPERTY() + TArray PendingSqlQueries; + // Delegates stored so Subscribe() can bind forwarding callbacks FOnSubscriptionApplied OnAppliedDelegateInternal; FOnSubscriptionError OnErrorDelegateInternal; diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Types/EnumWithPayloadType.g.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Types/EnumWithPayloadType.g.h index 1c4ef086cf8..0ed4e1b63bc 100644 --- a/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Types/EnumWithPayloadType.g.h +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/ModuleBindings/Types/EnumWithPayloadType.g.h @@ -46,7 +46,7 @@ struct TESTCLIENT_API FEnumWithPayloadType public: FEnumWithPayloadType() = default; - TVariant, uint32, int16, uint8, FSpacetimeDBInt128, FString, int64, uint64, int32, double, FSpacetimeDBInt256, TArray, bool, int8, uint16, FSpacetimeDBUInt128, float, FSpacetimeDBUInt256, FSpacetimeDBConnectionId, TArray, TArray, FSpacetimeDBTimestamp> MessageData; + TVariant, int64, FSpacetimeDBUInt128, uint32, FSpacetimeDBIdentity, TArray, FSpacetimeDBInt256, FSpacetimeDBConnectionId, float, TArray, uint8, FString, FSpacetimeDBTimestamp, FSpacetimeDBUuid, TArray> MessageData; UPROPERTY(BlueprintReadOnly) EEnumWithPayloadTag Tag = static_cast(0); diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/Tests/CommonTestFunctions.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/Tests/CommonTestFunctions.h index 29bc21270b2..1919cbd17e0 100644 --- a/sdks/unreal/tests/TestClient/Source/TestClient/Public/Tests/CommonTestFunctions.h +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/Tests/CommonTestFunctions.h @@ -83,9 +83,9 @@ class UTestHelperDelegates : public UObject UFUNCTION() void HandleConnect(UDbConnection* Conn, FSpacetimeDBIdentity Identity, const FString& Token); - TFunction OnConnectError; + TFunction OnConnectError; UFUNCTION() - void HandleConnectError(UDbConnection* Conn, const FString& Error); + void HandleConnectError(const FString& Error); TFunction OnDisconnect; UFUNCTION() @@ -140,6 +140,9 @@ bool AssertAllTablesEmpty(FAutomationTestBase* Test, // Get the Database name from environment variables. bool GetDbName(FString& DBName, FString& Error); +// Get the SpacetimeDB server URL from environment variables. +FString GetServerUrl(); + //Validate that the test parameters are configured correctly. bool ValidateParameterConfig(FAutomationTestBase* Test); @@ -154,4 +157,4 @@ T* CreateTestHandler() Handler->AddToRoot(); Handler->Counter = MakeShared(); return Handler; -} \ No newline at end of file +} diff --git a/sdks/unreal/tests/TestClient/Source/TestClient/Public/Tests/SpacetimeFullClientTests.h b/sdks/unreal/tests/TestClient/Source/TestClient/Public/Tests/SpacetimeFullClientTests.h index 02b26831c9f..267e28840b0 100644 --- a/sdks/unreal/tests/TestClient/Source/TestClient/Public/Tests/SpacetimeFullClientTests.h +++ b/sdks/unreal/tests/TestClient/Source/TestClient/Public/Tests/SpacetimeFullClientTests.h @@ -87,10 +87,8 @@ IMPLEMENT_SIMPLE_AUTOMATION_TEST(FInsertDeleteLargeTableTest, "SpacetimeDB.TestC IMPLEMENT_SIMPLE_AUTOMATION_TEST(FInsertPrimitivesAsStringTest, "SpacetimeDB.TestClient.InsertPrimitivesAsStringsTest", EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter) -/** Tests authentication. */ -IMPLEMENT_SIMPLE_AUTOMATION_TEST(FReauth1Test, "SpacetimeDB.TestClient.ReauthPart1Test", EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter) -/** Tests reauthenticate using old credentials. */ -IMPLEMENT_SIMPLE_AUTOMATION_TEST(FReauth2Test, "SpacetimeDB.TestClient.ReauthPart2Test", EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter) +/** Tests reauthentication using stored credentials. */ +IMPLEMENT_SIMPLE_AUTOMATION_TEST(FReauthTest, "SpacetimeDB.TestClient.ReauthTest", EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter) /** Tests should file logic. */ @@ -132,3 +130,4 @@ IMPLEMENT_SIMPLE_AUTOMATION_TEST(FOverlappingSubscriptionsTest, "SpacetimeDB.Tes IMPLEMENT_SIMPLE_AUTOMATION_TEST(FInsertCallUuidV4Test, "SpacetimeDB.TestClient.InsertCallUuidV4Test", EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter) IMPLEMENT_SIMPLE_AUTOMATION_TEST(FInsertCallUuidV7Test, "SpacetimeDB.TestClient.InsertCallUuidV7Test", EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter) +IMPLEMENT_SIMPLE_AUTOMATION_TEST(FBlueprintQueryBuilderBasicFlowTest, "SpacetimeDB.TestClient.BlueprintQueryBuilderBasicFlowTest", EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter) diff --git a/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Private/ModuleBindings/SpacetimeDBClient.g.cpp b/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Private/ModuleBindings/SpacetimeDBClient.g.cpp index e324c566449..56854fee654 100644 --- a/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Private/ModuleBindings/SpacetimeDBClient.g.cpp +++ b/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Private/ModuleBindings/SpacetimeDBClient.g.cpp @@ -201,7 +201,7 @@ void URemoteProcedures::InvalidRequest(FOnInvalidRequestComplete Callback) Conn->CallProcedureTyped(TEXT("invalid_request"), FInvalidRequestArgs(), Wrapper); } -void URemoteProcedures::ReadMySchema(FOnReadMySchemaComplete Callback) +void URemoteProcedures::ReadMySchema(const FString& ServerUrl, FOnReadMySchemaComplete Callback) { if (!Conn) { @@ -227,7 +227,7 @@ void URemoteProcedures::ReadMySchema(FOnReadMySchemaComplete Callback) // Fire the user's typed delegate Callback.ExecuteIfBound(Context, ResultValue, bSuccess); }); - Conn->CallProcedureTyped(TEXT("read_my_schema"), FReadMySchemaArgs(), Wrapper); + Conn->CallProcedureTyped(TEXT("read_my_schema"), FReadMySchemaArgs(ServerUrl), Wrapper); } void URemoteProcedures::ReturnEnumA(const uint32 A, FOnReturnEnumAComplete Callback) @@ -557,6 +557,12 @@ USubscriptionBuilder* USubscriptionBuilder::OnError(FOnSubscriptionError Callbac OnErrorDelegateInternal = Callback; return this; } +USubscriptionHandle* USubscriptionBuilder::Subscribe() +{ + const TArray SqlQueries = PendingSqlQueries; + PendingSqlQueries.Empty(); + return Subscribe(SqlQueries); +} USubscriptionHandle* USubscriptionBuilder::Subscribe(const TArray& SQL) { USubscriptionHandle* Handle = NewObject(); @@ -584,7 +590,37 @@ USubscriptionHandle* USubscriptionBuilder::Subscribe(const TArray& SQL) } USubscriptionHandle* USubscriptionBuilder::SubscribeToAllTables() { - return Subscribe({ "SELECT * FROM * " }); + return Subscribe(FQueryBuilder::AllTablesSqlQueries()); +} + +USubscriptionBuilder* USubscriptionBuilder::AddBlueprintQuery(const FBlueprintQuery& Query) +{ + PendingSqlQueries.Add(Query.Sql); + return this; +} + +USubscriptionBuilder* USubscriptionBuilder::AddMyTableQuery(const FMyTableQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPkUuidQuery(const FPkUuidQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddProcInsertsIntoQuery(const FProcInsertsIntoQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); } USubscriptionHandle::USubscriptionHandle(UDbConnection* InConn) @@ -667,7 +703,7 @@ void UDbConnection::ForwardOnConnect(UDbConnectionBase* BaseConnection, FSpaceti { if (OnConnectDelegate.IsBound()) { - OnConnectDelegate.Execute(this, Identity, Token); + OnConnectDelegate.Execute(this, InIdentity, InToken); } } void UDbConnection::ForwardOnDisconnect(UDbConnectionBase* BaseConnection, const FString& Error) diff --git a/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Private/Tests/CommonTestFunctions.cpp b/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Private/Tests/CommonTestFunctions.cpp index b7805effb9a..310e7e65a62 100644 --- a/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Private/Tests/CommonTestFunctions.cpp +++ b/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Private/Tests/CommonTestFunctions.cpp @@ -10,11 +10,11 @@ void UTestHelperDelegates::HandleConnect(UDbConnection* Conn, FSpacetimeDBIdenti } } -void UTestHelperDelegates::HandleConnectError(UDbConnection* Conn, const FString& Error) +void UTestHelperDelegates::HandleConnectError(const FString& Error) { if (OnConnectError) { - OnConnectError(Conn, Error); + OnConnectError(Error); } } @@ -95,7 +95,7 @@ UDbConnection* ConnectWithThen(TSharedPtr Counter, Callback(Conn); Counter->MarkSuccess(ConnectTestName); }; - TestHelper->OnConnectError = [Counter, ConnectTestName](UDbConnection*, const FString& Error) + TestHelper->OnConnectError = [Counter, ConnectTestName](const FString& Error) { Counter->MarkFailure(ConnectTestName, FString::Printf(TEXT("Connect error: %s"), *Error)); }; @@ -116,7 +116,7 @@ UDbConnection* ConnectWithThen(TSharedPtr Counter, UDbConnectionBuilder* Builder = UDbConnection::Builder() - ->WithUri(TEXT("localhost:3000")) + ->WithUri(GetServerUrl()) ->WithDatabaseName(DbName) ->OnConnect(ConnectDelegate) ->OnDisconnect(DisconnectDelegate) @@ -330,6 +330,23 @@ bool GetDbName(FString& DBName, FString& Error) return false; } +FString GetServerUrl() +{ + const FString ServerUrlEnv = FPlatformMisc::GetEnvironmentVariable(TEXT("SPACETIME_SDK_TEST_SERVER_URL")); + if (!ServerUrlEnv.IsEmpty()) + { + return ServerUrlEnv; + } + + FString CmdValue; + if (FParse::Value(FCommandLine::Get(), TEXT("-SpacetimeServerUrl="), CmdValue)) + { + return CmdValue; + } + + return TEXT("localhost:3000"); +} + bool ValidateParameterConfig(FAutomationTestBase* Test) { FString DbName; diff --git a/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Public/ModuleBindings/Procedures/ReadMySchema.g.h b/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Public/ModuleBindings/Procedures/ReadMySchema.g.h index 79b411d73fd..c587c4a127b 100644 --- a/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Public/ModuleBindings/Procedures/ReadMySchema.g.h +++ b/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Public/ModuleBindings/Procedures/ReadMySchema.g.h @@ -12,12 +12,19 @@ struct TESTPROCCLIENT_API FReadMySchemaArgs { GENERATED_BODY() + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FString ServerUrl; + FReadMySchemaArgs() = default; + FReadMySchemaArgs(const FString& InServerUrl) + : ServerUrl(InServerUrl) + {} + FORCEINLINE bool operator==(const FReadMySchemaArgs& Other) const { - return true; + return ServerUrl == Other.ServerUrl; } FORCEINLINE bool operator!=(const FReadMySchemaArgs& Other) const { @@ -27,5 +34,5 @@ struct TESTPROCCLIENT_API FReadMySchemaArgs namespace UE::SpacetimeDB { - UE_SPACETIMEDB_STRUCT_EMPTY(FReadMySchemaArgs); + UE_SPACETIMEDB_STRUCT(FReadMySchemaArgs, ServerUrl); } diff --git a/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Public/ModuleBindings/SpacetimeDBClient.g.h b/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Public/ModuleBindings/SpacetimeDBClient.g.h index c991307b61b..f20a6aeb4cf 100644 --- a/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Public/ModuleBindings/SpacetimeDBClient.g.h +++ b/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Public/ModuleBindings/SpacetimeDBClient.g.h @@ -1,7 +1,7 @@ // THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE // WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. -// This was generated using spacetimedb cli version 2.0.3 (commit b6045fcc908d2846f8fb26570c2f300f5d685996). +// This was generated using spacetimedb cli version 2.6.0 (commit d8a2be99ffd985b539bf111ec0214639e2b81e41). #pragma once #include "CoreMinimal.h" @@ -23,8 +23,12 @@ #include "ModuleBindings/Procedures/WillPanic.g.h" #include "ModuleBindings/ReducerBase.g.h" #include "ModuleBindings/Reducers/ScheduleProc.g.h" +#include "ModuleBindings/Types/MyTableType.g.h" +#include "ModuleBindings/Types/PkUuidType.g.h" +#include "ModuleBindings/Types/ProcInsertsIntoType.g.h" #include "ModuleBindings/Types/ReturnEnumType.g.h" #include "ModuleBindings/Types/ReturnStructType.g.h" +#include "QueryBuilder/query_builder.h" #include "Types/Builtins.h" #include "Types/UnitType.h" #include "SpacetimeDBClient.g.generated.h" @@ -1068,7 +1072,7 @@ class TESTPROCCLIENT_API URemoteProcedures : public UObject UFUNCTION(BlueprintCallable, Category="SpacetimeDB") - void ReadMySchema(FOnReadMySchemaComplete Callback); + void ReadMySchema(const FString& ServerUrl, FOnReadMySchemaComplete Callback); // NOTE: Not exposed to Blueprint because return type or uint32 types are not Blueprint-compatible @@ -1107,6 +1111,795 @@ class TESTPROCCLIENT_API URemoteProcedures : public UObject class UDbConnection* Conn; }; +// QueryBuilder types +struct TESTPROCCLIENT_API FMyTableCols; +struct TESTPROCCLIENT_API FMyTableIxCols; +struct TESTPROCCLIENT_API FPkUuidCols; +struct TESTPROCCLIENT_API FPkUuidIxCols; +struct TESTPROCCLIENT_API FProcInsertsIntoCols; +struct TESTPROCCLIENT_API FProcInsertsIntoIxCols; + +struct TESTPROCCLIENT_API FMyTableCols +{ + explicit FMyTableCols(const char* TableName) + : Field(TableName, "field") {} + + ::SpacetimeDB::query_builder::Col Field; +}; + +struct TESTPROCCLIENT_API FMyTableIxCols +{ + explicit FMyTableIxCols(const char* TableName) + {} + +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTPROCCLIENT_API FPkUuidCols +{ + explicit FPkUuidCols(const char* TableName) + : U(TableName, "u"), Data(TableName, "data") {} + + ::SpacetimeDB::query_builder::Col U; + ::SpacetimeDB::query_builder::Col Data; +}; + +struct TESTPROCCLIENT_API FPkUuidIxCols +{ + explicit FPkUuidIxCols(const char* TableName) + {} + +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTPROCCLIENT_API FProcInsertsIntoCols +{ + explicit FProcInsertsIntoCols(const char* TableName) + : ReducerTs(TableName, "reducer_ts"), ProcedureTs(TableName, "procedure_ts"), X(TableName, "x"), Y(TableName, "y") {} + + ::SpacetimeDB::query_builder::Col ReducerTs; + ::SpacetimeDB::query_builder::Col ProcedureTs; + ::SpacetimeDB::query_builder::Col X; + ::SpacetimeDB::query_builder::Col Y; +}; + +struct TESTPROCCLIENT_API FProcInsertsIntoIxCols +{ + explicit FProcInsertsIntoIxCols(const char* TableName) + {} + +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTPROCCLIENT_API FFrom +{ + [[nodiscard]] ::SpacetimeDB::query_builder::Table MyTable() const { return ::SpacetimeDB::query_builder::Table("my_table", FMyTableCols("my_table"), FMyTableIxCols("my_table")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PkUuid() const { return ::SpacetimeDB::query_builder::Table("pk_uuid", FPkUuidCols("pk_uuid"), FPkUuidIxCols("pk_uuid")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table ProcInsertsInto() const { return ::SpacetimeDB::query_builder::Table("proc_inserts_into", FProcInsertsIntoCols("proc_inserts_into"), FProcInsertsIntoIxCols("proc_inserts_into")); } +}; + +struct TESTPROCCLIENT_API FQueryBuilder +{ + FFrom From; + + static TArray AllTablesSqlQueries() + { + TArray Sql; + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.MyTable().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkUuid().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.ProcInsertsInto().into_sql().c_str()))); + return Sql; + } +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FBlueprintQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FBlueprintPredicate +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FMyTableQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FPkUuidQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FProcInsertsIntoQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FBlueprintBoolColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FBlueprintUInt8Column +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FBlueprintInt32Column +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FBlueprintInt64Column +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FBlueprintFloatColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FBlueprintDoubleColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FBlueprintStringColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FBlueprintIdentityColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FBlueprintConnectionIdColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FBlueprintTimestampColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTPROCCLIENT_API FBlueprintUuidColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +UCLASS(BlueprintType) +class TESTPROCCLIENT_API UQueryBuilderBlueprintLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|MyTable", meta=(DisplayName="From MyTable")) + static FMyTableQuery FromMyTable() + { + FMyTableQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.MyTable().into_sql().c_str())); + Query.ResultSourceName = TEXT("my_table"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|MyTable", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_MyTableQueryToBlueprintQuery(const FMyTableQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|MyTable", meta=(DisplayName="MyTable Where")) + static FMyTableQuery MyTableWhere(FMyTableQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkUuid", meta=(DisplayName="From PkUuid")) + static FPkUuidQuery FromPkUuid() + { + FPkUuidQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PkUuid().into_sql().c_str())); + Query.ResultSourceName = TEXT("pk_uuid"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkUuid", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PkUuidQueryToBlueprintQuery(const FPkUuidQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkUuid|Columns", meta=(DisplayName="PkUuid U")) + static FBlueprintUuidColumn PkUuidU(const FPkUuidQuery& Query) + { + FBlueprintUuidColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_uuid") : Query.ResultSourceName; + Column.ColumnName = TEXT("u"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkUuid|Columns", meta=(DisplayName="PkUuid Data")) + static FBlueprintUInt8Column PkUuidData(const FPkUuidQuery& Query) + { + FBlueprintUInt8Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("pk_uuid") : Query.ResultSourceName; + Column.ColumnName = TEXT("data"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PkUuid", meta=(DisplayName="PkUuid Where")) + static FPkUuidQuery PkUuidWhere(FPkUuidQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ProcInsertsInto", meta=(DisplayName="From ProcInsertsInto")) + static FProcInsertsIntoQuery FromProcInsertsInto() + { + FProcInsertsIntoQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.ProcInsertsInto().into_sql().c_str())); + Query.ResultSourceName = TEXT("proc_inserts_into"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ProcInsertsInto", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_ProcInsertsIntoQueryToBlueprintQuery(const FProcInsertsIntoQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ProcInsertsInto|Columns", meta=(DisplayName="ProcInsertsInto ReducerTs")) + static FBlueprintTimestampColumn ProcInsertsIntoReducerTs(const FProcInsertsIntoQuery& Query) + { + FBlueprintTimestampColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("proc_inserts_into") : Query.ResultSourceName; + Column.ColumnName = TEXT("reducer_ts"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ProcInsertsInto|Columns", meta=(DisplayName="ProcInsertsInto ProcedureTs")) + static FBlueprintTimestampColumn ProcInsertsIntoProcedureTs(const FProcInsertsIntoQuery& Query) + { + FBlueprintTimestampColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("proc_inserts_into") : Query.ResultSourceName; + Column.ColumnName = TEXT("procedure_ts"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ProcInsertsInto|Columns", meta=(DisplayName="ProcInsertsInto X")) + static FBlueprintUInt8Column ProcInsertsIntoX(const FProcInsertsIntoQuery& Query) + { + FBlueprintUInt8Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("proc_inserts_into") : Query.ResultSourceName; + Column.ColumnName = TEXT("x"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ProcInsertsInto|Columns", meta=(DisplayName="ProcInsertsInto Y")) + static FBlueprintUInt8Column ProcInsertsIntoY(const FProcInsertsIntoQuery& Query) + { + FBlueprintUInt8Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("proc_inserts_into") : Query.ResultSourceName; + Column.ColumnName = TEXT("y"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ProcInsertsInto", meta=(DisplayName="ProcInsertsInto Where")) + static FProcInsertsIntoQuery ProcInsertsIntoWhere(FProcInsertsIntoQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Bool Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate BoolEqual(const FBlueprintBoolColumn& Column, const bool Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate UInt8Equal(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate UInt8GreaterThan(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate UInt8GreaterEqual(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate UInt8LessThan(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate UInt8LessEqual(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate Int32Equal(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate Int32GreaterThan(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate Int32GreaterEqual(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate Int32LessThan(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate Int32LessEqual(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate Int64Equal(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate Int64GreaterThan(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate Int64GreaterEqual(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate Int64LessThan(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate Int64LessEqual(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate FloatEqual(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate FloatGreaterThan(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate FloatGreaterEqual(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate FloatLessThan(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate FloatLessEqual(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate DoubleEqual(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate DoubleGreaterThan(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate DoubleGreaterEqual(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate DoubleLessThan(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate DoubleLessEqual(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="String Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate StringEqual(const FBlueprintStringColumn& Column, const FString& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Identity Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate IdentityEqual(const FBlueprintIdentityColumn& Column, const FSpacetimeDBIdentity& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="ConnectionId Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate ConnectionIdEqual(const FBlueprintConnectionIdColumn& Column, const FSpacetimeDBConnectionId& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate TimestampEqual(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate TimestampGreaterThan(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate TimestampGreaterEqual(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate TimestampLessThan(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate TimestampLessEqual(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Uuid Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate UuidEqual(const FBlueprintUuidColumn& Column, const FSpacetimeDBUuid& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="AND", CompactNodeTitle="AND", Keywords="and &&")) + static FBlueprintPredicate And(const FBlueprintPredicate& A, const FBlueprintPredicate& B) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = A.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("(%s) AND (%s)"), *A.Sql, *B.Sql); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="OR", CompactNodeTitle="OR", Keywords="or ||")) + static FBlueprintPredicate Or(const FBlueprintPredicate& A, const FBlueprintPredicate& B) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = A.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("(%s) OR (%s)"), *A.Sql, *B.Sql); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="NOT", CompactNodeTitle="NOT", Keywords="not !")) + static FBlueprintPredicate Not(const FBlueprintPredicate& A) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = A.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("NOT (%s)"), *A.Sql); + return Predicate; + } + +private: + static FString AppendPredicate(const FString& Sql, const FString& Predicate) + { + if (Sql.Contains(TEXT(" WHERE "))) + { + return Sql + TEXT(" AND (") + Predicate + TEXT(")"); + } + return Sql + TEXT(" WHERE (") + Predicate + TEXT(")"); + } +}; + // SubscriptionBuilder class UCLASS(BlueprintType) class TESTPROCCLIENT_API USubscriptionBuilder : public USubscriptionBuilderBase @@ -1122,9 +1915,31 @@ class TESTPROCCLIENT_API USubscriptionBuilder : public USubscriptionBuilderBase USubscriptionBuilder* OnError(FOnSubscriptionError Callback); UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + USubscriptionHandle* Subscribe(); + USubscriptionHandle* Subscribe(const TArray& SQL); - /** Convenience for subscribing to all rows from all tables */ + template + USubscriptionBuilder* AddQuery(TFn&& Build) + { + FQueryBuilder Q; + auto Query = std::forward(Build)(Q); + static_assert(::SpacetimeDB::query_builder::QueryBuilderReturn, + "Typed subscription queries must return a query_builder table/query expression."); + PendingSqlQueries.Add(FString(UTF8_TO_TCHAR(Query.into_sql().c_str()))); + return this; + } + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB", meta=(DisplayName="AddQuery", ScriptName="AddQuery")) + USubscriptionBuilder* AddBlueprintQuery(const FBlueprintQuery& Query); + + USubscriptionBuilder* AddMyTableQuery(const FMyTableQuery& Query); + + USubscriptionBuilder* AddPkUuidQuery(const FPkUuidQuery& Query); + + USubscriptionBuilder* AddProcInsertsIntoQuery(const FProcInsertsIntoQuery& Query); + + /** Convenience for subscribing to all rows from all public sources, including views */ UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") USubscriptionHandle* SubscribeToAllTables(); @@ -1136,6 +1951,9 @@ class TESTPROCCLIENT_API USubscriptionBuilder : public USubscriptionBuilderBase UPROPERTY() class UDbConnection* Conn; + UPROPERTY() + TArray PendingSqlQueries; + // Delegates stored so Subscribe() can bind forwarding callbacks FOnSubscriptionApplied OnAppliedDelegateInternal; FOnSubscriptionError OnErrorDelegateInternal; diff --git a/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Public/Tests/CommonTestFunctions.h b/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Public/Tests/CommonTestFunctions.h index c4ebc251608..fb02cb8bb89 100644 --- a/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Public/Tests/CommonTestFunctions.h +++ b/sdks/unreal/tests/TestProcClient/Source/TestProcClient/Public/Tests/CommonTestFunctions.h @@ -83,9 +83,9 @@ class UTestHelperDelegates : public UObject UFUNCTION() void HandleConnect(UDbConnection* Conn, FSpacetimeDBIdentity Identity, const FString& Token); - TFunction OnConnectError; + TFunction OnConnectError; UFUNCTION() - void HandleConnectError(UDbConnection* Conn, const FString& Error); + void HandleConnectError(const FString& Error); TFunction OnDisconnect; UFUNCTION() @@ -140,6 +140,9 @@ bool AssertAllTablesEmpty(FAutomationTestBase* Test, // Get the Database name from environment variables. bool GetDbName(FString& DBName, FString& Error); +// Get the SpacetimeDB server URL from environment variables. +FString GetServerUrl(); + //Validate that the test parameters are configured correctly. bool ValidateParameterConfig(FAutomationTestBase* Test); @@ -154,4 +157,4 @@ T* CreateTestHandler() Handler->AddToRoot(); Handler->Counter = MakeShared(); return Handler; -} \ No newline at end of file +} diff --git a/sdks/unreal/tests/TestViewClient/.vsconfig b/sdks/unreal/tests/TestViewClient/.vsconfig new file mode 100644 index 00000000000..3b919ea7b8f --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/.vsconfig @@ -0,0 +1,17 @@ +{ + "version": "1.0", + "components": [ + "Component.Unreal.Debugger", + "Component.Unreal.Ide", + "Microsoft.Net.Component.4.6.2.TargetingPack", + "Microsoft.VisualStudio.Component.VC.14.38.17.8.ATL", + "Microsoft.VisualStudio.Component.VC.14.38.17.8.x86.x64", + "Microsoft.VisualStudio.Component.VC.Llvm.Clang", + "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", + "Microsoft.VisualStudio.Component.Windows11SDK.22621", + "Microsoft.VisualStudio.Workload.CoreEditor", + "Microsoft.VisualStudio.Workload.ManagedDesktop", + "Microsoft.VisualStudio.Workload.NativeDesktop", + "Microsoft.VisualStudio.Workload.NativeGame" + ] +} diff --git a/sdks/unreal/tests/TestViewClient/Config/DefaultEditor.ini b/sdks/unreal/tests/TestViewClient/Config/DefaultEditor.ini new file mode 100644 index 00000000000..e69de29bb2d diff --git a/sdks/unreal/tests/TestViewClient/Config/DefaultEditorPerProjectUserSettings.ini b/sdks/unreal/tests/TestViewClient/Config/DefaultEditorPerProjectUserSettings.ini new file mode 100644 index 00000000000..66fac145c2f --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Config/DefaultEditorPerProjectUserSettings.ini @@ -0,0 +1,5 @@ + + +[/Script/TestViewClient.SpacetimeDBSettings] +SpacetimeDbTestName=sdk-test-view + diff --git a/sdks/unreal/tests/TestViewClient/Config/DefaultEngine.ini b/sdks/unreal/tests/TestViewClient/Config/DefaultEngine.ini new file mode 100644 index 00000000000..0239c099c52 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Config/DefaultEngine.ini @@ -0,0 +1,57 @@ +[Zen] +bEnableZen=false +bEnableZenLocal=false + +[/Script/Zen.ZenServiceSettings] +bEnabled=False +bAutoLaunch=False + +[Audio] +UseAudioMixer=True + +[/Script/HardwareTargeting.HardwareTargetingSettings] +TargetedHardwareClass=Desktop +AppliedTargetedHardwareClass=Desktop +DefaultGraphicsPerformance=Maximum +AppliedDefaultGraphicsPerformance=Maximum + +[/Script/WindowsTargetPlatform.WindowsTargetSettings] +DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 +DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 +!D3D12TargetedShaderFormats=ClearArray ++D3D12TargetedShaderFormats=PCD3D_SM6 + +[/Script/Engine.RendererSettings] +r.AllowStaticLighting=0 +r.GenerateMeshDistanceFields=False +r.DynamicGlobalIlluminationMethod=1 +r.ReflectionMethod=1 +r.Shadow.Virtual.Enable=1 +r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True +r.DefaultFeature.LocalExposure.HighlightContrastScale=0.8 +r.DefaultFeature.LocalExposure.ShadowContrastScale=0.8 +r.SkinCache.CompileShaders=True +r.RayTracing.RayTracingProxies.ProjectEnabled=True + +[/Script/WorldPartitionEditor.WorldPartitionEditorSettings] +CommandletClass=Class'/Script/UnrealEd.WorldPartitionConvertCommandlet' + +[/Script/Engine.UserInterfaceSettings] +bAuthorizeAutomaticWidgetVariableCreation=False +FontDPIPreset=Standard +FontDPI=72 + +[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings] +bEnablePlugin=True +bAllowNetworkConnection=True +SecurityToken=FC2469BA449F3D6AFB81E9A6E6FCBE4B +bIncludeInShipping=False +bAllowExternalStartInShipping=False +bCompileAFSProject=False +bUseCompression=False +bLogFiles=False +bReportStats=False +ConnectionType=USBOnly +bUseManualIPAddress=False +ManualIPAddress= + diff --git a/sdks/unreal/tests/TestViewClient/Config/DefaultGame.ini b/sdks/unreal/tests/TestViewClient/Config/DefaultGame.ini new file mode 100644 index 00000000000..4754b466b8d --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Config/DefaultGame.ini @@ -0,0 +1,5 @@ +[/Script/EngineSettings.GeneralProjectSettings] +ProjectID=9B36AE4A4DF62F180A496F93BE6813D9 + +[/Script/CommonUI.CommonUISettings] +CommonButtonAcceptKeyHandling=TriggerClick diff --git a/sdks/unreal/tests/TestViewClient/Config/DefaultInput.ini b/sdks/unreal/tests/TestViewClient/Config/DefaultInput.ini new file mode 100644 index 00000000000..a72fda22b24 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Config/DefaultInput.ini @@ -0,0 +1,85 @@ +[/Script/Engine.InputSettings] +-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) +-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) +-AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) ++AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) +bAltEnterTogglesFullscreen=True +bF11TogglesFullscreen=True +bUseMouseForTouch=False +bEnableMouseSmoothing=True +bEnableFOVScaling=True +bCaptureMouseOnLaunch=True +bEnableLegacyInputScales=True +bEnableMotionControls=True +bFilterInputByPlatformUser=False +bShouldFlushPressedKeysOnViewportFocusLost=True +bEnableDynamicComponentInputBinding=True +bAlwaysShowTouchInterface=False +bShowConsoleOnFourFingerTap=True +bEnableGestureRecognizer=False +bUseAutocorrect=False +DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown +DefaultViewportMouseLockMode=LockOnCapture +FOVScale=0.011110 +DoubleClickTime=0.200000 +DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput +DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent +DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks +-ConsoleKeys=Tilde ++ConsoleKeys=Tilde + diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient.Target.cs b/sdks/unreal/tests/TestViewClient/Source/TestViewClient.Target.cs new file mode 100644 index 00000000000..cbc530e7e6f --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient.Target.cs @@ -0,0 +1,15 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; +using System.Collections.Generic; + +public class TestViewClientTarget : TargetRules +{ + public TestViewClientTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Game; + DefaultBuildSettings = BuildSettingsVersion.V5; + + ExtraModuleNames.AddRange( new string[] { "TestViewClient" } ); + } +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/SpacetimeDBClient.g.cpp b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/SpacetimeDBClient.g.cpp new file mode 100644 index 00000000000..fe1df981db1 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/SpacetimeDBClient.g.cpp @@ -0,0 +1,623 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#include "ModuleBindings/SpacetimeDBClient.g.h" +#include "DBCache/WithBsatn.h" +#include "BSATN/UEBSATNHelpers.h" +#include "ModuleBindings/Tables/MyPlayerTable.g.h" +#include "ModuleBindings/Tables/MyPlayerAndLevelTable.g.h" +#include "ModuleBindings/Tables/NearbyPlayersTable.g.h" +#include "ModuleBindings/Tables/PlayerTable.g.h" +#include "ModuleBindings/Tables/PlayerLevelTable.g.h" +#include "ModuleBindings/Tables/PlayersAtLevel0Table.g.h" + +UDbConnection::UDbConnection(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) +{ + Db = ObjectInitializer.CreateDefaultSubobject(this, TEXT("RemoteTables")); + Db->Initialize(); + + Reducers = ObjectInitializer.CreateDefaultSubobject(this, TEXT("RemoteReducers")); + Reducers->Conn = this; + + Procedures = ObjectInitializer.CreateDefaultSubobject(this, TEXT("RemoteProcedures")); + Procedures->Conn = this; + + RegisterTable(TEXT("my_player"), Db->MyPlayer); + RegisterTable(TEXT("my_player_and_level"), Db->MyPlayerAndLevel); + RegisterTable(TEXT("nearby_players"), Db->NearbyPlayers); + RegisterTable(TEXT("player"), Db->Player); + RegisterTable(TEXT("player_level"), Db->PlayerLevel); + RegisterTable(TEXT("players_at_level_0"), Db->PlayersAtLevel0); +} + +FContextBase::FContextBase(UDbConnection* InConn) +{ + Db = InConn->Db; + Reducers = InConn->Reducers; + Procedures = InConn->Procedures; + Conn = InConn; +} +bool FContextBase::IsActive() const +{ + return Conn->IsActive(); +} +void FContextBase::Disconnect() +{ + Conn->Disconnect(); +} +USubscriptionBuilder* FContextBase::SubscriptionBuilder() +{ + return Conn->SubscriptionBuilder(); +} +bool FContextBase::TryGetIdentity(FSpacetimeDBIdentity& OutIdentity) const +{ + return Conn->TryGetIdentity(OutIdentity); +} +FSpacetimeDBConnectionId FContextBase::GetConnectionId() const +{ + return Conn->GetConnectionId(); +} + +void URemoteTables::Initialize() +{ + + /** Creating tables */ + MyPlayer = NewObject(this); + MyPlayerAndLevel = NewObject(this); + NearbyPlayers = NewObject(this); + Player = NewObject(this); + PlayerLevel = NewObject(this); + PlayersAtLevel0 = NewObject(this); + /**/ + + /** Initialization */ + MyPlayer->PostInitialize(); + MyPlayerAndLevel->PostInitialize(); + NearbyPlayers->PostInitialize(); + Player->PostInitialize(); + PlayerLevel->PostInitialize(); + PlayersAtLevel0->PostInitialize(); + /**/ +} + +void URemoteReducers::DeletePlayer(const FSpacetimeDBIdentity& Identity) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FDeletePlayerArgs ReducerArgs(Identity); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("delete_player"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::DeletePlayer(ReducerArgs)); } +} + +bool URemoteReducers::InvokeDeletePlayer(const FReducerEventContext& Context, const UDeletePlayerReducer* Args) +{ + if (!OnDeletePlayer.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePlayer")); + } + return false; + } + + OnDeletePlayer.Broadcast(Context, Args->Identity); + return true; +} + +bool URemoteReducers::InvokeDeletePlayerWithArgs(const FReducerEventContext& Context, const FDeletePlayerArgs& Args) +{ + if (!OnDeletePlayer.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for DeletePlayer")); + } + return false; + } + + OnDeletePlayer.Broadcast(Context, Args.Identity); + return true; +} + +void URemoteReducers::InsertPlayer(const FSpacetimeDBIdentity& Identity, const uint64 Level) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FInsertPlayerArgs ReducerArgs(Identity, Level); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_player"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertPlayer(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertPlayer(const FReducerEventContext& Context, const UInsertPlayerReducer* Args) +{ + if (!OnInsertPlayer.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPlayer")); + } + return false; + } + + OnInsertPlayer.Broadcast(Context, Args->Identity, Args->Level); + return true; +} + +bool URemoteReducers::InvokeInsertPlayerWithArgs(const FReducerEventContext& Context, const FInsertPlayerArgs& Args) +{ + if (!OnInsertPlayer.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertPlayer")); + } + return false; + } + + OnInsertPlayer.Broadcast(Context, Args.Identity, Args.Level); + return true; +} + +void URemoteReducers::MovePlayer(const int32 Dx, const int32 Dy) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FMovePlayerArgs ReducerArgs(Dx, Dy); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("move_player"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::MovePlayer(ReducerArgs)); } +} + +bool URemoteReducers::InvokeMovePlayer(const FReducerEventContext& Context, const UMovePlayerReducer* Args) +{ + if (!OnMovePlayer.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for MovePlayer")); + } + return false; + } + + OnMovePlayer.Broadcast(Context, Args->Dx, Args->Dy); + return true; +} + +bool URemoteReducers::InvokeMovePlayerWithArgs(const FReducerEventContext& Context, const FMovePlayerArgs& Args) +{ + if (!OnMovePlayer.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for MovePlayer")); + } + return false; + } + + OnMovePlayer.Broadcast(Context, Args.Dx, Args.Dy); + return true; +} + +void UDbConnection::PostInitProperties() +{ + Super::PostInitProperties(); + + // Connect OnUnhandledReducerError to Reducers.InternalOnUnhandledReducerError + if (Reducers) + { + Reducers->InternalOnUnhandledReducerError.AddDynamic(this, &UDbConnection::OnUnhandledReducerErrorHandler); + } + + // Connect OnUnhandledProcedureError to Procedures.InternalOnUnhandledProcedureError + if (Procedures) + { + Procedures->InternalOnUnhandledProcedureError.AddDynamic(this, &UDbConnection::OnUnhandledProcedureErrorHandler); + } +} + +UFUNCTION() +void UDbConnection::OnUnhandledReducerErrorHandler(const FReducerEventContext& Context, const FString& Error) +{ + if (OnUnhandledReducerError.IsBound()) + { + OnUnhandledReducerError.Broadcast(Context, Error); + } +} + +UFUNCTION() +void UDbConnection::OnUnhandledProcedureErrorHandler(const FProcedureEventContext& Context, const FString& Error) +{ + if (OnUnhandledProcedureError.IsBound()) + { + OnUnhandledProcedureError.Broadcast(Context, Error); + } +} + +void UDbConnection::RegisterPendingTypedReducer(uint32 RequestId, FReducer Reducer) +{ + Reducer.RequestId = RequestId; + PendingTypedReducers.Add(RequestId, MoveTemp(Reducer)); +} + +bool UDbConnection::TryGetPendingTypedReducer(uint32 RequestId, FReducer& OutReducer) const +{ + if (const FReducer* Found = PendingTypedReducers.Find(RequestId)) + { + OutReducer = *Found; + return true; + } + return false; +} + +bool UDbConnection::TryTakePendingTypedReducer(uint32 RequestId, FReducer& OutReducer) +{ + if (FReducer* Found = PendingTypedReducers.Find(RequestId)) + { + OutReducer = *Found; + PendingTypedReducers.Remove(RequestId); + return true; + } + return false; +} + +void UDbConnection::ReducerEvent(const FReducerEvent& Event) +{ + if (!Reducers) { return; } + + FReducer DecodedReducer; + if (!TryTakePendingTypedReducer(Event.RequestId, DecodedReducer)) + { + const FString ErrorMessage = FString::Printf(TEXT("Reducer result for unknown request_id %u"), Event.RequestId); + HandleProtocolViolation(ErrorMessage); + return; + } + + FTestViewClientReducerEvent ReducerEvent; + ReducerEvent.CallerConnectionId = Event.CallerConnectionId; + ReducerEvent.CallerIdentity = Event.CallerIdentity; + ReducerEvent.EnergyConsumed = Event.EnergyConsumed; + ReducerEvent.Status = Event.Status; + ReducerEvent.Timestamp = Event.Timestamp; + ReducerEvent.Reducer = DecodedReducer; + + FReducerEventContext Context(this, ReducerEvent); + + // Dispatch by typed reducer metadata + const FString& ReducerName = ReducerEvent.Reducer.ReducerName; + + if (ReducerName == TEXT("delete_player")) + { + FDeletePlayerArgs Args = ReducerEvent.Reducer.GetAsDeletePlayer(); + Reducers->InvokeDeletePlayerWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_player")) + { + FInsertPlayerArgs Args = ReducerEvent.Reducer.GetAsInsertPlayer(); + Reducers->InvokeInsertPlayerWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("move_player")) + { + FMovePlayerArgs Args = ReducerEvent.Reducer.GetAsMovePlayer(); + Reducers->InvokeMovePlayerWithArgs(Context, Args); + return; + } + + UE_LOG(LogTemp, Warning, TEXT("Unknown reducer: %s"), *ReducerName); +} + +void UDbConnection::ReducerEventFailed(const FReducerEvent& Event, const FString ErrorMessage) +{ + if (!Reducers) { return; } + + FTestViewClientReducerEvent ReducerEvent; + ReducerEvent.CallerConnectionId = Event.CallerConnectionId; + ReducerEvent.CallerIdentity = Event.CallerIdentity; + ReducerEvent.EnergyConsumed = Event.EnergyConsumed; + ReducerEvent.Status = Event.Status; + ReducerEvent.Timestamp = Event.Timestamp; + + FReducerEventContext Context(this, ReducerEvent); + + if (Reducers->InternalOnUnhandledReducerError.IsBound()) + { + Reducers->InternalOnUnhandledReducerError.Broadcast(Context, ErrorMessage); + } +} + +void UDbConnection::ProcedureEventFailed(const FProcedureEvent& Event, const FString ErrorMessage) +{ + if (!Procedures) { return; } + + FTestViewClientProcedureEvent ProcedureEvent; + ProcedureEvent.Status = FSpacetimeDBProcedureStatus::FromStatus(Event.Status); + ProcedureEvent.Timestamp = Event.Timestamp; + + FProcedureEventContext Context(this, ProcedureEvent); + + if (Procedures->InternalOnUnhandledProcedureError.IsBound()) + { + Procedures->InternalOnUnhandledProcedureError.Broadcast(Context, ErrorMessage); + } +} + +UDbConnectionBuilder* UDbConnection::Builder() +{ + return NewObject(); +} +// Added for creating subscriptions +USubscriptionBuilder* UDbConnection::SubscriptionBuilder() +{ + USubscriptionBuilder* Builder = NewObject(this); + Builder->Conn = this; + return Builder; +} +USubscriptionBuilder* USubscriptionBuilder::OnApplied(FOnSubscriptionApplied Callback) +{ + OnAppliedDelegateInternal = Callback; + return this; +} +USubscriptionBuilder* USubscriptionBuilder::OnError(FOnSubscriptionError Callback) +{ + OnErrorDelegateInternal = Callback; + return this; +} +USubscriptionHandle* USubscriptionBuilder::Subscribe() +{ + const TArray SqlQueries = PendingSqlQueries; + PendingSqlQueries.Empty(); + return Subscribe(SqlQueries); +} +USubscriptionHandle* USubscriptionBuilder::Subscribe(const TArray& SQL) +{ + USubscriptionHandle* Handle = NewObject(); + + // Store user callbacks on the handle + Handle->Conn = Conn; + Handle->OnAppliedDelegate = OnAppliedDelegateInternal; + Handle->OnErrorDelegate = OnErrorDelegateInternal; + + // Bind forwarding functions that will convert base contexts + FSubscriptionEventDelegate BaseApplied; + BaseApplied.BindUFunction(Handle, TEXT("ForwardOnApplied")); + OnAppliedBase(BaseApplied); + + FSubscriptionErrorDelegate BaseError; + BaseError.BindUFunction(Handle, TEXT("ForwardOnError")); + OnErrorBase(BaseError); + + SubscribeBase(SQL, Handle); + if (Conn) + { + Conn->StartSubscription(Handle); + } + return Handle; +} +USubscriptionHandle* USubscriptionBuilder::SubscribeToAllTables() +{ + return Subscribe(FQueryBuilder::AllTablesSqlQueries()); +} + +USubscriptionBuilder* USubscriptionBuilder::AddBlueprintQuery(const FBlueprintQuery& Query) +{ + PendingSqlQueries.Add(Query.Sql); + return this; +} + +USubscriptionBuilder* USubscriptionBuilder::AddMyPlayerQuery(const FMyPlayerQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddMyPlayerAndLevelQuery(const FMyPlayerAndLevelQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddNearbyPlayersQuery(const FNearbyPlayersQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPlayerQuery(const FPlayerQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPlayerLevelQuery(const FPlayerLevelQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddPlayersAtLevel0Query(const FPlayersAtLevel0Query& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionHandle::USubscriptionHandle(UDbConnection* InConn) +{ + Conn = InConn; +} + +void USubscriptionHandle::ForwardOnApplied(const FSubscriptionEventContextBase& BaseCtx) +{ + if (OnAppliedDelegate.IsBound()) + { + FSubscriptionEventContext Ctx(Conn); + OnAppliedDelegate.Execute(Ctx); + } +} + +void USubscriptionHandle::ForwardOnError(const FErrorContextBase& BaseCtx) +{ + if (OnErrorDelegate.IsBound()) + { + FErrorContext Ctx(Conn, BaseCtx.Error); + OnErrorDelegate.Execute(Ctx); + } +} + + +// Cast from parent to child class +UDbConnectionBuilder* UDbConnectionBuilder::WithUri(const FString& InUri) +{ + return Cast(WithUriBase(InUri)); +} +UDbConnectionBuilder* UDbConnectionBuilder::WithDatabaseName(const FString& InName) +{ + return Cast(WithDatabaseNameBase(InName)); +} +UDbConnectionBuilder* UDbConnectionBuilder::WithToken(const FString& InToken) +{ + return Cast(WithTokenBase(InToken)); +} +UDbConnectionBuilder* UDbConnectionBuilder::WithCompression(const ESpacetimeDBCompression& InCompression) +{ + return Cast(WithCompressionBase(InCompression)); +} +UDbConnectionBuilder* UDbConnectionBuilder::OnConnect(FOnConnectDelegate Callback) +{ + OnConnectDelegateInternal = Callback; + return this; +} +UDbConnectionBuilder* UDbConnectionBuilder::OnConnectError(FOnConnectErrorDelegate Callback) +{ + return Cast(OnConnectErrorBase(Callback)); +} +UDbConnectionBuilder* UDbConnectionBuilder::OnDisconnect(FOnDisconnectDelegate Callback) +{ + OnDisconnectDelegateInternal = Callback; + return this; +} +UDbConnection* UDbConnectionBuilder::Build() +{ + UDbConnection* Connection = NewObject(); + + // Store delegates on the connection for later use + Connection->OnConnectDelegate = OnConnectDelegateInternal; + Connection->OnDisconnectDelegate = OnDisconnectDelegateInternal; + + // Wrap delegates so the base builder can bind them + FOnConnectBaseDelegate BaseConnect; + BaseConnect.BindUFunction(Connection, TEXT("ForwardOnConnect")); + Connection->SetOnConnectDelegate(BaseConnect); + OnConnectBase(BaseConnect); + + FOnDisconnectBaseDelegate BaseDisconnect; + BaseDisconnect.BindUFunction(Connection, TEXT("ForwardOnDisconnect")); + Connection->SetOnDisconnectDelegate(BaseDisconnect); + OnDisconnectBase(BaseDisconnect); + + return Cast(BuildConnection(Connection)); +} +void UDbConnection::ForwardOnConnect(UDbConnectionBase* BaseConnection, FSpacetimeDBIdentity InIdentity, const FString& InToken) +{ + if (OnConnectDelegate.IsBound()) + { + OnConnectDelegate.Execute(this, InIdentity, InToken); + } +} +void UDbConnection::ForwardOnDisconnect(UDbConnectionBase* BaseConnection, const FString& Error) +{ + PendingTypedReducers.Empty(); + if (OnDisconnectDelegate.IsBound()) + { + OnDisconnectDelegate.Execute(this, Error); + } +} + + +void UDbConnection::DbUpdate(const FDatabaseUpdateType& Update, const FSpacetimeDBEvent& Event) +{ + FTestViewClientEvent BaseEvent; + BaseEvent.Tag = Event.Tag; + + switch (Event.Tag) + { + case ESpacetimeDBEventTag::Reducer: + { + FReducerEvent ReducerEvent = Event.GetAsReducer(); + FReducer Reducer; + if (!TryGetPendingTypedReducer(ReducerEvent.RequestId, Reducer)) + { + const FString ErrorMessage = FString::Printf(TEXT("Reducer result for unknown request_id %u"), ReducerEvent.RequestId); + HandleProtocolViolation(ErrorMessage); + return; + } + BaseEvent = FTestViewClientEvent::Reducer(Reducer); + break; + } + + case ESpacetimeDBEventTag::SubscribeApplied: + BaseEvent = FTestViewClientEvent::SubscribeApplied(Event.GetAsSubscribeApplied()); + break; + + case ESpacetimeDBEventTag::UnsubscribeApplied: + BaseEvent = FTestViewClientEvent::UnsubscribeApplied(Event.GetAsUnsubscribeApplied()); + break; + + case ESpacetimeDBEventTag::Disconnected: + BaseEvent = FTestViewClientEvent::Disconnected(Event.GetAsDisconnected()); + break; + + case ESpacetimeDBEventTag::Transaction: + BaseEvent = FTestViewClientEvent::Transaction(Event.GetAsTransaction()); + break; + + case ESpacetimeDBEventTag::SubscribeError: + BaseEvent = FTestViewClientEvent::SubscribeError(Event.GetAsSubscribeError()); + break; + + case ESpacetimeDBEventTag::UnknownTransaction: + BaseEvent = FTestViewClientEvent::UnknownTransaction(Event.GetAsUnknownTransaction()); + break; + + default: + break; + } + + FEventContext Context(this, BaseEvent); + // Populate typed reducer args for convenience in table handlers + + ApplyRegisteredTableUpdates(Update, &Context); +} + diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/MyPlayerAndLevelTable.g.cpp b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/MyPlayerAndLevelTable.g.cpp new file mode 100644 index 00000000000..a030f0d5c00 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/MyPlayerAndLevelTable.g.cpp @@ -0,0 +1,35 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#include "ModuleBindings/Tables/MyPlayerAndLevelTable.g.h" +#include "DBCache/UniqueIndex.h" +#include "DBCache/BTreeUniqueIndex.h" +#include "DBCache/ClientCache.h" +#include "DBCache/TableCache.h" + +void UMyPlayerAndLevelTable::PostInitialize() +{ + /** Client cache init and setting up indexes*/ + Data = MakeShared>(); + + TSharedPtr> MyPlayerAndLevelTable = Data->GetOrAdd(TableName); + + /***/ +} + +FTableAppliedDiff UMyPlayerAndLevelTable::Update(TArray> InsertsRef, TArray> DeletesRef) +{ + FTableAppliedDiff Diff = BaseUpdate(InsertsRef, DeletesRef, Data, TableName); + + return Diff; +} + +int32 UMyPlayerAndLevelTable::Count() const +{ + return GetRowCountFromTable(Data, TableName); +} + +TArray UMyPlayerAndLevelTable::Iter() const +{ + return GetAllRowsFromTable(Data, TableName); +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/MyPlayerTable.g.cpp b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/MyPlayerTable.g.cpp new file mode 100644 index 00000000000..3db5534fdef --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/MyPlayerTable.g.cpp @@ -0,0 +1,35 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#include "ModuleBindings/Tables/MyPlayerTable.g.h" +#include "DBCache/UniqueIndex.h" +#include "DBCache/BTreeUniqueIndex.h" +#include "DBCache/ClientCache.h" +#include "DBCache/TableCache.h" + +void UMyPlayerTable::PostInitialize() +{ + /** Client cache init and setting up indexes*/ + Data = MakeShared>(); + + TSharedPtr> MyPlayerTable = Data->GetOrAdd(TableName); + + /***/ +} + +FTableAppliedDiff UMyPlayerTable::Update(TArray> InsertsRef, TArray> DeletesRef) +{ + FTableAppliedDiff Diff = BaseUpdate(InsertsRef, DeletesRef, Data, TableName); + + return Diff; +} + +int32 UMyPlayerTable::Count() const +{ + return GetRowCountFromTable(Data, TableName); +} + +TArray UMyPlayerTable::Iter() const +{ + return GetAllRowsFromTable(Data, TableName); +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/NearbyPlayersTable.g.cpp b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/NearbyPlayersTable.g.cpp new file mode 100644 index 00000000000..68afbc2769e --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/NearbyPlayersTable.g.cpp @@ -0,0 +1,35 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#include "ModuleBindings/Tables/NearbyPlayersTable.g.h" +#include "DBCache/UniqueIndex.h" +#include "DBCache/BTreeUniqueIndex.h" +#include "DBCache/ClientCache.h" +#include "DBCache/TableCache.h" + +void UNearbyPlayersTable::PostInitialize() +{ + /** Client cache init and setting up indexes*/ + Data = MakeShared>(); + + TSharedPtr> NearbyPlayersTable = Data->GetOrAdd(TableName); + + /***/ +} + +FTableAppliedDiff UNearbyPlayersTable::Update(TArray> InsertsRef, TArray> DeletesRef) +{ + FTableAppliedDiff Diff = BaseUpdate(InsertsRef, DeletesRef, Data, TableName); + + return Diff; +} + +int32 UNearbyPlayersTable::Count() const +{ + return GetRowCountFromTable(Data, TableName); +} + +TArray UNearbyPlayersTable::Iter() const +{ + return GetAllRowsFromTable(Data, TableName); +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/PlayerLevelTable.g.cpp b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/PlayerLevelTable.g.cpp new file mode 100644 index 00000000000..21c6e688eb0 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/PlayerLevelTable.g.cpp @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#include "ModuleBindings/Tables/PlayerLevelTable.g.h" +#include "DBCache/UniqueIndex.h" +#include "DBCache/BTreeUniqueIndex.h" +#include "DBCache/ClientCache.h" +#include "DBCache/TableCache.h" + +void UPlayerLevelTable::PostInitialize() +{ + /** Client cache init and setting up indexes*/ + Data = MakeShared>(); + + TSharedPtr> PlayerLevelTable = Data->GetOrAdd(TableName); + PlayerLevelTable->AddUniqueConstraint("entity_id", [](const FPlayerLevelType& Row) -> const uint64& { + return Row.EntityId; }); + + EntityId = NewObject(this); + EntityId->SetCache(PlayerLevelTable); + + // Register a new multi-key B-Tree index named "level" on the PlayerLevelTable. + PlayerLevelTable->AddMultiKeyBTreeIndex>( + TEXT("level"), + [](const FPlayerLevelType& Row) + { + // This tuple is stored in the B-Tree index for fast composite key lookups. + return MakeTuple(Row.Level); + } + ); + + Level = NewObject(this); + Level->SetCache(PlayerLevelTable); + + /***/ +} + +FTableAppliedDiff UPlayerLevelTable::Update(TArray> InsertsRef, TArray> DeletesRef) +{ + FTableAppliedDiff Diff = BaseUpdate(InsertsRef, DeletesRef, Data, TableName); + + return Diff; +} + +int32 UPlayerLevelTable::Count() const +{ + return GetRowCountFromTable(Data, TableName); +} + +TArray UPlayerLevelTable::Iter() const +{ + return GetAllRowsFromTable(Data, TableName); +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/PlayerTable.g.cpp b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/PlayerTable.g.cpp new file mode 100644 index 00000000000..87379a7a009 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/PlayerTable.g.cpp @@ -0,0 +1,52 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#include "ModuleBindings/Tables/PlayerTable.g.h" +#include "DBCache/UniqueIndex.h" +#include "DBCache/BTreeUniqueIndex.h" +#include "DBCache/ClientCache.h" +#include "DBCache/TableCache.h" + +void UPlayerTable::PostInitialize() +{ + /** Client cache init and setting up indexes*/ + Data = MakeShared>(); + + TSharedPtr> PlayerTable = Data->GetOrAdd(TableName); + PlayerTable->AddUniqueConstraint("entity_id", [](const FPlayerType& Row) -> const uint64& { + return Row.EntityId; }); + PlayerTable->AddUniqueConstraint("identity", [](const FPlayerType& Row) -> const FSpacetimeDBIdentity& { + return Row.Identity; }); + + EntityId = NewObject(this); + EntityId->SetCache(PlayerTable); + + Identity = NewObject(this); + Identity->SetCache(PlayerTable); + + /***/ +} + +FTableAppliedDiff UPlayerTable::Update(TArray> InsertsRef, TArray> DeletesRef) +{ + FTableAppliedDiff Diff = BaseUpdate(InsertsRef, DeletesRef, Data, TableName); + + Diff.DeriveUpdatesByPrimaryKey( + [](const FPlayerType& Row) + { + return Row.EntityId; + } + ); + + return Diff; +} + +int32 UPlayerTable::Count() const +{ + return GetRowCountFromTable(Data, TableName); +} + +TArray UPlayerTable::Iter() const +{ + return GetAllRowsFromTable(Data, TableName); +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/PlayersAtLevel0Table.g.cpp b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/PlayersAtLevel0Table.g.cpp new file mode 100644 index 00000000000..53d02318a6b --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/ModuleBindings/Tables/PlayersAtLevel0Table.g.cpp @@ -0,0 +1,35 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#include "ModuleBindings/Tables/PlayersAtLevel0Table.g.h" +#include "DBCache/UniqueIndex.h" +#include "DBCache/BTreeUniqueIndex.h" +#include "DBCache/ClientCache.h" +#include "DBCache/TableCache.h" + +void UPlayersAtLevel0Table::PostInitialize() +{ + /** Client cache init and setting up indexes*/ + Data = MakeShared>(); + + TSharedPtr> PlayersAtLevel0Table = Data->GetOrAdd(TableName); + + /***/ +} + +FTableAppliedDiff UPlayersAtLevel0Table::Update(TArray> InsertsRef, TArray> DeletesRef) +{ + FTableAppliedDiff Diff = BaseUpdate(InsertsRef, DeletesRef, Data, TableName); + + return Diff; +} + +int32 UPlayersAtLevel0Table::Count() const +{ + return GetRowCountFromTable(Data, TableName); +} + +TArray UPlayersAtLevel0Table::Iter() const +{ + return GetAllRowsFromTable(Data, TableName); +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/Tests/CommonTestFunctions.cpp b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/Tests/CommonTestFunctions.cpp new file mode 100644 index 00000000000..611e076ce65 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/Tests/CommonTestFunctions.cpp @@ -0,0 +1,188 @@ +#include "Tests/CommonTestFunctions.h" + +void UTestHelperDelegates::HandleConnect(UDbConnection* Conn, FSpacetimeDBIdentity Identity, const FString& Token) +{ + if (OnConnect) + { + OnConnect(Conn, Identity, Token); + } +} + +void UTestHelperDelegates::HandleConnectError(const FString& Error) +{ + if (OnConnectError) + { + OnConnectError(Error); + } +} + +void UTestHelperDelegates::HandleDisconnect(UDbConnection* Conn, const FString& Error) +{ + if (OnDisconnect) + { + OnDisconnect(Conn, Error); + } +} + +void UTestHelperDelegates::HandleSubscriptionApplied(FSubscriptionEventContext Ctx) +{ + if (OnSubscriptionApplied) + { + OnSubscriptionApplied(Ctx); + } +} + +void UTestHelperDelegates::HandleSubscriptionError(FErrorContext Ctx) +{ + if (OnSubscriptionError) + { + OnSubscriptionError(Ctx); + } +} + +UDbConnection* ConnectThen( + TSharedPtr Counter, + const FString& TestName, + TFunction Callback) +{ + FString DbName; + FString DbNameError; + if (!GetDbName(DbName, DbNameError)) + { + return nullptr; + } + + UCredentials::Init(TestName); + + const FString ConnectTestName = FString::Printf(TEXT("on_connect_%s"), *TestName); + Counter->Register(ConnectTestName); + + UTestHelperDelegates* TestHelper = NewObject(); + TestHelper->AddToRoot(); + + TestHelper->OnConnect = [Counter, Callback, ConnectTestName](UDbConnection* Conn, FSpacetimeDBIdentity, const FString&) + { + Callback(Conn); + Counter->MarkSuccess(ConnectTestName); + }; + TestHelper->OnConnectError = [Counter, ConnectTestName](const FString& Error) + { + Counter->MarkFailure(ConnectTestName, FString::Printf(TEXT("Connect error: %s"), *Error)); + }; + TestHelper->OnDisconnect = [Counter, ConnectTestName](UDbConnection*, const FString& Error) + { + Counter->MarkFailure(ConnectTestName, FString::Printf(TEXT("Disconnected: %s"), *Error)); + }; + + FOnConnectDelegate ConnectDelegate; + BIND_DELEGATE_SAFE(ConnectDelegate, TestHelper, UTestHelperDelegates, HandleConnect); + + FOnDisconnectDelegate DisconnectDelegate; + BIND_DELEGATE_SAFE(DisconnectDelegate, TestHelper, UTestHelperDelegates, HandleDisconnect); + + FOnConnectErrorDelegate ErrorDelegate; + BIND_DELEGATE_SAFE(ErrorDelegate, TestHelper, UTestHelperDelegates, HandleConnectError); + + UDbConnection* Conn = UDbConnection::Builder() + ->WithUri(GetServerUrl()) + ->WithDatabaseName(DbName) + ->OnConnect(ConnectDelegate) + ->OnDisconnect(DisconnectDelegate) + ->OnConnectError(ErrorDelegate) + ->Build(); + + if (Conn) + { + Conn->SetAutoTicking(true); + Conn->AddToRoot(); + } + + return Conn; +} + +bool GetDbName(FString& DBName, FString& Error) +{ + const FString DbNameEnv = FPlatformMisc::GetEnvironmentVariable(TEXT("SPACETIME_SDK_TEST_DB_NAME")); + if (!DbNameEnv.IsEmpty()) + { + DBName = DbNameEnv; + return true; + } + + FString CmdValue; + if (FParse::Value(FCommandLine::Get(), TEXT("-SpacetimeDbName="), CmdValue)) + { + DBName = CmdValue; + return true; + } + + Error = TEXT("No DB name. Pass -SpacetimeDbName= or set SPACETIME_SDK_TEST_DB_NAME."); + return false; +} + +FString GetServerUrl() +{ + const FString ServerUrlEnv = FPlatformMisc::GetEnvironmentVariable(TEXT("SPACETIME_SDK_TEST_SERVER_URL")); + if (!ServerUrlEnv.IsEmpty()) + { + return ServerUrlEnv; + } + + FString CmdValue; + if (FParse::Value(FCommandLine::Get(), TEXT("-SpacetimeServerUrl="), CmdValue)) + { + return CmdValue; + } + + return TEXT("localhost:3000"); +} + +bool ValidateParameterConfig(FAutomationTestBase* Test) +{ + FString DbName; + FString DbNameError; + if (!GetDbName(DbName, DbNameError)) + { + Test->AddError(DbNameError); + return false; + } + return true; +} + +bool ReportTestResult(FAutomationTestBase& Test, const FString& TestName, TSharedPtr Counter, bool bTimedOut) +{ + bool bHasFailure = false; + + for (const FString& Msg : Counter->GetFailures()) + { + TESTLOG_FAIL(Test, TEXT("Operation - %s"), *Msg); + bHasFailure = true; + } + for (const FString& Msg : Counter->GetSuccesses()) + { + TESTLOG_SUCCESS(Test, TEXT("Operation - %s"), *Msg); + } + + if (bTimedOut) + { + TESTLOG_FAIL(Test, TEXT("Timed out waiting for operation")); + bHasFailure = true; + } + if (Counter->IsAborted()) + { + TESTLOG_FAIL(Test, TEXT("Test aborted due to precondition failure")); + bHasFailure = true; + } + + if (!bHasFailure) + { + TESTLOG_SUCCESS(Test, TEXT("Test Success")); + Test.TestTrue(*TestName, true); + } + else + { + TESTLOG_FAIL(Test, TEXT("Test failed")); + } + + return !bHasFailure; +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/Tests/SpacetimeFullClientTests.cpp b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/Tests/SpacetimeFullClientTests.cpp new file mode 100644 index 00000000000..aa182d538f1 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/Tests/SpacetimeFullClientTests.cpp @@ -0,0 +1,194 @@ +#include "Tests/SpacetimeFullClientTests.h" + +#include "Tests/CommonTestFunctions.h" +#include "Tests/TestHandler.h" + +#include "ModuleBindings/SpacetimeDBClient.g.h" +#include "ModuleBindings/Tables/PlayersAtLevel0Table.g.h" + +namespace +{ +static FString ToFString(const std::string& InSql) +{ + return FString(UTF8_TO_TCHAR(InSql.c_str())); +} + +class FWaitForTestCounter : public IAutomationLatentCommand +{ +public: + FWaitForTestCounter(FAutomationTestBase& InTest, const FString& InTestName, TSharedPtr InCounter, double InStartTime) + : Test(InTest) + , TestName(InTestName) + , Counter(MoveTemp(InCounter)) + , StartTime(InStartTime) + {} + + virtual bool Update() override + { + const double Timeout = 90.0; + const bool bStopped = Counter->IsAborted() || Counter->IsComplete() || (FPlatformTime::Seconds() - StartTime > Timeout); + const bool bTimedOut = (FPlatformTime::Seconds() - StartTime > Timeout); + + if (bStopped) + { + ReportTestResult(Test, TestName, Counter, bTimedOut); + } + + return bStopped; + } + +private: + FAutomationTestBase& Test; + FString TestName; + TSharedPtr Counter; + double StartTime = 0.0; +}; +} + +bool FViewQueryBuilderDirectSourcesTest::RunTest(const FString& Parameters) +{ + FQueryBuilder Q; + + const FString MyPlayerSql = ToFString(Q.From.MyPlayer().into_sql()); + const FString MyPlayerAndLevelSql = ToFString(Q.From.MyPlayerAndLevel().into_sql()); + const FString PlayersAtLevel0Sql = ToFString(Q.From.PlayersAtLevel0().into_sql()); + const FString NearbyPlayersFilteredSql = ToFString( + Q.From.NearbyPlayers().Where([](const FPlayerLocationCols& Cols) + { + return Cols.Active.Eq(true); + }).into_sql() + ); + + TestEqual(TEXT("my_player sql"), MyPlayerSql, TEXT("SELECT * FROM \"my_player\"")); + TestEqual(TEXT("my_player_and_level sql"), MyPlayerAndLevelSql, TEXT("SELECT * FROM \"my_player_and_level\"")); + TestEqual(TEXT("players_at_level_0 sql"), PlayersAtLevel0Sql, TEXT("SELECT * FROM \"players_at_level_0\"")); + TestEqual( + TEXT("nearby_players filtered sql"), + NearbyPlayersFilteredSql, + TEXT("SELECT * FROM \"nearby_players\" WHERE (\"nearby_players\".\"active\" = TRUE)") + ); + + USubscriptionBuilder* Builder = NewObject(); + Builder->AddQuery([](const FQueryBuilder& Query) + { + return Query.From.MyPlayer(); + })->AddQuery([](const FQueryBuilder& Query) + { + return Query.From.PlayersAtLevel0().Where([](const FPlayersAtLevel0Cols& Cols) + { + return Cols.EntityId.Eq(static_cast(7)); + }); + }); + + TestTrue(TEXT("typed query builder accepted view sources"), true); + return true; +} + +bool FViewSubscribeAllTablesTest::RunTest(const FString& Parameters) +{ + const TArray Sql = FQueryBuilder::AllTablesSqlQueries(); + + TestEqual(TEXT("all tables count"), Sql.Num(), 6); + TestTrue(TEXT("all tables include player"), Sql.Contains(TEXT("SELECT * FROM \"player\""))); + TestTrue(TEXT("all tables include player_level"), Sql.Contains(TEXT("SELECT * FROM \"player_level\""))); + TestTrue(TEXT("all tables include my_player"), Sql.Contains(TEXT("SELECT * FROM \"my_player\""))); + TestTrue(TEXT("all tables include my_player_and_level"), Sql.Contains(TEXT("SELECT * FROM \"my_player_and_level\""))); + TestTrue(TEXT("all tables include nearby_players"), Sql.Contains(TEXT("SELECT * FROM \"nearby_players\""))); + TestTrue(TEXT("all tables include players_at_level_0"), Sql.Contains(TEXT("SELECT * FROM \"players_at_level_0\""))); + + return true; +} + +bool FViewBlueprintQueryBuilderFlowTest::RunTest(const FString& Parameters) +{ + FNearbyPlayersQuery Query = UQueryBuilderBlueprintLibrary::FromNearbyPlayers(); + TestEqual(TEXT("blueprint nearby players base sql"), Query.Sql, TEXT("SELECT * FROM \"nearby_players\"")); + + const FBlueprintPredicate Active = UQueryBuilderBlueprintLibrary::BoolEqual( + UQueryBuilderBlueprintLibrary::NearbyPlayersActive(Query), + true); + const FBlueprintPredicate MinX = UQueryBuilderBlueprintLibrary::Int32GreaterEqual( + UQueryBuilderBlueprintLibrary::NearbyPlayersX(Query), + 0); + Query = UQueryBuilderBlueprintLibrary::NearbyPlayersWhere( + Query, + UQueryBuilderBlueprintLibrary::And(Active, MinX)); + TestEqual( + TEXT("blueprint nearby players filtered sql"), + Query.Sql, + TEXT("SELECT * FROM \"nearby_players\" WHERE ((\"nearby_players\".\"active\" = TRUE) AND (\"nearby_players\".\"x\" >= 0))") + ); + + USubscriptionBuilder* Builder = NewObject(); + USubscriptionHandle* Handle = Builder->AddNearbyPlayersQuery(Query)->Subscribe(); + TestNotNull(TEXT("blueprint nearby players handle"), Handle); + TestEqual(TEXT("blueprint nearby players builder sql count"), Handle->GetQuerySqls().Num(), 1); + TestEqual(TEXT("blueprint nearby players builder sql"), Handle->GetQuerySqls()[0], Query.Sql); + + return true; +} + +bool FViewBlueprintQueryBuilderRuntimeTest::RunTest(const FString& Parameters) +{ + const FString RuntimeTestName = TEXT("ViewBlueprintQueryBuilderRuntime"); + + if (!ValidateParameterConfig(this)) + { + return false; + } + + UViewBlueprintRuntimeHandler* Handler = CreateTestHandler(); + Handler->Counter->Register(TEXT("subscription_applied")); + Handler->Counter->Register(TEXT("players_at_level_0_insert")); + + ConnectThen(Handler->Counter, RuntimeTestName, [this, Handler](UDbConnection* Conn) + { + Conn->Db->PlayersAtLevel0->OnInsert.AddDynamic(Handler, &UViewBlueprintRuntimeHandler::OnPlayersAtLevel0Insert); + Conn->Db->PlayersAtLevel0->OnUpdate.AddDynamic(Handler, &UViewBlueprintRuntimeHandler::OnPlayersAtLevel0Update); + Conn->Db->PlayersAtLevel0->OnDelete.AddDynamic(Handler, &UViewBlueprintRuntimeHandler::OnPlayersAtLevel0Delete); + + UTestHelperDelegates* SubHelper = NewObject(); + SubHelper->AddToRoot(); + + SubHelper->OnSubscriptionApplied = [this, Handler, Conn](FSubscriptionEventContext Ctx) + { + if (Conn->Db->PlayersAtLevel0->Count() != 0) + { + Handler->Counter->MarkFailure(TEXT("subscription_applied"), TEXT("Expected empty players_at_level_0 cache before reducers")); + Handler->Counter->Abort(); + return; + } + + Handler->Counter->MarkSuccess(TEXT("subscription_applied")); + Ctx.Reducers->InsertPlayer(Handler->ExpectedIdentity, static_cast(0)); + }; + + SubHelper->OnSubscriptionError = [Handler](FErrorContext Ctx) + { + Handler->Counter->MarkFailure(TEXT("subscription_applied"), FString::Printf(TEXT("Subscription error: %s"), *Ctx.Error)); + Handler->Counter->Abort(); + }; + + FOnSubscriptionApplied AppliedDelegate; + BIND_DELEGATE_SAFE(AppliedDelegate, SubHelper, UTestHelperDelegates, HandleSubscriptionApplied); + + FOnSubscriptionError ErrorDelegate; + BIND_DELEGATE_SAFE(ErrorDelegate, SubHelper, UTestHelperDelegates, HandleSubscriptionError); + + FPlayersAtLevel0Query Query = UQueryBuilderBlueprintLibrary::FromPlayersAtLevel0(); + Query = UQueryBuilderBlueprintLibrary::PlayersAtLevel0Where( + Query, + UQueryBuilderBlueprintLibrary::IdentityEqual( + UQueryBuilderBlueprintLibrary::PlayersAtLevel0Identity(Query), + Handler->ExpectedIdentity)); + + Conn->SubscriptionBuilder() + ->OnApplied(AppliedDelegate) + ->OnError(ErrorDelegate) + ->AddPlayersAtLevel0Query(Query) + ->Subscribe(); + }); + + ADD_LATENT_AUTOMATION_COMMAND(FWaitForTestCounter(*this, RuntimeTestName, Handler->Counter, FPlatformTime::Seconds())); + return true; +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/Tests/TestCounter.cpp b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/Tests/TestCounter.cpp new file mode 100644 index 00000000000..332e61064b2 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/Tests/TestCounter.cpp @@ -0,0 +1,87 @@ +#include "Tests/TestCounter.h" + +void FTestCounter::Register(const FString& TestName) +{ + FScopeLock Lock(&Mutex); + if (Registered.Contains(TestName)) + { + UE_LOG(LogTemp, Error, TEXT("Duplicate test name: %s"), *TestName); + } + Registered.Add(TestName); +} + +void FTestCounter::MarkSuccess(const FString& TestName) +{ + FScopeLock Lock(&Mutex); + Outcomes.Add(TestName, { true, FString() }); + UE_LOG(LogTemp, Log, TEXT("Operation success: %s"), *TestName); +} + +void FTestCounter::MarkFailure(const FString& TestName, const FString& Error) +{ + FScopeLock Lock(&Mutex); + Outcomes.Add(TestName, { false, Error }); + UE_LOG(LogTemp, Error, TEXT("Operation failed: %s, %s"), *TestName, *Error); +} + +bool FTestCounter::IsComplete() const +{ + FScopeLock Lock(&Mutex); + return Outcomes.Num() == Registered.Num(); +} + +bool FTestCounter::AllSucceeded() const +{ + FScopeLock Lock(&Mutex); + if (Outcomes.Num() != Registered.Num()) + { + return false; + } + for (const auto& Elem : Outcomes) + { + if (!Elem.Value.bSuccess) + { + return false; + } + } + return true; +} + +TArray FTestCounter::GetFailures() const +{ + FScopeLock Lock(&Mutex); + TArray Failures; + for (const FString& Name : Registered) + { + const FTestOutcome* Outcome = Outcomes.Find(Name); + if (!Outcome) + { + Failures.Add(FString::Printf(TEXT("TIMEOUT: %s"), *Name)); + } + else if (!Outcome->bSuccess) + { + Failures.Add(FString::Printf(TEXT("FAILED: %s: %s"), *Name, *Outcome->Error)); + } + } + return Failures; +} + +TArray FTestCounter::GetSuccesses() const +{ + FScopeLock Lock(&Mutex); + TArray Successes; + for (const FString& Name : Registered) + { + const FTestOutcome* Outcome = Outcomes.Find(Name); + if (Outcome && Outcome->bSuccess) + { + Successes.Add(FString::Printf(TEXT("SUCCESS: %s"), *Name)); + } + } + return Successes; +} + +void FTestCounter::Abort() +{ + bAborted = true; +} \ No newline at end of file diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/Tests/TestHandler.cpp b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/Tests/TestHandler.cpp new file mode 100644 index 00000000000..d1b8da42646 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Private/Tests/TestHandler.cpp @@ -0,0 +1,25 @@ +#include "Tests/TestHandler.h" + +void UViewBlueprintRuntimeHandler::OnPlayersAtLevel0Insert(const FEventContext&, const FPlayerType& Value) +{ + if (Value.Identity != ExpectedIdentity) + { + Counter->MarkFailure(TEXT("players_at_level_0_insert"), FString::Printf(TEXT("Unexpected identity %s"), *Value.Identity.ToHex())); + Counter->Abort(); + return; + } + + Counter->MarkSuccess(TEXT("players_at_level_0_insert")); +} + +void UViewBlueprintRuntimeHandler::OnPlayersAtLevel0Update(const FEventContext&, const FPlayerType&, const FPlayerType&) +{ + Counter->MarkFailure(TEXT("players_at_level_0_insert"), TEXT("Unexpected update for players_at_level_0")); + Counter->Abort(); +} + +void UViewBlueprintRuntimeHandler::OnPlayersAtLevel0Delete(const FEventContext&, const FPlayerType&) +{ + Counter->MarkFailure(TEXT("players_at_level_0_insert"), TEXT("Unexpected delete for players_at_level_0")); + Counter->Abort(); +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/ReducerBase.g.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/ReducerBase.g.h new file mode 100644 index 00000000000..52b29de10e6 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/ReducerBase.g.h @@ -0,0 +1,18 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ReducerBase.g.generated.h" + +// Abstract Reducer base class +UCLASS(Abstract, BlueprintType) +class TESTVIEWCLIENT_API UReducerBase : public UObject +{ + GENERATED_BODY() + +public: + virtual ~UReducerBase() = default; +}; + diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Reducers/DeletePlayer.g.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Reducers/DeletePlayer.g.h new file mode 100644 index 00000000000..3733a35c41d --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Reducers/DeletePlayer.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "DeletePlayer.g.generated.h" + +// Reducer arguments struct for DeletePlayer +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FDeletePlayerArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBIdentity Identity; + + FDeletePlayerArgs() = default; + + FDeletePlayerArgs(const FSpacetimeDBIdentity& InIdentity) + : Identity(InIdentity) + {} + + + FORCEINLINE bool operator==(const FDeletePlayerArgs& Other) const + { + return Identity == Other.Identity; + } + FORCEINLINE bool operator!=(const FDeletePlayerArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FDeletePlayerArgs, Identity); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API UDeletePlayerReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBIdentity Identity; + +}; + + diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Reducers/InsertPlayer.g.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Reducers/InsertPlayer.g.h new file mode 100644 index 00000000000..c3d0f454fc6 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Reducers/InsertPlayer.g.h @@ -0,0 +1,59 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "Types/Builtins.h" +#include "InsertPlayer.g.generated.h" + +// Reducer arguments struct for InsertPlayer +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FInsertPlayerArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBIdentity Identity; + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 Level = 0; + + FInsertPlayerArgs() = default; + + FInsertPlayerArgs(const FSpacetimeDBIdentity& InIdentity, const uint64& InLevel) + : Identity(InIdentity), Level(InLevel) + {} + + + FORCEINLINE bool operator==(const FInsertPlayerArgs& Other) const + { + return Identity == Other.Identity && Level == Other.Level; + } + FORCEINLINE bool operator!=(const FInsertPlayerArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FInsertPlayerArgs, Identity, Level); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API UInsertPlayerReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FSpacetimeDBIdentity Identity; + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 Level = 0; + +}; + + diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Reducers/MovePlayer.g.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Reducers/MovePlayer.g.h new file mode 100644 index 00000000000..bf6197a9566 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Reducers/MovePlayer.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "MovePlayer.g.generated.h" + +// Reducer arguments struct for MovePlayer +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FMovePlayerArgs +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Dx = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + int32 Dy = 0; + + FMovePlayerArgs() = default; + + FMovePlayerArgs(const int32& InDx, const int32& InDy) + : Dx(InDx), Dy(InDy) + {} + + + FORCEINLINE bool operator==(const FMovePlayerArgs& Other) const + { + return Dx == Other.Dx && Dy == Other.Dy; + } + FORCEINLINE bool operator!=(const FMovePlayerArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FMovePlayerArgs, Dx, Dy); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API UMovePlayerReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Dx = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + int32 Dy = 0; + +}; + + diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/SpacetimeDBClient.g.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/SpacetimeDBClient.g.h new file mode 100644 index 00000000000..76bb4d2d951 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/SpacetimeDBClient.g.h @@ -0,0 +1,1972 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +// This was generated using spacetimedb cli version 2.6.0 (commit d8a2be99ffd985b539bf111ec0214639e2b81e41). + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Connection/Callback.h" +#include "Connection/DbConnectionBase.h" +#include "Connection/DbConnectionBuilder.h" +#include "Connection/Subscription.h" +#include "Kismet/BlueprintFunctionLibrary.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Reducers/DeletePlayer.g.h" +#include "ModuleBindings/Reducers/InsertPlayer.g.h" +#include "ModuleBindings/Reducers/MovePlayer.g.h" +#include "ModuleBindings/Types/PlayerAndLevelType.g.h" +#include "ModuleBindings/Types/PlayerLevelType.g.h" +#include "ModuleBindings/Types/PlayerLocationType.g.h" +#include "ModuleBindings/Types/PlayerType.g.h" +#include "QueryBuilder/query_builder.h" +#include "Types/Builtins.h" +#include "SpacetimeDBClient.g.generated.h" + +// Forward declarations +class UDbConnection; +class URemoteTables; +class URemoteReducers; +class URemoteProcedures; +class USubscriptionBuilder; +class USubscriptionHandle; + +/** Forward declaration for tables */ +class UMyPlayerTable; +class UMyPlayerAndLevelTable; +class UNearbyPlayersTable; +class UPlayerTable; +class UPlayerLevelTable; +class UPlayersAtLevel0Table; +/***/ + +// Delegates using the generated connection type. These wrap the base +// delegates defined in the SDK so that projects can work directly with +// UDbConnection without manual casting in user code. +DECLARE_DYNAMIC_DELEGATE_ThreeParams( + FOnConnectDelegate, + UDbConnection*, Connection, + FSpacetimeDBIdentity, Identity, + const FString&, Token); + +DECLARE_DYNAMIC_DELEGATE_TwoParams( + FOnDisconnectDelegate, + UDbConnection*, Connection, + const FString&, Error); + + +// Context classes for event handling + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FContextBase +{ + GENERATED_BODY() + + FContextBase() : Db(nullptr), Reducers(nullptr), Procedures(nullptr), Conn(nullptr) {}; + FContextBase(UDbConnection* InConn); + + UPROPERTY(BlueprintReadOnly, Category = "SpacetimeDB") + URemoteTables* Db; + + UPROPERTY(BlueprintReadOnly, Category = "SpacetimeDB") + URemoteReducers* Reducers; + + UPROPERTY(BlueprintReadOnly, Category = "SpacetimeDB") + URemoteProcedures* Procedures; + + bool IsActive() const; + void Disconnect(); + bool TryGetIdentity(FSpacetimeDBIdentity& OutIdentity) const; + FSpacetimeDBConnectionId GetConnectionId() const; + USubscriptionBuilder* SubscriptionBuilder(); + +protected: + UPROPERTY() + UDbConnection* Conn; + +}; + +UCLASS() +class TESTVIEWCLIENT_API UContextBaseBpLib : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +private: + UFUNCTION(BlueprintPure, Category="SpacetimeDB") + static URemoteTables* GetDb(const FContextBase& Ctx) { return Ctx.Db; } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB") + static URemoteReducers* GetReducers(const FContextBase& Ctx) { return Ctx.Reducers; } + + static URemoteProcedures* GetProcedures(const FContextBase& Ctx) { return Ctx.Procedures; } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB") + static bool IsActive(const FContextBase& Ctx) { return Ctx.IsActive(); } +}; + +UENUM(BlueprintType, Category = "SpacetimeDB") +enum class EReducerTag : uint8 +{ + DeletePlayer, + InsertPlayer, + MovePlayer +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FReducer +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category = "SpacetimeDB") + EReducerTag Tag = static_cast(0); + + TVariant Data; + + // Optional metadata + UPROPERTY(BlueprintReadOnly, Category = "SpacetimeDB") + FString ReducerName; + uint32 ReducerId = 0; + uint32 RequestId = 0; + + static FReducer DeletePlayer(const FDeletePlayerArgs& Value) + { + FReducer Out; + Out.Tag = EReducerTag::DeletePlayer; + Out.Data.Set(Value); + Out.ReducerName = TEXT("delete_player"); + return Out; + } + + FORCEINLINE bool IsDeletePlayer() const { return Tag == EReducerTag::DeletePlayer; } + FORCEINLINE FDeletePlayerArgs GetAsDeletePlayer() const + { + ensureMsgf(IsDeletePlayer(), TEXT("Reducer does not hold DeletePlayer!")); + return Data.Get(); + } + + static FReducer InsertPlayer(const FInsertPlayerArgs& Value) + { + FReducer Out; + Out.Tag = EReducerTag::InsertPlayer; + Out.Data.Set(Value); + Out.ReducerName = TEXT("insert_player"); + return Out; + } + + FORCEINLINE bool IsInsertPlayer() const { return Tag == EReducerTag::InsertPlayer; } + FORCEINLINE FInsertPlayerArgs GetAsInsertPlayer() const + { + ensureMsgf(IsInsertPlayer(), TEXT("Reducer does not hold InsertPlayer!")); + return Data.Get(); + } + + static FReducer MovePlayer(const FMovePlayerArgs& Value) + { + FReducer Out; + Out.Tag = EReducerTag::MovePlayer; + Out.Data.Set(Value); + Out.ReducerName = TEXT("move_player"); + return Out; + } + + FORCEINLINE bool IsMovePlayer() const { return Tag == EReducerTag::MovePlayer; } + FORCEINLINE FMovePlayerArgs GetAsMovePlayer() const + { + ensureMsgf(IsMovePlayer(), TEXT("Reducer does not hold MovePlayer!")); + return Data.Get(); + } + + FORCEINLINE bool operator==(const FReducer& Other) const + { + if (Tag != Other.Tag || ReducerId != Other.ReducerId || RequestId != Other.RequestId || ReducerName != Other.ReducerName) return false; + switch (Tag) + { + case EReducerTag::DeletePlayer: + return GetAsDeletePlayer() == Other.GetAsDeletePlayer(); + case EReducerTag::InsertPlayer: + return GetAsInsertPlayer() == Other.GetAsInsertPlayer(); + case EReducerTag::MovePlayer: + return GetAsMovePlayer() == Other.GetAsMovePlayer(); + default: return false; + } + } + FORCEINLINE bool operator!=(const FReducer& Other) const { return !(*this == Other); } +}; + +UCLASS() +class TESTVIEWCLIENT_API UReducerBpLib : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +private: + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer DeletePlayer(const FDeletePlayerArgs& Value) { + return FReducer::DeletePlayer(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsDeletePlayer(const FReducer& Reducer) { return Reducer.IsDeletePlayer(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FDeletePlayerArgs GetAsDeletePlayer(const FReducer& Reducer) { + return Reducer.GetAsDeletePlayer(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertPlayer(const FInsertPlayerArgs& Value) { + return FReducer::InsertPlayer(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertPlayer(const FReducer& Reducer) { return Reducer.IsInsertPlayer(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertPlayerArgs GetAsInsertPlayer(const FReducer& Reducer) { + return Reducer.GetAsInsertPlayer(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer MovePlayer(const FMovePlayerArgs& Value) { + return FReducer::MovePlayer(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsMovePlayer(const FReducer& Reducer) { return Reducer.IsMovePlayer(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FMovePlayerArgs GetAsMovePlayer(const FReducer& Reducer) { + return Reducer.GetAsMovePlayer(); + } +}; + +/** Metadata describing a reducer run. */ +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FTestViewClientReducerEvent +{ + GENERATED_BODY() + + /** Timestamp for when the reducer executed */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBTimestamp Timestamp; + + /** Result status of the reducer */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBStatus Status; + + /** Identity that initiated the call */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBIdentity CallerIdentity; + + /** Connection ID for the caller */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBConnectionId CallerConnectionId; + + /** Energy consumed while executing */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FEnergyQuantaType EnergyConsumed; + + /** Detailed call information */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FReducer Reducer; + + FORCEINLINE bool operator==(const FTestViewClientReducerEvent& Other) const + { + return Status == Other.Status && Timestamp == Other.Timestamp && CallerIdentity == Other.CallerIdentity && + CallerConnectionId == Other.CallerConnectionId && EnergyConsumed == Other.EnergyConsumed && + Reducer == Other.Reducer; + } + + FORCEINLINE bool operator!=(const FTestViewClientReducerEvent& Other) const + { + return !(*this == Other); + } +}; + +// No procedures defined in this module. +/** Metadata describing a procedure run. */ +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FTestViewClientProcedureEvent +{ + GENERATED_BODY() + + /** Timestamp for when the procedure executed */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBTimestamp Timestamp; + + /** Result status of the procedure */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBProcedureStatus Status; + + /** Identity that initiated the call */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBTimeDuration TotalHostExecutionDuration; + + FTestViewClientProcedureEvent() { + } + FTestViewClientProcedureEvent(FProcedureEvent Event) { + Timestamp = Event.Timestamp; + Status = FSpacetimeDBProcedureStatus::FromStatus(Event.Status); + TotalHostExecutionDuration = Event.TotalHostExecutionDuration; + } + FORCEINLINE bool operator==(const FTestViewClientProcedureEvent& Other) const + { + return Status == Other.Status && Timestamp == Other.Timestamp && + TotalHostExecutionDuration == Other.TotalHostExecutionDuration; + } + + FORCEINLINE bool operator!=(const FTestViewClientProcedureEvent& Other) const + { + return !(*this == Other); + } +}; + +/** Represents event with variant message data. */ +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FTestViewClientEvent +{ + GENERATED_BODY() + + /** Tagged union holding reducer call, unit events, or error string */ + TVariant MessageData; + + /** Type tag indicating what this event represents */ + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + ESpacetimeDBEventTag Tag = ESpacetimeDBEventTag::UnknownTransaction; + + /** === Static factory methods ===*/ + static FTestViewClientEvent Reducer(const FReducer& Value) + { + FTestViewClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::Reducer; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestViewClientEvent SubscribeApplied(const FSpacetimeDBUnit& Value) + { + FTestViewClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::SubscribeApplied; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestViewClientEvent UnsubscribeApplied(const FSpacetimeDBUnit& Value) + { + FTestViewClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::UnsubscribeApplied; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestViewClientEvent Disconnected(const FSpacetimeDBUnit& Value) + { + FTestViewClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::Disconnected; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestViewClientEvent Transaction(const FSpacetimeDBUnit& Value) + { + FTestViewClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::Transaction; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestViewClientEvent SubscribeError(const FString& Value) + { + FTestViewClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::SubscribeError; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestViewClientEvent UnknownTransaction(const FSpacetimeDBUnit& Value) + { + FTestViewClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::UnknownTransaction; + Obj.MessageData.Set(Value); + return Obj; + } + + FORCEINLINE bool IsReducer() const { return Tag == ESpacetimeDBEventTag::Reducer; } + FORCEINLINE FReducer GetAsReducer() const + { + ensureMsgf(IsReducer(), TEXT("MessageData does not hold Reducer!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsSubscribeApplied() const { return Tag == ESpacetimeDBEventTag::SubscribeApplied; } + FORCEINLINE FSpacetimeDBUnit GetAsSubscribeApplied() const + { + ensureMsgf(IsSubscribeApplied(), TEXT("MessageData does not hold SubscribeApplied!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsUnsubscribeApplied() const { return Tag == ESpacetimeDBEventTag::UnsubscribeApplied; } + FORCEINLINE FSpacetimeDBUnit GetAsUnsubscribeApplied() const + { + ensureMsgf(IsUnsubscribeApplied(), TEXT("MessageData does not hold UnsubscribeApplied!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsDisconnected() const { return Tag == ESpacetimeDBEventTag::Disconnected; } + FORCEINLINE FSpacetimeDBUnit GetAsDisconnected() const + { + ensureMsgf(IsDisconnected(), TEXT("MessageData does not hold Disconnected!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsTransaction() const { return Tag == ESpacetimeDBEventTag::Transaction; } + FORCEINLINE FSpacetimeDBUnit GetAsTransaction() const + { + ensureMsgf(IsTransaction(), TEXT("MessageData does not hold Transaction!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsSubscribeError() const { return Tag == ESpacetimeDBEventTag::SubscribeError; } + FORCEINLINE FString GetAsSubscribeError() const + { + ensureMsgf(IsSubscribeError(), TEXT("MessageData does not hold SubscribeError!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsUnknownTransaction() const { return Tag == ESpacetimeDBEventTag::UnknownTransaction; } + FORCEINLINE FSpacetimeDBUnit GetAsUnknownTransaction() const + { + ensureMsgf(IsUnknownTransaction(), TEXT("MessageData does not hold UnknownTransaction!")); + return MessageData.Get(); + } + + FORCEINLINE bool operator==(const FTestViewClientEvent& Other) const + { + if (Tag != Other.Tag) return false; + switch (Tag) + { + case ESpacetimeDBEventTag::Reducer: return GetAsReducer() == Other.GetAsReducer(); + case ESpacetimeDBEventTag::SubscribeApplied: return GetAsSubscribeApplied() == Other.GetAsSubscribeApplied(); + case ESpacetimeDBEventTag::UnsubscribeApplied: return GetAsUnsubscribeApplied() == Other.GetAsUnsubscribeApplied(); + case ESpacetimeDBEventTag::Disconnected: return GetAsDisconnected() == Other.GetAsDisconnected(); + case ESpacetimeDBEventTag::Transaction: return GetAsTransaction() == Other.GetAsTransaction(); + case ESpacetimeDBEventTag::SubscribeError: return GetAsSubscribeError() == Other.GetAsSubscribeError(); + case ESpacetimeDBEventTag::UnknownTransaction: return GetAsUnknownTransaction() == Other.GetAsUnknownTransaction(); + default: return false; + } + } + + FORCEINLINE bool operator!=(const FTestViewClientEvent& Other) const + { + return !(*this == Other); + } +}; + +UCLASS() +class TESTVIEWCLIENT_API UTestViewClientEventBpLib : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +private: + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestViewClientEvent") + static FTestViewClientEvent Reducer(const FReducer& InValue) + { + return FTestViewClientEvent::Reducer(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestViewClientEvent") + static FTestViewClientEvent SubscribeApplied(const FSpacetimeDBUnit& InValue) + { + return FTestViewClientEvent::SubscribeApplied(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestViewClientEvent") + static FTestViewClientEvent UnsubscribeApplied(const FSpacetimeDBUnit& InValue) + { + return FTestViewClientEvent::UnsubscribeApplied(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestViewClientEvent") + static FTestViewClientEvent Disconnected(const FSpacetimeDBUnit& InValue) + { + return FTestViewClientEvent::Disconnected(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestViewClientEvent") + static FTestViewClientEvent Transaction(const FSpacetimeDBUnit& InValue) + { + return FTestViewClientEvent::Transaction(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestViewClientEvent") + static FTestViewClientEvent SubscribeError(const FString& InValue) + { + return FTestViewClientEvent::SubscribeError(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestViewClientEvent") + static FTestViewClientEvent UnknownTransaction(const FSpacetimeDBUnit& InValue) + { + return FTestViewClientEvent::UnknownTransaction(InValue); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewClientEvent") + static bool IsReducer(const FTestViewClientEvent& Event) { return Event.IsReducer(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewClientEvent") + static bool IsSubscribeApplied(const FTestViewClientEvent& Event) { return Event.IsSubscribeApplied(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewClientEvent") + static bool IsUnsubscribeApplied(const FTestViewClientEvent& Event) { return Event.IsUnsubscribeApplied(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewClientEvent") + static bool IsDisconnected(const FTestViewClientEvent& Event) { return Event.IsDisconnected(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewClientEvent") + static bool IsTransaction(const FTestViewClientEvent& Event) { return Event.IsTransaction(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewClientEvent") + static bool IsSubscribeError(const FTestViewClientEvent& Event) { return Event.IsSubscribeError(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewClientEvent") + static bool IsUnknownTransaction(const FTestViewClientEvent& Event) { return Event.IsUnknownTransaction(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewClientEvent") + static FReducer GetAsReducer(const FTestViewClientEvent& Event) + { + return Event.GetAsReducer(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewClientEvent") + static FSpacetimeDBUnit GetAsSubscribeApplied(const FTestViewClientEvent& Event) + { + return Event.GetAsSubscribeApplied(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewClientEvent") + static FSpacetimeDBUnit GetAsUnsubscribeApplied(const FTestViewClientEvent& Event) + { + return Event.GetAsUnsubscribeApplied(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewClientEvent") + static FSpacetimeDBUnit GetAsDisconnected(const FTestViewClientEvent& Event) + { + return Event.GetAsDisconnected(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewClientEvent") + static FSpacetimeDBUnit GetAsTransaction(const FTestViewClientEvent& Event) + { + return Event.GetAsTransaction(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewClientEvent") + static FString GetAsSubscribeError(const FTestViewClientEvent& Event) + { + return Event.GetAsSubscribeError(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewClientEvent") + static FSpacetimeDBUnit GetAsUnknownTransaction(const FTestViewClientEvent& Event) + { + return Event.GetAsUnknownTransaction(); + } + +}; + + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FEventContext : public FContextBase +{ + GENERATED_BODY() + + FEventContext() = default; + FEventContext(UDbConnection* InConn, const FTestViewClientEvent& InEvent) : FContextBase(InConn), Event(InEvent) {} + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestViewClientEvent Event; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FReducerEventContext : public FContextBase +{ + GENERATED_BODY() + + FReducerEventContext() = default; + FReducerEventContext(UDbConnection* InConn, FTestViewClientReducerEvent InEvent) : FContextBase(InConn), Event(InEvent) {} + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestViewClientReducerEvent Event; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FProcedureEventContext : public FContextBase +{ + GENERATED_BODY() + + FProcedureEventContext() = default; + FProcedureEventContext(UDbConnection* InConn, FTestViewClientProcedureEvent InEvent) : FContextBase(InConn), Event(InEvent) {} + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestViewClientProcedureEvent Event; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FErrorContext : public FContextBase +{ + GENERATED_BODY() + + FErrorContext() = default; + FErrorContext(UDbConnection* InConn, const FString& InError) : FContextBase(InConn), Error(InError) {} + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FString Error; + +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FSubscriptionEventContext : public FContextBase +{ + GENERATED_BODY() + + FSubscriptionEventContext() = default; + FSubscriptionEventContext(UDbConnection* InConn) : FContextBase(InConn) {} + +}; + +DECLARE_DYNAMIC_DELEGATE_OneParam( + FOnSubscriptionApplied, + FSubscriptionEventContext, Context); + +DECLARE_DYNAMIC_DELEGATE_OneParam( + FOnSubscriptionError, + FErrorContext, Context); + +// RemoteTables class +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API URemoteTables : public UObject +{ + GENERATED_BODY() + +public: + void Initialize(); + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UMyPlayerTable* MyPlayer; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UMyPlayerAndLevelTable* MyPlayerAndLevel; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UNearbyPlayersTable* NearbyPlayers; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPlayerTable* Player; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPlayerLevelTable* PlayerLevel; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UPlayersAtLevel0Table* PlayersAtLevel0; + +}; + +// RemoteReducers class +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API URemoteReducers : public UObject +{ + GENERATED_BODY() + +public: + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FDeletePlayerHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBIdentity&, Identity + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FDeletePlayerHandler OnDeletePlayer; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void DeletePlayer(const FSpacetimeDBIdentity& Identity); + + bool InvokeDeletePlayer(const FReducerEventContext& Context, const UDeletePlayerReducer* Args); + bool InvokeDeletePlayerWithArgs(const FReducerEventContext& Context, const FDeletePlayerArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertPlayerHandler, + const FReducerEventContext&, Context, + const FSpacetimeDBIdentity&, Identity, + uint64, Level + ); + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FInsertPlayerHandler OnInsertPlayer; + + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + void InsertPlayer(const FSpacetimeDBIdentity& Identity, const uint64 Level); + + bool InvokeInsertPlayer(const FReducerEventContext& Context, const UInsertPlayerReducer* Args); + bool InvokeInsertPlayerWithArgs(const FReducerEventContext& Context, const FInsertPlayerArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FMovePlayerHandler, + const FReducerEventContext&, Context, + int32, Dx, + int32, Dy + ); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FMovePlayerHandler OnMovePlayer; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + void MovePlayer(const int32 Dx, const int32 Dy); + + bool InvokeMovePlayer(const FReducerEventContext& Context, const UMovePlayerReducer* Args); + bool InvokeMovePlayerWithArgs(const FReducerEventContext& Context, const FMovePlayerArgs& Args); + + // Internal error handling + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FInternalOnUnhandledReducerError, const FReducerEventContext&, Context, const FString&, Error); + FInternalOnUnhandledReducerError InternalOnUnhandledReducerError; + +private: + + friend UDbConnection; + + UPROPERTY() + class UDbConnection* Conn; +}; + +// RemoteProcedures class +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API URemoteProcedures : public UObject +{ + GENERATED_BODY() + +public: + + // Internal error handling + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FInternalOnUnhandledProcedureError, const FProcedureEventContext&, Context, const FString&, Error); + FInternalOnUnhandledProcedureError InternalOnUnhandledProcedureError; + +private: + + friend UDbConnection; + + UPROPERTY() + class UDbConnection* Conn; +}; + +// QueryBuilder types +struct TESTVIEWCLIENT_API FMyPlayerCols; +struct TESTVIEWCLIENT_API FMyPlayerIxCols; +struct TESTVIEWCLIENT_API FPlayerAndLevelCols; +struct TESTVIEWCLIENT_API FPlayerAndLevelIxCols; +struct TESTVIEWCLIENT_API FPlayerLocationCols; +struct TESTVIEWCLIENT_API FPlayerLocationIxCols; +struct TESTVIEWCLIENT_API FPlayerCols; +struct TESTVIEWCLIENT_API FPlayerIxCols; +struct TESTVIEWCLIENT_API FPlayerLevelCols; +struct TESTVIEWCLIENT_API FPlayerLevelIxCols; +struct TESTVIEWCLIENT_API FPlayersAtLevel0Cols; +struct TESTVIEWCLIENT_API FPlayersAtLevel0IxCols; + +struct TESTVIEWCLIENT_API FMyPlayerCols +{ + explicit FMyPlayerCols(const char* TableName) + : EntityId(TableName, "entity_id"), Identity(TableName, "identity") {} + + ::SpacetimeDB::query_builder::Col EntityId; + ::SpacetimeDB::query_builder::Col Identity; +}; + +struct TESTVIEWCLIENT_API FMyPlayerIxCols +{ + explicit FMyPlayerIxCols(const char* TableName) + {} + +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTVIEWCLIENT_API FPlayerAndLevelCols +{ + explicit FPlayerAndLevelCols(const char* TableName) + : EntityId(TableName, "entity_id"), Identity(TableName, "identity"), Level(TableName, "level") {} + + ::SpacetimeDB::query_builder::Col EntityId; + ::SpacetimeDB::query_builder::Col Identity; + ::SpacetimeDB::query_builder::Col Level; +}; + +struct TESTVIEWCLIENT_API FPlayerAndLevelIxCols +{ + explicit FPlayerAndLevelIxCols(const char* TableName) + {} + +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTVIEWCLIENT_API FPlayerLocationCols +{ + explicit FPlayerLocationCols(const char* TableName) + : EntityId(TableName, "entity_id"), Active(TableName, "active"), X(TableName, "x"), Y(TableName, "y") {} + + ::SpacetimeDB::query_builder::Col EntityId; + ::SpacetimeDB::query_builder::Col Active; + ::SpacetimeDB::query_builder::Col X; + ::SpacetimeDB::query_builder::Col Y; +}; + +struct TESTVIEWCLIENT_API FPlayerLocationIxCols +{ + explicit FPlayerLocationIxCols(const char* TableName) + {} + +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTVIEWCLIENT_API FPlayerCols +{ + explicit FPlayerCols(const char* TableName) + : EntityId(TableName, "entity_id"), Identity(TableName, "identity") {} + + ::SpacetimeDB::query_builder::Col EntityId; + ::SpacetimeDB::query_builder::Col Identity; +}; + +struct TESTVIEWCLIENT_API FPlayerIxCols +{ + explicit FPlayerIxCols(const char* TableName) + : EntityId(TableName, "entity_id"), Identity(TableName, "identity") {} + + ::SpacetimeDB::query_builder::IxCol EntityId; + ::SpacetimeDB::query_builder::IxCol Identity; +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTVIEWCLIENT_API FPlayerLevelCols +{ + explicit FPlayerLevelCols(const char* TableName) + : EntityId(TableName, "entity_id"), Level(TableName, "level") {} + + ::SpacetimeDB::query_builder::Col EntityId; + ::SpacetimeDB::query_builder::Col Level; +}; + +struct TESTVIEWCLIENT_API FPlayerLevelIxCols +{ + explicit FPlayerLevelIxCols(const char* TableName) + : EntityId(TableName, "entity_id"), Level(TableName, "level") {} + + ::SpacetimeDB::query_builder::IxCol EntityId; + ::SpacetimeDB::query_builder::IxCol Level; +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTVIEWCLIENT_API FPlayersAtLevel0Cols +{ + explicit FPlayersAtLevel0Cols(const char* TableName) + : EntityId(TableName, "entity_id"), Identity(TableName, "identity") {} + + ::SpacetimeDB::query_builder::Col EntityId; + ::SpacetimeDB::query_builder::Col Identity; +}; + +struct TESTVIEWCLIENT_API FPlayersAtLevel0IxCols +{ + explicit FPlayersAtLevel0IxCols(const char* TableName) + {} + +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTVIEWCLIENT_API FFrom +{ + [[nodiscard]] ::SpacetimeDB::query_builder::Table MyPlayer() const { return ::SpacetimeDB::query_builder::Table("my_player", FMyPlayerCols("my_player"), FMyPlayerIxCols("my_player")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table MyPlayerAndLevel() const { return ::SpacetimeDB::query_builder::Table("my_player_and_level", FPlayerAndLevelCols("my_player_and_level"), FPlayerAndLevelIxCols("my_player_and_level")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table NearbyPlayers() const { return ::SpacetimeDB::query_builder::Table("nearby_players", FPlayerLocationCols("nearby_players"), FPlayerLocationIxCols("nearby_players")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table Player() const { return ::SpacetimeDB::query_builder::Table("player", FPlayerCols("player"), FPlayerIxCols("player")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PlayerLevel() const { return ::SpacetimeDB::query_builder::Table("player_level", FPlayerLevelCols("player_level"), FPlayerLevelIxCols("player_level")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table PlayersAtLevel0() const { return ::SpacetimeDB::query_builder::Table("players_at_level_0", FPlayersAtLevel0Cols("players_at_level_0"), FPlayersAtLevel0IxCols("players_at_level_0")); } +}; + +struct TESTVIEWCLIENT_API FQueryBuilder +{ + FFrom From; + + static TArray AllTablesSqlQueries() + { + TArray Sql; + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.MyPlayer().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.MyPlayerAndLevel().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.NearbyPlayers().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.Player().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PlayerLevel().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.PlayersAtLevel0().into_sql().c_str()))); + return Sql; + } +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FBlueprintQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FBlueprintPredicate +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FMyPlayerQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FMyPlayerAndLevelQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FNearbyPlayersQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FPlayerQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FPlayerLevelQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FPlayersAtLevel0Query +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FBlueprintBoolColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FBlueprintUInt8Column +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FBlueprintInt32Column +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FBlueprintInt64Column +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FBlueprintFloatColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FBlueprintDoubleColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FBlueprintStringColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FBlueprintIdentityColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FBlueprintConnectionIdColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FBlueprintTimestampColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FBlueprintUuidColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API UQueryBuilderBlueprintLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|MyPlayer", meta=(DisplayName="From MyPlayer")) + static FMyPlayerQuery FromMyPlayer() + { + FMyPlayerQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.MyPlayer().into_sql().c_str())); + Query.ResultSourceName = TEXT("my_player"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|MyPlayer", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_MyPlayerQueryToBlueprintQuery(const FMyPlayerQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|MyPlayer|Columns", meta=(DisplayName="MyPlayer Identity")) + static FBlueprintIdentityColumn MyPlayerIdentity(const FMyPlayerQuery& Query) + { + FBlueprintIdentityColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("my_player") : Query.ResultSourceName; + Column.ColumnName = TEXT("identity"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|MyPlayer", meta=(DisplayName="MyPlayer Where")) + static FMyPlayerQuery MyPlayerWhere(FMyPlayerQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|MyPlayerAndLevel", meta=(DisplayName="From MyPlayerAndLevel")) + static FMyPlayerAndLevelQuery FromMyPlayerAndLevel() + { + FMyPlayerAndLevelQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.MyPlayerAndLevel().into_sql().c_str())); + Query.ResultSourceName = TEXT("my_player_and_level"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|MyPlayerAndLevel", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_MyPlayerAndLevelQueryToBlueprintQuery(const FMyPlayerAndLevelQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|MyPlayerAndLevel|Columns", meta=(DisplayName="MyPlayerAndLevel Identity")) + static FBlueprintIdentityColumn MyPlayerAndLevelIdentity(const FMyPlayerAndLevelQuery& Query) + { + FBlueprintIdentityColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("my_player_and_level") : Query.ResultSourceName; + Column.ColumnName = TEXT("identity"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|MyPlayerAndLevel", meta=(DisplayName="MyPlayerAndLevel Where")) + static FMyPlayerAndLevelQuery MyPlayerAndLevelWhere(FMyPlayerAndLevelQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|NearbyPlayers", meta=(DisplayName="From NearbyPlayers")) + static FNearbyPlayersQuery FromNearbyPlayers() + { + FNearbyPlayersQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.NearbyPlayers().into_sql().c_str())); + Query.ResultSourceName = TEXT("nearby_players"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|NearbyPlayers", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_NearbyPlayersQueryToBlueprintQuery(const FNearbyPlayersQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|NearbyPlayers|Columns", meta=(DisplayName="NearbyPlayers Active")) + static FBlueprintBoolColumn NearbyPlayersActive(const FNearbyPlayersQuery& Query) + { + FBlueprintBoolColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("nearby_players") : Query.ResultSourceName; + Column.ColumnName = TEXT("active"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|NearbyPlayers|Columns", meta=(DisplayName="NearbyPlayers X")) + static FBlueprintInt32Column NearbyPlayersX(const FNearbyPlayersQuery& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("nearby_players") : Query.ResultSourceName; + Column.ColumnName = TEXT("x"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|NearbyPlayers|Columns", meta=(DisplayName="NearbyPlayers Y")) + static FBlueprintInt32Column NearbyPlayersY(const FNearbyPlayersQuery& Query) + { + FBlueprintInt32Column Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("nearby_players") : Query.ResultSourceName; + Column.ColumnName = TEXT("y"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|NearbyPlayers", meta=(DisplayName="NearbyPlayers Where")) + static FNearbyPlayersQuery NearbyPlayersWhere(FNearbyPlayersQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Player", meta=(DisplayName="From Player")) + static FPlayerQuery FromPlayer() + { + FPlayerQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.Player().into_sql().c_str())); + Query.ResultSourceName = TEXT("player"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Player", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PlayerQueryToBlueprintQuery(const FPlayerQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Player|Columns", meta=(DisplayName="Player Identity")) + static FBlueprintIdentityColumn PlayerIdentity(const FPlayerQuery& Query) + { + FBlueprintIdentityColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("player") : Query.ResultSourceName; + Column.ColumnName = TEXT("identity"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Player", meta=(DisplayName="Player Where")) + static FPlayerQuery PlayerWhere(FPlayerQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PlayerLevel", meta=(DisplayName="From PlayerLevel")) + static FPlayerLevelQuery FromPlayerLevel() + { + FPlayerLevelQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PlayerLevel().into_sql().c_str())); + Query.ResultSourceName = TEXT("player_level"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PlayerLevel", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PlayerLevelQueryToBlueprintQuery(const FPlayerLevelQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PlayerLevel", meta=(DisplayName="PlayerLevel Where")) + static FPlayerLevelQuery PlayerLevelWhere(FPlayerLevelQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PlayersAtLevel0", meta=(DisplayName="From PlayersAtLevel0")) + static FPlayersAtLevel0Query FromPlayersAtLevel0() + { + FPlayersAtLevel0Query Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.PlayersAtLevel0().into_sql().c_str())); + Query.ResultSourceName = TEXT("players_at_level_0"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PlayersAtLevel0", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_PlayersAtLevel0QueryToBlueprintQuery(const FPlayersAtLevel0Query& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PlayersAtLevel0|Columns", meta=(DisplayName="PlayersAtLevel0 Identity")) + static FBlueprintIdentityColumn PlayersAtLevel0Identity(const FPlayersAtLevel0Query& Query) + { + FBlueprintIdentityColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("players_at_level_0") : Query.ResultSourceName; + Column.ColumnName = TEXT("identity"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|PlayersAtLevel0", meta=(DisplayName="PlayersAtLevel0 Where")) + static FPlayersAtLevel0Query PlayersAtLevel0Where(FPlayersAtLevel0Query Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Bool Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate BoolEqual(const FBlueprintBoolColumn& Column, const bool Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate UInt8Equal(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate UInt8GreaterThan(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate UInt8GreaterEqual(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate UInt8LessThan(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate UInt8LessEqual(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate Int32Equal(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate Int32GreaterThan(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate Int32GreaterEqual(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate Int32LessThan(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate Int32LessEqual(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate Int64Equal(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate Int64GreaterThan(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate Int64GreaterEqual(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate Int64LessThan(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate Int64LessEqual(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate FloatEqual(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate FloatGreaterThan(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate FloatGreaterEqual(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate FloatLessThan(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate FloatLessEqual(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate DoubleEqual(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate DoubleGreaterThan(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate DoubleGreaterEqual(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate DoubleLessThan(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate DoubleLessEqual(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="String Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate StringEqual(const FBlueprintStringColumn& Column, const FString& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Identity Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate IdentityEqual(const FBlueprintIdentityColumn& Column, const FSpacetimeDBIdentity& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="ConnectionId Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate ConnectionIdEqual(const FBlueprintConnectionIdColumn& Column, const FSpacetimeDBConnectionId& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate TimestampEqual(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate TimestampGreaterThan(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate TimestampGreaterEqual(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate TimestampLessThan(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate TimestampLessEqual(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Uuid Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate UuidEqual(const FBlueprintUuidColumn& Column, const FSpacetimeDBUuid& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="AND", CompactNodeTitle="AND", Keywords="and &&")) + static FBlueprintPredicate And(const FBlueprintPredicate& A, const FBlueprintPredicate& B) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = A.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("(%s) AND (%s)"), *A.Sql, *B.Sql); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="OR", CompactNodeTitle="OR", Keywords="or ||")) + static FBlueprintPredicate Or(const FBlueprintPredicate& A, const FBlueprintPredicate& B) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = A.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("(%s) OR (%s)"), *A.Sql, *B.Sql); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="NOT", CompactNodeTitle="NOT", Keywords="not !")) + static FBlueprintPredicate Not(const FBlueprintPredicate& A) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = A.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("NOT (%s)"), *A.Sql); + return Predicate; + } + +private: + static FString AppendPredicate(const FString& Sql, const FString& Predicate) + { + if (Sql.Contains(TEXT(" WHERE "))) + { + return Sql + TEXT(" AND (") + Predicate + TEXT(")"); + } + return Sql + TEXT(" WHERE (") + Predicate + TEXT(")"); + } +}; + +// SubscriptionBuilder class +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API USubscriptionBuilder : public USubscriptionBuilderBase +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + USubscriptionBuilder* OnApplied(FOnSubscriptionApplied Callback); + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + USubscriptionBuilder* OnError(FOnSubscriptionError Callback); + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + USubscriptionHandle* Subscribe(); + + USubscriptionHandle* Subscribe(const TArray& SQL); + + template + USubscriptionBuilder* AddQuery(TFn&& Build) + { + FQueryBuilder Q; + auto Query = std::forward(Build)(Q); + static_assert(::SpacetimeDB::query_builder::QueryBuilderReturn, + "Typed subscription queries must return a query_builder table/query expression."); + PendingSqlQueries.Add(FString(UTF8_TO_TCHAR(Query.into_sql().c_str()))); + return this; + } + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB", meta=(DisplayName="AddQuery", ScriptName="AddQuery")) + USubscriptionBuilder* AddBlueprintQuery(const FBlueprintQuery& Query); + + USubscriptionBuilder* AddMyPlayerQuery(const FMyPlayerQuery& Query); + + USubscriptionBuilder* AddMyPlayerAndLevelQuery(const FMyPlayerAndLevelQuery& Query); + + USubscriptionBuilder* AddNearbyPlayersQuery(const FNearbyPlayersQuery& Query); + + USubscriptionBuilder* AddPlayerQuery(const FPlayerQuery& Query); + + USubscriptionBuilder* AddPlayerLevelQuery(const FPlayerLevelQuery& Query); + + USubscriptionBuilder* AddPlayersAtLevel0Query(const FPlayersAtLevel0Query& Query); + + /** Convenience for subscribing to all rows from all public sources, including views */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + USubscriptionHandle* SubscribeToAllTables(); + + + friend class UDbConnection; + friend class UDbConnectionBase; + +protected: + UPROPERTY() + class UDbConnection* Conn; + + UPROPERTY() + TArray PendingSqlQueries; + + // Delegates stored so Subscribe() can bind forwarding callbacks + FOnSubscriptionApplied OnAppliedDelegateInternal; + FOnSubscriptionError OnErrorDelegateInternal; +}; + +// SubscriptionHandle class +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API USubscriptionHandle : public USubscriptionHandleBase +{ + GENERATED_BODY() + +public: + + USubscriptionHandle() {}; + + explicit USubscriptionHandle(UDbConnection* InConn); + + friend class USubscriptionBuilder; + +private: + UPROPERTY() + class UDbConnection* Conn; + + // Delegates that expose subscription events with connection aware contexts + FOnSubscriptionApplied OnAppliedDelegate; + FOnSubscriptionError OnErrorDelegate; + + UFUNCTION() + void ForwardOnApplied(const FSubscriptionEventContextBase& BaseCtx); + + UFUNCTION() + void ForwardOnError(const FErrorContextBase& BaseCtx); +}; + +/* + @Note: Child class of UDbConnectionBuilderBase. +*/ +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API UDbConnectionBuilder : public UDbConnectionBuilderBase +{ + GENERATED_BODY() +public: + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnectionBuilder* WithUri(const FString& InUri); + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnectionBuilder* WithDatabaseName(const FString& InName); + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnectionBuilder* WithToken(const FString& InToken); + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnectionBuilder* WithCompression(const ESpacetimeDBCompression& InCompression); + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnectionBuilder* OnConnect(FOnConnectDelegate Callback); + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnectionBuilder* OnConnectError(FOnConnectErrorDelegate Callback); + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnectionBuilder* OnDisconnect(FOnDisconnectDelegate Callback); + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnection* Build(); + +private: + + // Stored delegates which will be forwarded when the connection events occur. + FOnConnectDelegate OnConnectDelegateInternal; + FOnDisconnectDelegate OnDisconnectDelegateInternal; +}; + +// Main DbConnection class +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API UDbConnection : public UDbConnectionBase +{ + GENERATED_BODY() + +public: + explicit UDbConnection(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get()); + + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + URemoteTables* Db; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + URemoteReducers* Reducers; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + URemoteProcedures* Procedures; + + // Delegates that allow users to bind with the concrete connection type. + FOnConnectDelegate OnConnectDelegate; + FOnDisconnectDelegate OnDisconnectDelegate; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + USubscriptionBuilder* SubscriptionBuilder(); + + /** Static entry point for constructing a connection. */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB", DisplayName = "SpacetimeDB TestViewClient Builder") + static UDbConnectionBuilder* Builder(); + + // Error handling + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnUnhandledReducerError, const FReducerEventContext&, Context, const FString&, Error); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FOnUnhandledReducerError OnUnhandledReducerError; + + // Error handling + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnUnhandledProcedureError, const FProcedureEventContext&, Context, const FString&, Error); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FOnUnhandledProcedureError OnUnhandledProcedureError; + + +protected: + + // Hook up error handling to reducers and procedures + virtual void PostInitProperties() override; + + UFUNCTION() + void ForwardOnConnect(UDbConnectionBase* BaseConnection, FSpacetimeDBIdentity InIdentity, const FString& InToken); + UFUNCTION() + void ForwardOnDisconnect(UDbConnectionBase* BaseConnection, const FString& Error); + + UFUNCTION() + void OnUnhandledReducerErrorHandler(const FReducerEventContext& Context, const FString& Error); + + UFUNCTION() + void OnUnhandledProcedureErrorHandler(const FProcedureEventContext& Context, const FString& Error); + + // Override the DbConnectionBase methods to handle updates and events + virtual void DbUpdate(const FDatabaseUpdateType& Update, const FSpacetimeDBEvent& Event) override; + + // Override the reducer event handler to dispatch events to the appropriate reducers + virtual void ReducerEvent(const FReducerEvent& Event) override; + + // Override the reducer event failed handler + virtual void ReducerEventFailed(const FReducerEvent& Event, const FString ErrorMessage) override; + // Override the procedure event failed handler + virtual void ProcedureEventFailed(const FProcedureEvent& Event, const FString ErrorMessage) override; + + friend class USubscriptionBuilder; + friend class UDbConnectionBuilder; + friend class URemoteReducers; + + // Internal reducer correlation helpers (request_id -> typed reducer) + void RegisterPendingTypedReducer(uint32 RequestId, FReducer Reducer); + bool TryGetPendingTypedReducer(uint32 RequestId, FReducer& OutReducer) const; + bool TryTakePendingTypedReducer(uint32 RequestId, FReducer& OutReducer); + +private: + TMap PendingTypedReducers; +}; + diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/MyPlayerAndLevelTable.g.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/MyPlayerAndLevelTable.g.h new file mode 100644 index 00000000000..6a49f4bf34c --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/MyPlayerAndLevelTable.g.h @@ -0,0 +1,64 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Types/Builtins.h" +#include "ModuleBindings/Types/PlayerAndLevelType.g.h" +#include "Tables/RemoteTable.h" +#include "DBCache/WithBsatn.h" +#include "DBCache/TableHandle.h" +#include "DBCache/TableCache.h" +#include "MyPlayerAndLevelTable.g.generated.h" + +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API UMyPlayerAndLevelTable : public URemoteTable +{ + GENERATED_BODY() + +public: + void PostInitialize(); + + /** Update function for my_player_and_level table*/ + FTableAppliedDiff Update(TArray> InsertsRef, TArray> DeletesRef); + + /** Number of subscribed rows currently in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + int32 Count() const; + + /** Return all subscribed rows in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + TArray Iter() const; + + // Table Events + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnMyPlayerAndLevelInsert, + const FEventContext&, Context, + const FPlayerAndLevelType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FOnMyPlayerAndLevelUpdate, + const FEventContext&, Context, + const FPlayerAndLevelType&, OldRow, + const FPlayerAndLevelType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnMyPlayerAndLevelDelete, + const FEventContext&, Context, + const FPlayerAndLevelType&, DeletedRow); + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnMyPlayerAndLevelInsert OnInsert; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnMyPlayerAndLevelUpdate OnUpdate; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnMyPlayerAndLevelDelete OnDelete; + +private: + const FString TableName = TEXT("my_player_and_level"); + + TSharedPtr> Data; +}; diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/MyPlayerTable.g.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/MyPlayerTable.g.h new file mode 100644 index 00000000000..ca978580203 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/MyPlayerTable.g.h @@ -0,0 +1,64 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Types/Builtins.h" +#include "ModuleBindings/Types/PlayerType.g.h" +#include "Tables/RemoteTable.h" +#include "DBCache/WithBsatn.h" +#include "DBCache/TableHandle.h" +#include "DBCache/TableCache.h" +#include "MyPlayerTable.g.generated.h" + +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API UMyPlayerTable : public URemoteTable +{ + GENERATED_BODY() + +public: + void PostInitialize(); + + /** Update function for my_player table*/ + FTableAppliedDiff Update(TArray> InsertsRef, TArray> DeletesRef); + + /** Number of subscribed rows currently in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + int32 Count() const; + + /** Return all subscribed rows in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + TArray Iter() const; + + // Table Events + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnMyPlayerInsert, + const FEventContext&, Context, + const FPlayerType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FOnMyPlayerUpdate, + const FEventContext&, Context, + const FPlayerType&, OldRow, + const FPlayerType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnMyPlayerDelete, + const FEventContext&, Context, + const FPlayerType&, DeletedRow); + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnMyPlayerInsert OnInsert; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnMyPlayerUpdate OnUpdate; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnMyPlayerDelete OnDelete; + +private: + const FString TableName = TEXT("my_player"); + + TSharedPtr> Data; +}; diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/NearbyPlayersTable.g.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/NearbyPlayersTable.g.h new file mode 100644 index 00000000000..e7978fa5320 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/NearbyPlayersTable.g.h @@ -0,0 +1,64 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Types/Builtins.h" +#include "ModuleBindings/Types/PlayerLocationType.g.h" +#include "Tables/RemoteTable.h" +#include "DBCache/WithBsatn.h" +#include "DBCache/TableHandle.h" +#include "DBCache/TableCache.h" +#include "NearbyPlayersTable.g.generated.h" + +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API UNearbyPlayersTable : public URemoteTable +{ + GENERATED_BODY() + +public: + void PostInitialize(); + + /** Update function for nearby_players table*/ + FTableAppliedDiff Update(TArray> InsertsRef, TArray> DeletesRef); + + /** Number of subscribed rows currently in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + int32 Count() const; + + /** Return all subscribed rows in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + TArray Iter() const; + + // Table Events + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnNearbyPlayersInsert, + const FEventContext&, Context, + const FPlayerLocationType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FOnNearbyPlayersUpdate, + const FEventContext&, Context, + const FPlayerLocationType&, OldRow, + const FPlayerLocationType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnNearbyPlayersDelete, + const FEventContext&, Context, + const FPlayerLocationType&, DeletedRow); + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnNearbyPlayersInsert OnInsert; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnNearbyPlayersUpdate OnUpdate; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnNearbyPlayersDelete OnDelete; + +private: + const FString TableName = TEXT("nearby_players"); + + TSharedPtr> Data; +}; diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/PlayerLevelTable.g.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/PlayerLevelTable.g.h new file mode 100644 index 00000000000..dbaa12e754a --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/PlayerLevelTable.g.h @@ -0,0 +1,141 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Types/Builtins.h" +#include "ModuleBindings/Types/PlayerLevelType.g.h" +#include "Tables/RemoteTable.h" +#include "DBCache/WithBsatn.h" +#include "DBCache/TableHandle.h" +#include "DBCache/TableCache.h" +#include "PlayerLevelTable.g.generated.h" + +UCLASS(Blueprintable) +class TESTVIEWCLIENT_API UPlayerLevelEntityIdUniqueIndex : public UObject +{ + GENERATED_BODY() + +private: + // Declare an instance of your templated helper. + // It's private because the UObject wrapper will expose its functionality. + FUniqueIndexHelper> EntityIdIndexHelper; + +public: + UPlayerLevelEntityIdUniqueIndex() + // Initialize the helper with the specific unique index name + : EntityIdIndexHelper("entity_id") { + } + + /** + * Finds a PlayerLevel by their unique entityid. + * @param Key The entityid to search for. + * @return The found FPlayerLevelType, or a default-constructed FPlayerLevelType if not found. + */ + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FPlayerLevelType Find(uint64 Key) + { + // Simply delegate the call to the internal helper + return EntityIdIndexHelper.FindUniqueIndex(Key); + } + + // A public setter to provide the cache to the helper after construction + // This is a common pattern when the cache might be created or provided by another system. + void SetCache(TSharedPtr> InPlayerLevelCache) + { + EntityIdIndexHelper.Cache = InPlayerLevelCache; + } +}; +/***/ + +UCLASS(Blueprintable) +class UPlayerLevelLevelIndex : public UObject +{ + GENERATED_BODY() + +public: + TArray Filter(const uint64& Level) const + { + TArray OutResults; + + LocalCache->FindByMultiKeyBTreeIndex>( + OutResults, + TEXT("level"), + MakeTuple(Level) + ); + + return OutResults; + } + + void SetCache(TSharedPtr> InCache) + { + LocalCache = InCache; + } + +private: + // NOTE: Not exposed to Blueprint because some parameter types are not Blueprint-compatible + void FilterLevel(TArray& OutResults, const uint64& Level) + { + OutResults = Filter(Level); + } + + TSharedPtr> LocalCache; +}; + +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API UPlayerLevelTable : public URemoteTable +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly) + UPlayerLevelEntityIdUniqueIndex* EntityId; + + UPROPERTY(BlueprintReadOnly) + UPlayerLevelLevelIndex* Level; + + void PostInitialize(); + + /** Update function for player_level table*/ + FTableAppliedDiff Update(TArray> InsertsRef, TArray> DeletesRef); + + /** Number of subscribed rows currently in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + int32 Count() const; + + /** Return all subscribed rows in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + TArray Iter() const; + + // Table Events + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnPlayerLevelInsert, + const FEventContext&, Context, + const FPlayerLevelType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FOnPlayerLevelUpdate, + const FEventContext&, Context, + const FPlayerLevelType&, OldRow, + const FPlayerLevelType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnPlayerLevelDelete, + const FEventContext&, Context, + const FPlayerLevelType&, DeletedRow); + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnPlayerLevelInsert OnInsert; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnPlayerLevelUpdate OnUpdate; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnPlayerLevelDelete OnDelete; + +private: + const FString TableName = TEXT("player_level"); + + TSharedPtr> Data; +}; diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/PlayerTable.g.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/PlayerTable.g.h new file mode 100644 index 00000000000..acbc7f06735 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/PlayerTable.g.h @@ -0,0 +1,144 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Types/Builtins.h" +#include "ModuleBindings/Types/PlayerType.g.h" +#include "Tables/RemoteTable.h" +#include "DBCache/WithBsatn.h" +#include "DBCache/TableHandle.h" +#include "DBCache/TableCache.h" +#include "PlayerTable.g.generated.h" + +UCLASS(Blueprintable) +class TESTVIEWCLIENT_API UPlayerEntityIdUniqueIndex : public UObject +{ + GENERATED_BODY() + +private: + // Declare an instance of your templated helper. + // It's private because the UObject wrapper will expose its functionality. + FUniqueIndexHelper> EntityIdIndexHelper; + +public: + UPlayerEntityIdUniqueIndex() + // Initialize the helper with the specific unique index name + : EntityIdIndexHelper("entity_id") { + } + + /** + * Finds a Player by their unique entityid. + * @param Key The entityid to search for. + * @return The found FPlayerType, or a default-constructed FPlayerType if not found. + */ + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FPlayerType Find(uint64 Key) + { + // Simply delegate the call to the internal helper + return EntityIdIndexHelper.FindUniqueIndex(Key); + } + + // A public setter to provide the cache to the helper after construction + // This is a common pattern when the cache might be created or provided by another system. + void SetCache(TSharedPtr> InPlayerCache) + { + EntityIdIndexHelper.Cache = InPlayerCache; + } +}; +/***/ + +UCLASS(Blueprintable) +class TESTVIEWCLIENT_API UPlayerIdentityUniqueIndex : public UObject +{ + GENERATED_BODY() + +private: + // Declare an instance of your templated helper. + // It's private because the UObject wrapper will expose its functionality. + FUniqueIndexHelper> IdentityIndexHelper; + +public: + UPlayerIdentityUniqueIndex() + // Initialize the helper with the specific unique index name + : IdentityIndexHelper("identity") { + } + + /** + * Finds a Player by their unique identity. + * @param Key The identity to search for. + * @return The found FPlayerType, or a default-constructed FPlayerType if not found. + */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|PlayerIndex") + FPlayerType Find(FSpacetimeDBIdentity Key) + { + // Simply delegate the call to the internal helper + return IdentityIndexHelper.FindUniqueIndex(Key); + } + + // A public setter to provide the cache to the helper after construction + // This is a common pattern when the cache might be created or provided by another system. + void SetCache(TSharedPtr> InPlayerCache) + { + IdentityIndexHelper.Cache = InPlayerCache; + } +}; +/***/ + +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API UPlayerTable : public URemoteTable +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly) + UPlayerEntityIdUniqueIndex* EntityId; + + UPROPERTY(BlueprintReadOnly) + UPlayerIdentityUniqueIndex* Identity; + + void PostInitialize(); + + /** Update function for player table*/ + FTableAppliedDiff Update(TArray> InsertsRef, TArray> DeletesRef); + + /** Number of subscribed rows currently in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + int32 Count() const; + + /** Return all subscribed rows in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + TArray Iter() const; + + // Table Events + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnPlayerInsert, + const FEventContext&, Context, + const FPlayerType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FOnPlayerUpdate, + const FEventContext&, Context, + const FPlayerType&, OldRow, + const FPlayerType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnPlayerDelete, + const FEventContext&, Context, + const FPlayerType&, DeletedRow); + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnPlayerInsert OnInsert; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnPlayerUpdate OnUpdate; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnPlayerDelete OnDelete; + +private: + const FString TableName = TEXT("player"); + + TSharedPtr> Data; +}; diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/PlayersAtLevel0Table.g.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/PlayersAtLevel0Table.g.h new file mode 100644 index 00000000000..f075e353c30 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Tables/PlayersAtLevel0Table.g.h @@ -0,0 +1,64 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Types/Builtins.h" +#include "ModuleBindings/Types/PlayerType.g.h" +#include "Tables/RemoteTable.h" +#include "DBCache/WithBsatn.h" +#include "DBCache/TableHandle.h" +#include "DBCache/TableCache.h" +#include "PlayersAtLevel0Table.g.generated.h" + +UCLASS(BlueprintType) +class TESTVIEWCLIENT_API UPlayersAtLevel0Table : public URemoteTable +{ + GENERATED_BODY() + +public: + void PostInitialize(); + + /** Update function for players_at_level_0 table*/ + FTableAppliedDiff Update(TArray> InsertsRef, TArray> DeletesRef); + + /** Number of subscribed rows currently in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + int32 Count() const; + + /** Return all subscribed rows in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + TArray Iter() const; + + // Table Events + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnPlayersAtLevel0Insert, + const FEventContext&, Context, + const FPlayerType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FOnPlayersAtLevel0Update, + const FEventContext&, Context, + const FPlayerType&, OldRow, + const FPlayerType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnPlayersAtLevel0Delete, + const FEventContext&, Context, + const FPlayerType&, DeletedRow); + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnPlayersAtLevel0Insert OnInsert; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnPlayersAtLevel0Update OnUpdate; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnPlayersAtLevel0Delete OnDelete; + +private: + const FString TableName = TEXT("players_at_level_0"); + + TSharedPtr> Data; +}; diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Types/PlayerAndLevelType.g.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Types/PlayerAndLevelType.g.h new file mode 100644 index 00000000000..f059a5b9a63 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Types/PlayerAndLevelType.g.h @@ -0,0 +1,54 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Types/Builtins.h" +#include "PlayerAndLevelType.g.generated.h" + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FPlayerAndLevelType +{ + GENERATED_BODY() + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 EntityId = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "SpacetimeDB") + FSpacetimeDBIdentity Identity; + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 Level = 0; + + FORCEINLINE bool operator==(const FPlayerAndLevelType& Other) const + { + return EntityId == Other.EntityId && Identity == Other.Identity && Level == Other.Level; + } + + FORCEINLINE bool operator!=(const FPlayerAndLevelType& Other) const + { + return !(*this == Other); + } +}; + +/** + * Custom hash function for FPlayerAndLevelType. + * Combines the hashes of all fields that are compared in operator==. + * @param PlayerAndLevelType The FPlayerAndLevelType instance to hash. + * @return The combined hash value. + */ +FORCEINLINE uint32 GetTypeHash(const FPlayerAndLevelType& PlayerAndLevelType) +{ + uint32 Hash = GetTypeHash(PlayerAndLevelType.EntityId); + Hash = HashCombine(Hash, GetTypeHash(PlayerAndLevelType.Identity)); + Hash = HashCombine(Hash, GetTypeHash(PlayerAndLevelType.Level)); + return Hash; +} + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_ENABLE_TARRAY(FPlayerAndLevelType); + + UE_SPACETIMEDB_STRUCT(FPlayerAndLevelType, EntityId, Identity, Level); +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Types/PlayerLevelType.g.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Types/PlayerLevelType.g.h new file mode 100644 index 00000000000..166e205b77a --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Types/PlayerLevelType.g.h @@ -0,0 +1,49 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "PlayerLevelType.g.generated.h" + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FPlayerLevelType +{ + GENERATED_BODY() + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 EntityId = 0; + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 Level = 0; + + FORCEINLINE bool operator==(const FPlayerLevelType& Other) const + { + return EntityId == Other.EntityId && Level == Other.Level; + } + + FORCEINLINE bool operator!=(const FPlayerLevelType& Other) const + { + return !(*this == Other); + } +}; + +/** + * Custom hash function for FPlayerLevelType. + * Combines the hashes of all fields that are compared in operator==. + * @param PlayerLevelType The FPlayerLevelType instance to hash. + * @return The combined hash value. + */ +FORCEINLINE uint32 GetTypeHash(const FPlayerLevelType& PlayerLevelType) +{ + uint32 Hash = GetTypeHash(PlayerLevelType.EntityId); + Hash = HashCombine(Hash, GetTypeHash(PlayerLevelType.Level)); + return Hash; +} + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_ENABLE_TARRAY(FPlayerLevelType); + + UE_SPACETIMEDB_STRUCT(FPlayerLevelType, EntityId, Level); +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Types/PlayerLocationType.g.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Types/PlayerLocationType.g.h new file mode 100644 index 00000000000..cac3775992c --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Types/PlayerLocationType.g.h @@ -0,0 +1,57 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "PlayerLocationType.g.generated.h" + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FPlayerLocationType +{ + GENERATED_BODY() + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 EntityId = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "SpacetimeDB") + bool Active = false; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "SpacetimeDB") + int32 X = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "SpacetimeDB") + int32 Y = 0; + + FORCEINLINE bool operator==(const FPlayerLocationType& Other) const + { + return EntityId == Other.EntityId && Active == Other.Active && X == Other.X && Y == Other.Y; + } + + FORCEINLINE bool operator!=(const FPlayerLocationType& Other) const + { + return !(*this == Other); + } +}; + +/** + * Custom hash function for FPlayerLocationType. + * Combines the hashes of all fields that are compared in operator==. + * @param PlayerLocationType The FPlayerLocationType instance to hash. + * @return The combined hash value. + */ +FORCEINLINE uint32 GetTypeHash(const FPlayerLocationType& PlayerLocationType) +{ + uint32 Hash = GetTypeHash(PlayerLocationType.EntityId); + Hash = HashCombine(Hash, GetTypeHash(PlayerLocationType.Active)); + Hash = HashCombine(Hash, GetTypeHash(PlayerLocationType.X)); + Hash = HashCombine(Hash, GetTypeHash(PlayerLocationType.Y)); + return Hash; +} + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_ENABLE_TARRAY(FPlayerLocationType); + + UE_SPACETIMEDB_STRUCT(FPlayerLocationType, EntityId, Active, X, Y); +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Types/PlayerType.g.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Types/PlayerType.g.h new file mode 100644 index 00000000000..afe96d88ab9 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/ModuleBindings/Types/PlayerType.g.h @@ -0,0 +1,50 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Types/Builtins.h" +#include "PlayerType.g.generated.h" + +USTRUCT(BlueprintType) +struct TESTVIEWCLIENT_API FPlayerType +{ + GENERATED_BODY() + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 EntityId = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "SpacetimeDB") + FSpacetimeDBIdentity Identity; + + FORCEINLINE bool operator==(const FPlayerType& Other) const + { + return EntityId == Other.EntityId && Identity == Other.Identity; + } + + FORCEINLINE bool operator!=(const FPlayerType& Other) const + { + return !(*this == Other); + } +}; + +/** + * Custom hash function for FPlayerType. + * Combines the hashes of all fields that are compared in operator==. + * @param PlayerType The FPlayerType instance to hash. + * @return The combined hash value. + */ +FORCEINLINE uint32 GetTypeHash(const FPlayerType& PlayerType) +{ + uint32 Hash = GetTypeHash(PlayerType.EntityId); + Hash = HashCombine(Hash, GetTypeHash(PlayerType.Identity)); + return Hash; +} + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_ENABLE_TARRAY(FPlayerType); + + UE_SPACETIMEDB_STRUCT(FPlayerType, EntityId, Identity); +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/CommonTestFunctions.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/CommonTestFunctions.h new file mode 100644 index 00000000000..424bb30cdbc --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/CommonTestFunctions.h @@ -0,0 +1,75 @@ +#pragma once + +#include "CoreMinimal.h" +#include "Misc/AutomationTest.h" +#include "Tests/TestCounter.h" + +#include "Connection/Callback.h" +#include "Connection/Credentials.h" +#include "ModuleBindings/SpacetimeDBClient.g.h" + +#include "CommonTestFunctions.generated.h" + +#define TESTLOG_SUCCESS(Test, Format, ...) \ + do \ + { \ + const FString UserMessage = FString::Printf(Format, ##__VA_ARGS__); \ + const FString LogMessage = FString::Printf(TEXT(" + %s"), *UserMessage); \ + UE_LOG(LogTemp, Log, TEXT("%s"), *LogMessage); \ + Test.AddInfo(LogMessage); \ + } while (false) + +#define TESTLOG_FAIL(Test, Format, ...) \ + do \ + { \ + const FString UserMessage = FString::Printf(Format, ##__VA_ARGS__); \ + const FString LogMessage = FString::Printf(TEXT(" x %s"), *UserMessage); \ + UE_LOG(LogTemp, Error, TEXT("%s"), *LogMessage); \ + Test.AddError(LogMessage); \ + } while (false) + +UCLASS() +class TESTVIEWCLIENT_API UTestHelperDelegates : public UObject +{ + GENERATED_BODY() + +public: + TFunction OnConnect; + UFUNCTION() + void HandleConnect(UDbConnection* Conn, FSpacetimeDBIdentity Identity, const FString& Token); + + TFunction OnConnectError; + UFUNCTION() + void HandleConnectError(const FString& Error); + + TFunction OnDisconnect; + UFUNCTION() + void HandleDisconnect(UDbConnection* Conn, const FString& Error); + + TFunction OnSubscriptionApplied; + UFUNCTION() + void HandleSubscriptionApplied(FSubscriptionEventContext Ctx); + + TFunction OnSubscriptionError; + UFUNCTION() + void HandleSubscriptionError(FErrorContext Ctx); +}; + +UDbConnection* ConnectThen( + TSharedPtr Counter, + const FString& TestName, + TFunction Callback); + +bool GetDbName(FString& DBName, FString& Error); +FString GetServerUrl(); +bool ValidateParameterConfig(FAutomationTestBase* Test); +bool ReportTestResult(FAutomationTestBase& Test, const FString& TestName, TSharedPtr Counter, bool bTimedOut); + +template +T* CreateTestHandler() +{ + T* Handler = NewObject(GetTransientPackage()); + Handler->AddToRoot(); + Handler->Counter = MakeShared(); + return Handler; +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/PrimitiveHandlerList.def b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/PrimitiveHandlerList.def new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/PrimitiveHandlerList.def @@ -0,0 +1 @@ + diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/SpacetimeFullClientTests.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/SpacetimeFullClientTests.h new file mode 100644 index 00000000000..5da4a816e9e --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/SpacetimeFullClientTests.h @@ -0,0 +1,28 @@ +#pragma once + +#include "CoreMinimal.h" +#include "Misc/AutomationTest.h" + +IMPLEMENT_SIMPLE_AUTOMATION_TEST( + FViewQueryBuilderDirectSourcesTest, + "SpacetimeDB.TestViewClient.ViewQueryBuilderDirectSourcesTest", + EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter +) + +IMPLEMENT_SIMPLE_AUTOMATION_TEST( + FViewSubscribeAllTablesTest, + "SpacetimeDB.TestViewClient.ViewSubscribeAllTablesTest", + EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter +) + +IMPLEMENT_SIMPLE_AUTOMATION_TEST( + FViewBlueprintQueryBuilderFlowTest, + "SpacetimeDB.TestViewClient.ViewBlueprintQueryBuilderFlowTest", + EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter +) + +IMPLEMENT_SIMPLE_AUTOMATION_TEST( + FViewBlueprintQueryBuilderRuntimeTest, + "SpacetimeDB.TestViewClient.ViewBlueprintQueryBuilderRuntimeTest", + EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter +) diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/TestCounter.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/TestCounter.h new file mode 100644 index 00000000000..35b52debcb5 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/TestCounter.h @@ -0,0 +1,35 @@ +#pragma once + +#include "CoreMinimal.h" +#include "HAL/CriticalSection.h" + +struct FTestOutcome +{ + bool bSuccess = false; + FString Error; +}; + +class FTestCounter : public TSharedFromThis +{ +public: + FTestCounter() = default; + + void Register(const FString& TestName); + void MarkSuccess(const FString& TestName); + void MarkFailure(const FString& TestName, const FString& Error); + + bool IsComplete() const; + bool AllSucceeded() const; + TArray GetFailures() const; + TArray GetSuccesses() const; + + void Abort(); + bool IsAborted() const { return bAborted; } + + +private: + mutable FCriticalSection Mutex; + TMap Outcomes; + TSet Registered; + bool bAborted = false; +}; \ No newline at end of file diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/TestHandler.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/TestHandler.h new file mode 100644 index 00000000000..ba5eef092cb --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/TestHandler.h @@ -0,0 +1,36 @@ +#pragma once + +#include "CoreMinimal.h" +#include "UObject/Object.h" + +#include "ModuleBindings/SpacetimeDBClient.g.h" +#include "Tests/TestCounter.h" + +#include "TestHandler.generated.h" + +UCLASS() +class TESTVIEWCLIENT_API UTestHandler : public UObject +{ + GENERATED_BODY() + +public: + TSharedPtr Counter; +}; + +UCLASS() +class TESTVIEWCLIENT_API UViewBlueprintRuntimeHandler : public UTestHandler +{ + GENERATED_BODY() + +public: + FSpacetimeDBIdentity ExpectedIdentity = FSpacetimeDBIdentity::FromHex(TEXT("0x1111111111111111111111111111111111111111111111111111111111111111")); + + UFUNCTION() + void OnPlayersAtLevel0Insert(const FEventContext& Context, const FPlayerType& Value); + + UFUNCTION() + void OnPlayersAtLevel0Update(const FEventContext& Context, const FPlayerType& OldValue, const FPlayerType& NewValue); + + UFUNCTION() + void OnPlayersAtLevel0Delete(const FEventContext& Context, const FPlayerType& Value); +}; diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/UmbreallaHeaderReducers.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/UmbreallaHeaderReducers.h new file mode 100644 index 00000000000..6f70f09beec --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/UmbreallaHeaderReducers.h @@ -0,0 +1 @@ +#pragma once diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/UmbreallaHeaderTypes.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/UmbreallaHeaderTypes.h new file mode 100644 index 00000000000..6f70f09beec --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/UmbreallaHeaderTypes.h @@ -0,0 +1 @@ +#pragma once diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/UmbreallaHeaderaTables.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/UmbreallaHeaderaTables.h new file mode 100644 index 00000000000..6f70f09beec --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/Public/Tests/UmbreallaHeaderaTables.h @@ -0,0 +1 @@ +#pragma once diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/TestViewClient.Build.cs b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/TestViewClient.Build.cs new file mode 100644 index 00000000000..84ecb7df9d6 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/TestViewClient.Build.cs @@ -0,0 +1,25 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; + +public class TestViewClient : ModuleRules +{ + public TestViewClient(ReadOnlyTargetRules Target) : base(Target) + { + // Set the module type to be a standard module + PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; + + // Set the module to use C++20 standard + CppStandard = CppStandardVersion.Cpp20; + + + // Enable exceptions for this module + bEnableExceptions = true; + + + PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "SpacetimeDbSdk" }); + + PrivateDependencyModuleNames.AddRange(new string[] { "DeveloperSettings" }); + + } +} diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/TestViewClient.cpp b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/TestViewClient.cpp new file mode 100644 index 00000000000..95d75714381 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/TestViewClient.cpp @@ -0,0 +1,6 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "TestViewClient.h" +#include "Modules/ModuleManager.h" + +IMPLEMENT_PRIMARY_GAME_MODULE(FDefaultGameModuleImpl, TestViewClient, "TestViewClient"); diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/TestViewClient.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/TestViewClient.h new file mode 100644 index 00000000000..90aad9e7e22 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/TestViewClient.h @@ -0,0 +1,6 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" + diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/TestViewClientGameModeBase.cpp b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/TestViewClientGameModeBase.cpp new file mode 100644 index 00000000000..c7102b92b21 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/TestViewClientGameModeBase.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "TestViewClientGameModeBase.h" + diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClient/TestViewClientGameModeBase.h b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/TestViewClientGameModeBase.h new file mode 100644 index 00000000000..a60387c3a86 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClient/TestViewClientGameModeBase.h @@ -0,0 +1,17 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/GameModeBase.h" +#include "TestViewClientGameModeBase.generated.h" + +/** + * + */ +UCLASS() +class TESTVIEWCLIENT_API ATestViewClientGameModeBase : public AGameModeBase +{ + GENERATED_BODY() + +}; diff --git a/sdks/unreal/tests/TestViewClient/Source/TestViewClientEditor.Target.cs b/sdks/unreal/tests/TestViewClient/Source/TestViewClientEditor.Target.cs new file mode 100644 index 00000000000..f10d509c113 --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/Source/TestViewClientEditor.Target.cs @@ -0,0 +1,15 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; +using System.Collections.Generic; + +public class TestViewClientEditorTarget : TargetRules +{ + public TestViewClientEditorTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Editor; + DefaultBuildSettings = BuildSettingsVersion.V5; + + ExtraModuleNames.AddRange( new string[] { "TestViewClient" } ); + } +} diff --git a/sdks/unreal/tests/TestViewClient/TestViewClient.uproject b/sdks/unreal/tests/TestViewClient/TestViewClient.uproject new file mode 100644 index 00000000000..1a6f19cbbcd --- /dev/null +++ b/sdks/unreal/tests/TestViewClient/TestViewClient.uproject @@ -0,0 +1,25 @@ +{ + "FileVersion": 3, + "EngineAssociation": "5.6", + "Category": "", + "Description": "", + "Modules": [ + { + "Name": "TestViewClient", + "Type": "Runtime", + "LoadingPhase": "Default" + } + ], + "Plugins": [ + { + "Name": "ModelingToolsEditorMode", + "Enabled": true, + "TargetAllowList": [ + "Editor" + ] + } + ], + "AdditionalPluginDirectories": [ + "../../src" + ] +} diff --git a/sdks/unreal/tests/TestViewPkClient/.vsconfig b/sdks/unreal/tests/TestViewPkClient/.vsconfig new file mode 100644 index 00000000000..3b919ea7b8f --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/.vsconfig @@ -0,0 +1,17 @@ +{ + "version": "1.0", + "components": [ + "Component.Unreal.Debugger", + "Component.Unreal.Ide", + "Microsoft.Net.Component.4.6.2.TargetingPack", + "Microsoft.VisualStudio.Component.VC.14.38.17.8.ATL", + "Microsoft.VisualStudio.Component.VC.14.38.17.8.x86.x64", + "Microsoft.VisualStudio.Component.VC.Llvm.Clang", + "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", + "Microsoft.VisualStudio.Component.Windows11SDK.22621", + "Microsoft.VisualStudio.Workload.CoreEditor", + "Microsoft.VisualStudio.Workload.ManagedDesktop", + "Microsoft.VisualStudio.Workload.NativeDesktop", + "Microsoft.VisualStudio.Workload.NativeGame" + ] +} diff --git a/sdks/unreal/tests/TestViewPkClient/Config/DefaultEditor.ini b/sdks/unreal/tests/TestViewPkClient/Config/DefaultEditor.ini new file mode 100644 index 00000000000..e69de29bb2d diff --git a/sdks/unreal/tests/TestViewPkClient/Config/DefaultEditorPerProjectUserSettings.ini b/sdks/unreal/tests/TestViewPkClient/Config/DefaultEditorPerProjectUserSettings.ini new file mode 100644 index 00000000000..58b060183b7 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Config/DefaultEditorPerProjectUserSettings.ini @@ -0,0 +1,5 @@ + + +[/Script/TestViewPkClient.SpacetimeDBSettings] +SpacetimeDbTestName=sdk-test-view-pk + diff --git a/sdks/unreal/tests/TestViewPkClient/Config/DefaultEngine.ini b/sdks/unreal/tests/TestViewPkClient/Config/DefaultEngine.ini new file mode 100644 index 00000000000..0239c099c52 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Config/DefaultEngine.ini @@ -0,0 +1,57 @@ +[Zen] +bEnableZen=false +bEnableZenLocal=false + +[/Script/Zen.ZenServiceSettings] +bEnabled=False +bAutoLaunch=False + +[Audio] +UseAudioMixer=True + +[/Script/HardwareTargeting.HardwareTargetingSettings] +TargetedHardwareClass=Desktop +AppliedTargetedHardwareClass=Desktop +DefaultGraphicsPerformance=Maximum +AppliedDefaultGraphicsPerformance=Maximum + +[/Script/WindowsTargetPlatform.WindowsTargetSettings] +DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 +DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 +!D3D12TargetedShaderFormats=ClearArray ++D3D12TargetedShaderFormats=PCD3D_SM6 + +[/Script/Engine.RendererSettings] +r.AllowStaticLighting=0 +r.GenerateMeshDistanceFields=False +r.DynamicGlobalIlluminationMethod=1 +r.ReflectionMethod=1 +r.Shadow.Virtual.Enable=1 +r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True +r.DefaultFeature.LocalExposure.HighlightContrastScale=0.8 +r.DefaultFeature.LocalExposure.ShadowContrastScale=0.8 +r.SkinCache.CompileShaders=True +r.RayTracing.RayTracingProxies.ProjectEnabled=True + +[/Script/WorldPartitionEditor.WorldPartitionEditorSettings] +CommandletClass=Class'/Script/UnrealEd.WorldPartitionConvertCommandlet' + +[/Script/Engine.UserInterfaceSettings] +bAuthorizeAutomaticWidgetVariableCreation=False +FontDPIPreset=Standard +FontDPI=72 + +[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings] +bEnablePlugin=True +bAllowNetworkConnection=True +SecurityToken=FC2469BA449F3D6AFB81E9A6E6FCBE4B +bIncludeInShipping=False +bAllowExternalStartInShipping=False +bCompileAFSProject=False +bUseCompression=False +bLogFiles=False +bReportStats=False +ConnectionType=USBOnly +bUseManualIPAddress=False +ManualIPAddress= + diff --git a/sdks/unreal/tests/TestViewPkClient/Config/DefaultGame.ini b/sdks/unreal/tests/TestViewPkClient/Config/DefaultGame.ini new file mode 100644 index 00000000000..4754b466b8d --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Config/DefaultGame.ini @@ -0,0 +1,5 @@ +[/Script/EngineSettings.GeneralProjectSettings] +ProjectID=9B36AE4A4DF62F180A496F93BE6813D9 + +[/Script/CommonUI.CommonUISettings] +CommonButtonAcceptKeyHandling=TriggerClick diff --git a/sdks/unreal/tests/TestViewPkClient/Config/DefaultInput.ini b/sdks/unreal/tests/TestViewPkClient/Config/DefaultInput.ini new file mode 100644 index 00000000000..a72fda22b24 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Config/DefaultInput.ini @@ -0,0 +1,85 @@ +[/Script/Engine.InputSettings] +-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) +-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) +-AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) ++AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) +bAltEnterTogglesFullscreen=True +bF11TogglesFullscreen=True +bUseMouseForTouch=False +bEnableMouseSmoothing=True +bEnableFOVScaling=True +bCaptureMouseOnLaunch=True +bEnableLegacyInputScales=True +bEnableMotionControls=True +bFilterInputByPlatformUser=False +bShouldFlushPressedKeysOnViewportFocusLost=True +bEnableDynamicComponentInputBinding=True +bAlwaysShowTouchInterface=False +bShowConsoleOnFourFingerTap=True +bEnableGestureRecognizer=False +bUseAutocorrect=False +DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown +DefaultViewportMouseLockMode=LockOnCapture +FOVScale=0.011110 +DoubleClickTime=0.200000 +DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput +DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent +DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks +-ConsoleKeys=Tilde ++ConsoleKeys=Tilde + diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient.Target.cs b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient.Target.cs new file mode 100644 index 00000000000..32553925636 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient.Target.cs @@ -0,0 +1,15 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; +using System.Collections.Generic; + +public class TestViewPkClientTarget : TargetRules +{ + public TestViewPkClientTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Game; + DefaultBuildSettings = BuildSettingsVersion.V5; + + ExtraModuleNames.AddRange( new string[] { "TestViewPkClient" } ); + } +} diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/SpacetimeDBClient.g.cpp b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/SpacetimeDBClient.g.cpp new file mode 100644 index 00000000000..4e5f435f936 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/SpacetimeDBClient.g.cpp @@ -0,0 +1,675 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#include "ModuleBindings/SpacetimeDBClient.g.h" +#include "DBCache/WithBsatn.h" +#include "BSATN/UEBSATNHelpers.h" +#include "ModuleBindings/Tables/AllViewPkPlayersTable.g.h" +#include "ModuleBindings/Tables/SenderViewPkPlayersATable.g.h" +#include "ModuleBindings/Tables/SenderViewPkPlayersBTable.g.h" +#include "ModuleBindings/Tables/ViewPkMembershipTable.g.h" +#include "ModuleBindings/Tables/ViewPkMembershipSecondaryTable.g.h" +#include "ModuleBindings/Tables/ViewPkPlayerTable.g.h" + +UDbConnection::UDbConnection(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) +{ + Db = ObjectInitializer.CreateDefaultSubobject(this, TEXT("RemoteTables")); + Db->Initialize(); + + Reducers = ObjectInitializer.CreateDefaultSubobject(this, TEXT("RemoteReducers")); + Reducers->Conn = this; + + Procedures = ObjectInitializer.CreateDefaultSubobject(this, TEXT("RemoteProcedures")); + Procedures->Conn = this; + + RegisterTable(TEXT("all_view_pk_players"), Db->AllViewPkPlayers); + RegisterTable(TEXT("sender_view_pk_players_a"), Db->SenderViewPkPlayersA); + RegisterTable(TEXT("sender_view_pk_players_b"), Db->SenderViewPkPlayersB); + RegisterTable(TEXT("view_pk_membership"), Db->ViewPkMembership); + RegisterTable(TEXT("view_pk_membership_secondary"), Db->ViewPkMembershipSecondary); + RegisterTable(TEXT("view_pk_player"), Db->ViewPkPlayer); +} + +FContextBase::FContextBase(UDbConnection* InConn) +{ + Db = InConn->Db; + Reducers = InConn->Reducers; + Procedures = InConn->Procedures; + Conn = InConn; +} +bool FContextBase::IsActive() const +{ + return Conn->IsActive(); +} +void FContextBase::Disconnect() +{ + Conn->Disconnect(); +} +USubscriptionBuilder* FContextBase::SubscriptionBuilder() +{ + return Conn->SubscriptionBuilder(); +} +bool FContextBase::TryGetIdentity(FSpacetimeDBIdentity& OutIdentity) const +{ + return Conn->TryGetIdentity(OutIdentity); +} +FSpacetimeDBConnectionId FContextBase::GetConnectionId() const +{ + return Conn->GetConnectionId(); +} + +void URemoteTables::Initialize() +{ + + /** Creating tables */ + AllViewPkPlayers = NewObject(this); + SenderViewPkPlayersA = NewObject(this); + SenderViewPkPlayersB = NewObject(this); + ViewPkMembership = NewObject(this); + ViewPkMembershipSecondary = NewObject(this); + ViewPkPlayer = NewObject(this); + /**/ + + /** Initialization */ + AllViewPkPlayers->PostInitialize(); + SenderViewPkPlayersA->PostInitialize(); + SenderViewPkPlayersB->PostInitialize(); + ViewPkMembership->PostInitialize(); + ViewPkMembershipSecondary->PostInitialize(); + ViewPkPlayer->PostInitialize(); + /**/ +} + +void URemoteReducers::InsertViewPkMembership(const uint64 Id, const uint64 PlayerId) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FInsertViewPkMembershipArgs ReducerArgs(Id, PlayerId); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_view_pk_membership"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertViewPkMembership(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertViewPkMembership(const FReducerEventContext& Context, const UInsertViewPkMembershipReducer* Args) +{ + if (!OnInsertViewPkMembership.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertViewPkMembership")); + } + return false; + } + + OnInsertViewPkMembership.Broadcast(Context, Args->Id, Args->PlayerId); + return true; +} + +bool URemoteReducers::InvokeInsertViewPkMembershipWithArgs(const FReducerEventContext& Context, const FInsertViewPkMembershipArgs& Args) +{ + if (!OnInsertViewPkMembership.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertViewPkMembership")); + } + return false; + } + + OnInsertViewPkMembership.Broadcast(Context, Args.Id, Args.PlayerId); + return true; +} + +void URemoteReducers::InsertViewPkMembershipSecondary(const uint64 Id, const uint64 PlayerId) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FInsertViewPkMembershipSecondaryArgs ReducerArgs(Id, PlayerId); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_view_pk_membership_secondary"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertViewPkMembershipSecondary(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertViewPkMembershipSecondary(const FReducerEventContext& Context, const UInsertViewPkMembershipSecondaryReducer* Args) +{ + if (!OnInsertViewPkMembershipSecondary.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertViewPkMembershipSecondary")); + } + return false; + } + + OnInsertViewPkMembershipSecondary.Broadcast(Context, Args->Id, Args->PlayerId); + return true; +} + +bool URemoteReducers::InvokeInsertViewPkMembershipSecondaryWithArgs(const FReducerEventContext& Context, const FInsertViewPkMembershipSecondaryArgs& Args) +{ + if (!OnInsertViewPkMembershipSecondary.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertViewPkMembershipSecondary")); + } + return false; + } + + OnInsertViewPkMembershipSecondary.Broadcast(Context, Args.Id, Args.PlayerId); + return true; +} + +void URemoteReducers::InsertViewPkPlayer(const uint64 Id, const FString& Name) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FInsertViewPkPlayerArgs ReducerArgs(Id, Name); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("insert_view_pk_player"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::InsertViewPkPlayer(ReducerArgs)); } +} + +bool URemoteReducers::InvokeInsertViewPkPlayer(const FReducerEventContext& Context, const UInsertViewPkPlayerReducer* Args) +{ + if (!OnInsertViewPkPlayer.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertViewPkPlayer")); + } + return false; + } + + OnInsertViewPkPlayer.Broadcast(Context, Args->Id, Args->Name); + return true; +} + +bool URemoteReducers::InvokeInsertViewPkPlayerWithArgs(const FReducerEventContext& Context, const FInsertViewPkPlayerArgs& Args) +{ + if (!OnInsertViewPkPlayer.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for InsertViewPkPlayer")); + } + return false; + } + + OnInsertViewPkPlayer.Broadcast(Context, Args.Id, Args.Name); + return true; +} + +void URemoteReducers::UpdateViewPkPlayer(const uint64 Id, const FString& Name) +{ + if (!Conn) + { + UE_LOG(LogTemp, Error, TEXT("SpacetimeDB connection is null")); + return; + } + + FUpdateViewPkPlayerArgs ReducerArgs(Id, Name); + const uint32 RequestId = Conn->CallReducerTyped(TEXT("update_view_pk_player"), ReducerArgs); + if (RequestId != 0) { Conn->RegisterPendingTypedReducer(RequestId, FReducer::UpdateViewPkPlayer(ReducerArgs)); } +} + +bool URemoteReducers::InvokeUpdateViewPkPlayer(const FReducerEventContext& Context, const UUpdateViewPkPlayerReducer* Args) +{ + if (!OnUpdateViewPkPlayer.IsBound()) + { + // Handle unhandled reducer error + if (InternalOnUnhandledReducerError.IsBound()) + { + // TODO: Check Context.Event.Status for Failed/OutOfEnergy cases + // For now, just broadcast any error + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateViewPkPlayer")); + } + return false; + } + + OnUpdateViewPkPlayer.Broadcast(Context, Args->Id, Args->Name); + return true; +} + +bool URemoteReducers::InvokeUpdateViewPkPlayerWithArgs(const FReducerEventContext& Context, const FUpdateViewPkPlayerArgs& Args) +{ + if (!OnUpdateViewPkPlayer.IsBound()) + { + if (InternalOnUnhandledReducerError.IsBound()) + { + InternalOnUnhandledReducerError.Broadcast(Context, TEXT("No handler registered for UpdateViewPkPlayer")); + } + return false; + } + + OnUpdateViewPkPlayer.Broadcast(Context, Args.Id, Args.Name); + return true; +} + +void UDbConnection::PostInitProperties() +{ + Super::PostInitProperties(); + + // Connect OnUnhandledReducerError to Reducers.InternalOnUnhandledReducerError + if (Reducers) + { + Reducers->InternalOnUnhandledReducerError.AddDynamic(this, &UDbConnection::OnUnhandledReducerErrorHandler); + } + + // Connect OnUnhandledProcedureError to Procedures.InternalOnUnhandledProcedureError + if (Procedures) + { + Procedures->InternalOnUnhandledProcedureError.AddDynamic(this, &UDbConnection::OnUnhandledProcedureErrorHandler); + } +} + +UFUNCTION() +void UDbConnection::OnUnhandledReducerErrorHandler(const FReducerEventContext& Context, const FString& Error) +{ + if (OnUnhandledReducerError.IsBound()) + { + OnUnhandledReducerError.Broadcast(Context, Error); + } +} + +UFUNCTION() +void UDbConnection::OnUnhandledProcedureErrorHandler(const FProcedureEventContext& Context, const FString& Error) +{ + if (OnUnhandledProcedureError.IsBound()) + { + OnUnhandledProcedureError.Broadcast(Context, Error); + } +} + +void UDbConnection::RegisterPendingTypedReducer(uint32 RequestId, FReducer Reducer) +{ + Reducer.RequestId = RequestId; + PendingTypedReducers.Add(RequestId, MoveTemp(Reducer)); +} + +bool UDbConnection::TryGetPendingTypedReducer(uint32 RequestId, FReducer& OutReducer) const +{ + if (const FReducer* Found = PendingTypedReducers.Find(RequestId)) + { + OutReducer = *Found; + return true; + } + return false; +} + +bool UDbConnection::TryTakePendingTypedReducer(uint32 RequestId, FReducer& OutReducer) +{ + if (FReducer* Found = PendingTypedReducers.Find(RequestId)) + { + OutReducer = *Found; + PendingTypedReducers.Remove(RequestId); + return true; + } + return false; +} + +void UDbConnection::ReducerEvent(const FReducerEvent& Event) +{ + if (!Reducers) { return; } + + FReducer DecodedReducer; + if (!TryTakePendingTypedReducer(Event.RequestId, DecodedReducer)) + { + const FString ErrorMessage = FString::Printf(TEXT("Reducer result for unknown request_id %u"), Event.RequestId); + HandleProtocolViolation(ErrorMessage); + return; + } + + FTestViewPkClientReducerEvent ReducerEvent; + ReducerEvent.CallerConnectionId = Event.CallerConnectionId; + ReducerEvent.CallerIdentity = Event.CallerIdentity; + ReducerEvent.EnergyConsumed = Event.EnergyConsumed; + ReducerEvent.Status = Event.Status; + ReducerEvent.Timestamp = Event.Timestamp; + ReducerEvent.Reducer = DecodedReducer; + + FReducerEventContext Context(this, ReducerEvent); + + // Dispatch by typed reducer metadata + const FString& ReducerName = ReducerEvent.Reducer.ReducerName; + + if (ReducerName == TEXT("insert_view_pk_membership")) + { + FInsertViewPkMembershipArgs Args = ReducerEvent.Reducer.GetAsInsertViewPkMembership(); + Reducers->InvokeInsertViewPkMembershipWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_view_pk_membership_secondary")) + { + FInsertViewPkMembershipSecondaryArgs Args = ReducerEvent.Reducer.GetAsInsertViewPkMembershipSecondary(); + Reducers->InvokeInsertViewPkMembershipSecondaryWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("insert_view_pk_player")) + { + FInsertViewPkPlayerArgs Args = ReducerEvent.Reducer.GetAsInsertViewPkPlayer(); + Reducers->InvokeInsertViewPkPlayerWithArgs(Context, Args); + return; + } + if (ReducerName == TEXT("update_view_pk_player")) + { + FUpdateViewPkPlayerArgs Args = ReducerEvent.Reducer.GetAsUpdateViewPkPlayer(); + Reducers->InvokeUpdateViewPkPlayerWithArgs(Context, Args); + return; + } + + UE_LOG(LogTemp, Warning, TEXT("Unknown reducer: %s"), *ReducerName); +} + +void UDbConnection::ReducerEventFailed(const FReducerEvent& Event, const FString ErrorMessage) +{ + if (!Reducers) { return; } + + FTestViewPkClientReducerEvent ReducerEvent; + ReducerEvent.CallerConnectionId = Event.CallerConnectionId; + ReducerEvent.CallerIdentity = Event.CallerIdentity; + ReducerEvent.EnergyConsumed = Event.EnergyConsumed; + ReducerEvent.Status = Event.Status; + ReducerEvent.Timestamp = Event.Timestamp; + + FReducerEventContext Context(this, ReducerEvent); + + if (Reducers->InternalOnUnhandledReducerError.IsBound()) + { + Reducers->InternalOnUnhandledReducerError.Broadcast(Context, ErrorMessage); + } +} + +void UDbConnection::ProcedureEventFailed(const FProcedureEvent& Event, const FString ErrorMessage) +{ + if (!Procedures) { return; } + + FTestViewPkClientProcedureEvent ProcedureEvent; + ProcedureEvent.Status = FSpacetimeDBProcedureStatus::FromStatus(Event.Status); + ProcedureEvent.Timestamp = Event.Timestamp; + + FProcedureEventContext Context(this, ProcedureEvent); + + if (Procedures->InternalOnUnhandledProcedureError.IsBound()) + { + Procedures->InternalOnUnhandledProcedureError.Broadcast(Context, ErrorMessage); + } +} + +UDbConnectionBuilder* UDbConnection::Builder() +{ + return NewObject(); +} +// Added for creating subscriptions +USubscriptionBuilder* UDbConnection::SubscriptionBuilder() +{ + USubscriptionBuilder* Builder = NewObject(this); + Builder->Conn = this; + return Builder; +} +USubscriptionBuilder* USubscriptionBuilder::OnApplied(FOnSubscriptionApplied Callback) +{ + OnAppliedDelegateInternal = Callback; + return this; +} +USubscriptionBuilder* USubscriptionBuilder::OnError(FOnSubscriptionError Callback) +{ + OnErrorDelegateInternal = Callback; + return this; +} +USubscriptionHandle* USubscriptionBuilder::Subscribe() +{ + const TArray SqlQueries = PendingSqlQueries; + PendingSqlQueries.Empty(); + return Subscribe(SqlQueries); +} +USubscriptionHandle* USubscriptionBuilder::Subscribe(const TArray& SQL) +{ + USubscriptionHandle* Handle = NewObject(); + + // Store user callbacks on the handle + Handle->Conn = Conn; + Handle->OnAppliedDelegate = OnAppliedDelegateInternal; + Handle->OnErrorDelegate = OnErrorDelegateInternal; + + // Bind forwarding functions that will convert base contexts + FSubscriptionEventDelegate BaseApplied; + BaseApplied.BindUFunction(Handle, TEXT("ForwardOnApplied")); + OnAppliedBase(BaseApplied); + + FSubscriptionErrorDelegate BaseError; + BaseError.BindUFunction(Handle, TEXT("ForwardOnError")); + OnErrorBase(BaseError); + + SubscribeBase(SQL, Handle); + if (Conn) + { + Conn->StartSubscription(Handle); + } + return Handle; +} +USubscriptionHandle* USubscriptionBuilder::SubscribeToAllTables() +{ + return Subscribe(FQueryBuilder::AllTablesSqlQueries()); +} + +USubscriptionBuilder* USubscriptionBuilder::AddBlueprintQuery(const FBlueprintQuery& Query) +{ + PendingSqlQueries.Add(Query.Sql); + return this; +} + +USubscriptionBuilder* USubscriptionBuilder::AddAllViewPkPlayersQuery(const FAllViewPkPlayersQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddSenderViewPkPlayersAQuery(const FSenderViewPkPlayersAQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddSenderViewPkPlayersBQuery(const FSenderViewPkPlayersBQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddViewPkMembershipQuery(const FViewPkMembershipQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddViewPkMembershipSecondaryQuery(const FViewPkMembershipSecondaryQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionBuilder* USubscriptionBuilder::AddViewPkPlayerQuery(const FViewPkPlayerQuery& Query) +{ + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return AddBlueprintQuery(GenericQuery); +} + +USubscriptionHandle::USubscriptionHandle(UDbConnection* InConn) +{ + Conn = InConn; +} + +void USubscriptionHandle::ForwardOnApplied(const FSubscriptionEventContextBase& BaseCtx) +{ + if (OnAppliedDelegate.IsBound()) + { + FSubscriptionEventContext Ctx(Conn); + OnAppliedDelegate.Execute(Ctx); + } +} + +void USubscriptionHandle::ForwardOnError(const FErrorContextBase& BaseCtx) +{ + if (OnErrorDelegate.IsBound()) + { + FErrorContext Ctx(Conn, BaseCtx.Error); + OnErrorDelegate.Execute(Ctx); + } +} + + +// Cast from parent to child class +UDbConnectionBuilder* UDbConnectionBuilder::WithUri(const FString& InUri) +{ + return Cast(WithUriBase(InUri)); +} +UDbConnectionBuilder* UDbConnectionBuilder::WithDatabaseName(const FString& InName) +{ + return Cast(WithDatabaseNameBase(InName)); +} +UDbConnectionBuilder* UDbConnectionBuilder::WithToken(const FString& InToken) +{ + return Cast(WithTokenBase(InToken)); +} +UDbConnectionBuilder* UDbConnectionBuilder::WithCompression(const ESpacetimeDBCompression& InCompression) +{ + return Cast(WithCompressionBase(InCompression)); +} +UDbConnectionBuilder* UDbConnectionBuilder::OnConnect(FOnConnectDelegate Callback) +{ + OnConnectDelegateInternal = Callback; + return this; +} +UDbConnectionBuilder* UDbConnectionBuilder::OnConnectError(FOnConnectErrorDelegate Callback) +{ + return Cast(OnConnectErrorBase(Callback)); +} +UDbConnectionBuilder* UDbConnectionBuilder::OnDisconnect(FOnDisconnectDelegate Callback) +{ + OnDisconnectDelegateInternal = Callback; + return this; +} +UDbConnection* UDbConnectionBuilder::Build() +{ + UDbConnection* Connection = NewObject(); + + // Store delegates on the connection for later use + Connection->OnConnectDelegate = OnConnectDelegateInternal; + Connection->OnDisconnectDelegate = OnDisconnectDelegateInternal; + + // Wrap delegates so the base builder can bind them + FOnConnectBaseDelegate BaseConnect; + BaseConnect.BindUFunction(Connection, TEXT("ForwardOnConnect")); + Connection->SetOnConnectDelegate(BaseConnect); + OnConnectBase(BaseConnect); + + FOnDisconnectBaseDelegate BaseDisconnect; + BaseDisconnect.BindUFunction(Connection, TEXT("ForwardOnDisconnect")); + Connection->SetOnDisconnectDelegate(BaseDisconnect); + OnDisconnectBase(BaseDisconnect); + + return Cast(BuildConnection(Connection)); +} +void UDbConnection::ForwardOnConnect(UDbConnectionBase* BaseConnection, FSpacetimeDBIdentity InIdentity, const FString& InToken) +{ + if (OnConnectDelegate.IsBound()) + { + OnConnectDelegate.Execute(this, InIdentity, InToken); + } +} +void UDbConnection::ForwardOnDisconnect(UDbConnectionBase* BaseConnection, const FString& Error) +{ + PendingTypedReducers.Empty(); + if (OnDisconnectDelegate.IsBound()) + { + OnDisconnectDelegate.Execute(this, Error); + } +} + + +void UDbConnection::DbUpdate(const FDatabaseUpdateType& Update, const FSpacetimeDBEvent& Event) +{ + FTestViewPkClientEvent BaseEvent; + BaseEvent.Tag = Event.Tag; + + switch (Event.Tag) + { + case ESpacetimeDBEventTag::Reducer: + { + FReducerEvent ReducerEvent = Event.GetAsReducer(); + FReducer Reducer; + if (!TryGetPendingTypedReducer(ReducerEvent.RequestId, Reducer)) + { + const FString ErrorMessage = FString::Printf(TEXT("Reducer result for unknown request_id %u"), ReducerEvent.RequestId); + HandleProtocolViolation(ErrorMessage); + return; + } + BaseEvent = FTestViewPkClientEvent::Reducer(Reducer); + break; + } + + case ESpacetimeDBEventTag::SubscribeApplied: + BaseEvent = FTestViewPkClientEvent::SubscribeApplied(Event.GetAsSubscribeApplied()); + break; + + case ESpacetimeDBEventTag::UnsubscribeApplied: + BaseEvent = FTestViewPkClientEvent::UnsubscribeApplied(Event.GetAsUnsubscribeApplied()); + break; + + case ESpacetimeDBEventTag::Disconnected: + BaseEvent = FTestViewPkClientEvent::Disconnected(Event.GetAsDisconnected()); + break; + + case ESpacetimeDBEventTag::Transaction: + BaseEvent = FTestViewPkClientEvent::Transaction(Event.GetAsTransaction()); + break; + + case ESpacetimeDBEventTag::SubscribeError: + BaseEvent = FTestViewPkClientEvent::SubscribeError(Event.GetAsSubscribeError()); + break; + + case ESpacetimeDBEventTag::UnknownTransaction: + BaseEvent = FTestViewPkClientEvent::UnknownTransaction(Event.GetAsUnknownTransaction()); + break; + + default: + break; + } + + FEventContext Context(this, BaseEvent); + // Populate typed reducer args for convenience in table handlers + + ApplyRegisteredTableUpdates(Update, &Context); +} + diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/AllViewPkPlayersTable.g.cpp b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/AllViewPkPlayersTable.g.cpp new file mode 100644 index 00000000000..24c0c58e9f2 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/AllViewPkPlayersTable.g.cpp @@ -0,0 +1,42 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#include "ModuleBindings/Tables/AllViewPkPlayersTable.g.h" +#include "DBCache/UniqueIndex.h" +#include "DBCache/BTreeUniqueIndex.h" +#include "DBCache/ClientCache.h" +#include "DBCache/TableCache.h" + +void UAllViewPkPlayersTable::PostInitialize() +{ + /** Client cache init and setting up indexes*/ + Data = MakeShared>(); + + TSharedPtr> AllViewPkPlayersTable = Data->GetOrAdd(TableName); + + /***/ +} + +FTableAppliedDiff UAllViewPkPlayersTable::Update(TArray> InsertsRef, TArray> DeletesRef) +{ + FTableAppliedDiff Diff = BaseUpdate(InsertsRef, DeletesRef, Data, TableName); + + Diff.DeriveUpdatesByPrimaryKey( + [](const FViewPkPlayerType& Row) + { + return Row.Id; + } + ); + + return Diff; +} + +int32 UAllViewPkPlayersTable::Count() const +{ + return GetRowCountFromTable(Data, TableName); +} + +TArray UAllViewPkPlayersTable::Iter() const +{ + return GetAllRowsFromTable(Data, TableName); +} diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/SenderViewPkPlayersATable.g.cpp b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/SenderViewPkPlayersATable.g.cpp new file mode 100644 index 00000000000..5d772b8f853 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/SenderViewPkPlayersATable.g.cpp @@ -0,0 +1,42 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#include "ModuleBindings/Tables/SenderViewPkPlayersATable.g.h" +#include "DBCache/UniqueIndex.h" +#include "DBCache/BTreeUniqueIndex.h" +#include "DBCache/ClientCache.h" +#include "DBCache/TableCache.h" + +void USenderViewPkPlayersATable::PostInitialize() +{ + /** Client cache init and setting up indexes*/ + Data = MakeShared>(); + + TSharedPtr> SenderViewPkPlayersATable = Data->GetOrAdd(TableName); + + /***/ +} + +FTableAppliedDiff USenderViewPkPlayersATable::Update(TArray> InsertsRef, TArray> DeletesRef) +{ + FTableAppliedDiff Diff = BaseUpdate(InsertsRef, DeletesRef, Data, TableName); + + Diff.DeriveUpdatesByPrimaryKey( + [](const FViewPkPlayerType& Row) + { + return Row.Id; + } + ); + + return Diff; +} + +int32 USenderViewPkPlayersATable::Count() const +{ + return GetRowCountFromTable(Data, TableName); +} + +TArray USenderViewPkPlayersATable::Iter() const +{ + return GetAllRowsFromTable(Data, TableName); +} diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/SenderViewPkPlayersBTable.g.cpp b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/SenderViewPkPlayersBTable.g.cpp new file mode 100644 index 00000000000..a1d8d919897 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/SenderViewPkPlayersBTable.g.cpp @@ -0,0 +1,42 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#include "ModuleBindings/Tables/SenderViewPkPlayersBTable.g.h" +#include "DBCache/UniqueIndex.h" +#include "DBCache/BTreeUniqueIndex.h" +#include "DBCache/ClientCache.h" +#include "DBCache/TableCache.h" + +void USenderViewPkPlayersBTable::PostInitialize() +{ + /** Client cache init and setting up indexes*/ + Data = MakeShared>(); + + TSharedPtr> SenderViewPkPlayersBTable = Data->GetOrAdd(TableName); + + /***/ +} + +FTableAppliedDiff USenderViewPkPlayersBTable::Update(TArray> InsertsRef, TArray> DeletesRef) +{ + FTableAppliedDiff Diff = BaseUpdate(InsertsRef, DeletesRef, Data, TableName); + + Diff.DeriveUpdatesByPrimaryKey( + [](const FViewPkPlayerType& Row) + { + return Row.Id; + } + ); + + return Diff; +} + +int32 USenderViewPkPlayersBTable::Count() const +{ + return GetRowCountFromTable(Data, TableName); +} + +TArray USenderViewPkPlayersBTable::Iter() const +{ + return GetAllRowsFromTable(Data, TableName); +} diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/ViewPkMembershipSecondaryTable.g.cpp b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/ViewPkMembershipSecondaryTable.g.cpp new file mode 100644 index 00000000000..cb8a0acf957 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/ViewPkMembershipSecondaryTable.g.cpp @@ -0,0 +1,60 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#include "ModuleBindings/Tables/ViewPkMembershipSecondaryTable.g.h" +#include "DBCache/UniqueIndex.h" +#include "DBCache/BTreeUniqueIndex.h" +#include "DBCache/ClientCache.h" +#include "DBCache/TableCache.h" + +void UViewPkMembershipSecondaryTable::PostInitialize() +{ + /** Client cache init and setting up indexes*/ + Data = MakeShared>(); + + TSharedPtr> ViewPkMembershipSecondaryTable = Data->GetOrAdd(TableName); + ViewPkMembershipSecondaryTable->AddUniqueConstraint("id", [](const FViewPkMembershipSecondaryType& Row) -> const uint64& { + return Row.Id; }); + + Id = NewObject(this); + Id->SetCache(ViewPkMembershipSecondaryTable); + + // Register a new multi-key B-Tree index named "player_id" on the ViewPkMembershipSecondaryTable. + ViewPkMembershipSecondaryTable->AddMultiKeyBTreeIndex>( + TEXT("player_id"), + [](const FViewPkMembershipSecondaryType& Row) + { + // This tuple is stored in the B-Tree index for fast composite key lookups. + return MakeTuple(Row.PlayerId); + } + ); + + PlayerId = NewObject(this); + PlayerId->SetCache(ViewPkMembershipSecondaryTable); + + /***/ +} + +FTableAppliedDiff UViewPkMembershipSecondaryTable::Update(TArray> InsertsRef, TArray> DeletesRef) +{ + FTableAppliedDiff Diff = BaseUpdate(InsertsRef, DeletesRef, Data, TableName); + + Diff.DeriveUpdatesByPrimaryKey( + [](const FViewPkMembershipSecondaryType& Row) + { + return Row.Id; + } + ); + + return Diff; +} + +int32 UViewPkMembershipSecondaryTable::Count() const +{ + return GetRowCountFromTable(Data, TableName); +} + +TArray UViewPkMembershipSecondaryTable::Iter() const +{ + return GetAllRowsFromTable(Data, TableName); +} diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/ViewPkMembershipTable.g.cpp b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/ViewPkMembershipTable.g.cpp new file mode 100644 index 00000000000..630ba663912 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/ViewPkMembershipTable.g.cpp @@ -0,0 +1,60 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#include "ModuleBindings/Tables/ViewPkMembershipTable.g.h" +#include "DBCache/UniqueIndex.h" +#include "DBCache/BTreeUniqueIndex.h" +#include "DBCache/ClientCache.h" +#include "DBCache/TableCache.h" + +void UViewPkMembershipTable::PostInitialize() +{ + /** Client cache init and setting up indexes*/ + Data = MakeShared>(); + + TSharedPtr> ViewPkMembershipTable = Data->GetOrAdd(TableName); + ViewPkMembershipTable->AddUniqueConstraint("id", [](const FViewPkMembershipType& Row) -> const uint64& { + return Row.Id; }); + + Id = NewObject(this); + Id->SetCache(ViewPkMembershipTable); + + // Register a new multi-key B-Tree index named "player_id" on the ViewPkMembershipTable. + ViewPkMembershipTable->AddMultiKeyBTreeIndex>( + TEXT("player_id"), + [](const FViewPkMembershipType& Row) + { + // This tuple is stored in the B-Tree index for fast composite key lookups. + return MakeTuple(Row.PlayerId); + } + ); + + PlayerId = NewObject(this); + PlayerId->SetCache(ViewPkMembershipTable); + + /***/ +} + +FTableAppliedDiff UViewPkMembershipTable::Update(TArray> InsertsRef, TArray> DeletesRef) +{ + FTableAppliedDiff Diff = BaseUpdate(InsertsRef, DeletesRef, Data, TableName); + + Diff.DeriveUpdatesByPrimaryKey( + [](const FViewPkMembershipType& Row) + { + return Row.Id; + } + ); + + return Diff; +} + +int32 UViewPkMembershipTable::Count() const +{ + return GetRowCountFromTable(Data, TableName); +} + +TArray UViewPkMembershipTable::Iter() const +{ + return GetAllRowsFromTable(Data, TableName); +} diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/ViewPkPlayerTable.g.cpp b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/ViewPkPlayerTable.g.cpp new file mode 100644 index 00000000000..45cebcda47f --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/ModuleBindings/Tables/ViewPkPlayerTable.g.cpp @@ -0,0 +1,47 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#include "ModuleBindings/Tables/ViewPkPlayerTable.g.h" +#include "DBCache/UniqueIndex.h" +#include "DBCache/BTreeUniqueIndex.h" +#include "DBCache/ClientCache.h" +#include "DBCache/TableCache.h" + +void UViewPkPlayerTable::PostInitialize() +{ + /** Client cache init and setting up indexes*/ + Data = MakeShared>(); + + TSharedPtr> ViewPkPlayerTable = Data->GetOrAdd(TableName); + ViewPkPlayerTable->AddUniqueConstraint("id", [](const FViewPkPlayerType& Row) -> const uint64& { + return Row.Id; }); + + Id = NewObject(this); + Id->SetCache(ViewPkPlayerTable); + + /***/ +} + +FTableAppliedDiff UViewPkPlayerTable::Update(TArray> InsertsRef, TArray> DeletesRef) +{ + FTableAppliedDiff Diff = BaseUpdate(InsertsRef, DeletesRef, Data, TableName); + + Diff.DeriveUpdatesByPrimaryKey( + [](const FViewPkPlayerType& Row) + { + return Row.Id; + } + ); + + return Diff; +} + +int32 UViewPkPlayerTable::Count() const +{ + return GetRowCountFromTable(Data, TableName); +} + +TArray UViewPkPlayerTable::Iter() const +{ + return GetAllRowsFromTable(Data, TableName); +} diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/Tests/CommonTestFunctions.cpp b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/Tests/CommonTestFunctions.cpp new file mode 100644 index 00000000000..611e076ce65 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/Tests/CommonTestFunctions.cpp @@ -0,0 +1,188 @@ +#include "Tests/CommonTestFunctions.h" + +void UTestHelperDelegates::HandleConnect(UDbConnection* Conn, FSpacetimeDBIdentity Identity, const FString& Token) +{ + if (OnConnect) + { + OnConnect(Conn, Identity, Token); + } +} + +void UTestHelperDelegates::HandleConnectError(const FString& Error) +{ + if (OnConnectError) + { + OnConnectError(Error); + } +} + +void UTestHelperDelegates::HandleDisconnect(UDbConnection* Conn, const FString& Error) +{ + if (OnDisconnect) + { + OnDisconnect(Conn, Error); + } +} + +void UTestHelperDelegates::HandleSubscriptionApplied(FSubscriptionEventContext Ctx) +{ + if (OnSubscriptionApplied) + { + OnSubscriptionApplied(Ctx); + } +} + +void UTestHelperDelegates::HandleSubscriptionError(FErrorContext Ctx) +{ + if (OnSubscriptionError) + { + OnSubscriptionError(Ctx); + } +} + +UDbConnection* ConnectThen( + TSharedPtr Counter, + const FString& TestName, + TFunction Callback) +{ + FString DbName; + FString DbNameError; + if (!GetDbName(DbName, DbNameError)) + { + return nullptr; + } + + UCredentials::Init(TestName); + + const FString ConnectTestName = FString::Printf(TEXT("on_connect_%s"), *TestName); + Counter->Register(ConnectTestName); + + UTestHelperDelegates* TestHelper = NewObject(); + TestHelper->AddToRoot(); + + TestHelper->OnConnect = [Counter, Callback, ConnectTestName](UDbConnection* Conn, FSpacetimeDBIdentity, const FString&) + { + Callback(Conn); + Counter->MarkSuccess(ConnectTestName); + }; + TestHelper->OnConnectError = [Counter, ConnectTestName](const FString& Error) + { + Counter->MarkFailure(ConnectTestName, FString::Printf(TEXT("Connect error: %s"), *Error)); + }; + TestHelper->OnDisconnect = [Counter, ConnectTestName](UDbConnection*, const FString& Error) + { + Counter->MarkFailure(ConnectTestName, FString::Printf(TEXT("Disconnected: %s"), *Error)); + }; + + FOnConnectDelegate ConnectDelegate; + BIND_DELEGATE_SAFE(ConnectDelegate, TestHelper, UTestHelperDelegates, HandleConnect); + + FOnDisconnectDelegate DisconnectDelegate; + BIND_DELEGATE_SAFE(DisconnectDelegate, TestHelper, UTestHelperDelegates, HandleDisconnect); + + FOnConnectErrorDelegate ErrorDelegate; + BIND_DELEGATE_SAFE(ErrorDelegate, TestHelper, UTestHelperDelegates, HandleConnectError); + + UDbConnection* Conn = UDbConnection::Builder() + ->WithUri(GetServerUrl()) + ->WithDatabaseName(DbName) + ->OnConnect(ConnectDelegate) + ->OnDisconnect(DisconnectDelegate) + ->OnConnectError(ErrorDelegate) + ->Build(); + + if (Conn) + { + Conn->SetAutoTicking(true); + Conn->AddToRoot(); + } + + return Conn; +} + +bool GetDbName(FString& DBName, FString& Error) +{ + const FString DbNameEnv = FPlatformMisc::GetEnvironmentVariable(TEXT("SPACETIME_SDK_TEST_DB_NAME")); + if (!DbNameEnv.IsEmpty()) + { + DBName = DbNameEnv; + return true; + } + + FString CmdValue; + if (FParse::Value(FCommandLine::Get(), TEXT("-SpacetimeDbName="), CmdValue)) + { + DBName = CmdValue; + return true; + } + + Error = TEXT("No DB name. Pass -SpacetimeDbName= or set SPACETIME_SDK_TEST_DB_NAME."); + return false; +} + +FString GetServerUrl() +{ + const FString ServerUrlEnv = FPlatformMisc::GetEnvironmentVariable(TEXT("SPACETIME_SDK_TEST_SERVER_URL")); + if (!ServerUrlEnv.IsEmpty()) + { + return ServerUrlEnv; + } + + FString CmdValue; + if (FParse::Value(FCommandLine::Get(), TEXT("-SpacetimeServerUrl="), CmdValue)) + { + return CmdValue; + } + + return TEXT("localhost:3000"); +} + +bool ValidateParameterConfig(FAutomationTestBase* Test) +{ + FString DbName; + FString DbNameError; + if (!GetDbName(DbName, DbNameError)) + { + Test->AddError(DbNameError); + return false; + } + return true; +} + +bool ReportTestResult(FAutomationTestBase& Test, const FString& TestName, TSharedPtr Counter, bool bTimedOut) +{ + bool bHasFailure = false; + + for (const FString& Msg : Counter->GetFailures()) + { + TESTLOG_FAIL(Test, TEXT("Operation - %s"), *Msg); + bHasFailure = true; + } + for (const FString& Msg : Counter->GetSuccesses()) + { + TESTLOG_SUCCESS(Test, TEXT("Operation - %s"), *Msg); + } + + if (bTimedOut) + { + TESTLOG_FAIL(Test, TEXT("Timed out waiting for operation")); + bHasFailure = true; + } + if (Counter->IsAborted()) + { + TESTLOG_FAIL(Test, TEXT("Test aborted due to precondition failure")); + bHasFailure = true; + } + + if (!bHasFailure) + { + TESTLOG_SUCCESS(Test, TEXT("Test Success")); + Test.TestTrue(*TestName, true); + } + else + { + TESTLOG_FAIL(Test, TEXT("Test failed")); + } + + return !bHasFailure; +} diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/Tests/SpacetimeFullClientTests.cpp b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/Tests/SpacetimeFullClientTests.cpp new file mode 100644 index 00000000000..da064e154f2 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/Tests/SpacetimeFullClientTests.cpp @@ -0,0 +1,251 @@ +#include "Tests/SpacetimeFullClientTests.h" + +#include "Tests/CommonTestFunctions.h" + +#include "ModuleBindings/SpacetimeDBClient.g.h" +#include "ModuleBindings/Tables/AllViewPkPlayersTable.g.h" +#include "ModuleBindings/Tables/SenderViewPkPlayersATable.g.h" + +namespace +{ +static FString ToFString(const std::string& InSql) +{ + return FString(UTF8_TO_TCHAR(InSql.c_str())); +} + +class FWaitForTestCounter : public IAutomationLatentCommand +{ +public: + FWaitForTestCounter(FAutomationTestBase& InTest, const FString& InTestName, TSharedPtr InCounter, double InStartTime) + : Test(InTest) + , TestName(InTestName) + , Counter(MoveTemp(InCounter)) + , StartTime(InStartTime) + {} + + virtual bool Update() override + { + const double Timeout = 90.0; + const bool bStopped = Counter->IsAborted() || Counter->IsComplete() || (FPlatformTime::Seconds() - StartTime > Timeout); + const bool bTimedOut = (FPlatformTime::Seconds() - StartTime > Timeout); + + if (bStopped) + { + ReportTestResult(Test, TestName, Counter, bTimedOut); + } + + return bStopped; + } + +private: + FAutomationTestBase& Test; + FString TestName; + TSharedPtr Counter; + double StartTime = 0.0; +}; +} + +bool FViewPkQueryBuilderDirectSourcesTest::RunTest(const FString& Parameters) +{ + FQueryBuilder Q; + + TestEqual( + TEXT("all_view_pk_players sql"), + ToFString(Q.From.AllViewPkPlayers().into_sql()), + TEXT("SELECT * FROM \"all_view_pk_players\"") + ); + TestEqual( + TEXT("sender_view_pk_players_a sql"), + ToFString(Q.From.SenderViewPkPlayersA().into_sql()), + TEXT("SELECT * FROM \"sender_view_pk_players_a\"") + ); + TestEqual( + TEXT("sender_view_pk_players_b sql"), + ToFString(Q.From.SenderViewPkPlayersB().into_sql()), + TEXT("SELECT * FROM \"sender_view_pk_players_b\"") + ); + TestEqual( + TEXT("view_pk_membership sql"), + ToFString(Q.From.ViewPkMembership().into_sql()), + TEXT("SELECT * FROM \"view_pk_membership\"") + ); + TestEqual( + TEXT("view_pk_membership_secondary sql"), + ToFString(Q.From.ViewPkMembershipSecondary().into_sql()), + TEXT("SELECT * FROM \"view_pk_membership_secondary\"") + ); + TestEqual( + TEXT("view_pk_player sql"), + ToFString(Q.From.ViewPkPlayer().into_sql()), + TEXT("SELECT * FROM \"view_pk_player\"") + ); + + USubscriptionBuilder* Builder = NewObject(); + Builder->AddQuery([](const FQueryBuilder& Query) + { + return Query.From.AllViewPkPlayers(); + })->AddQuery([](const FQueryBuilder& Query) + { + return Query.From.ViewPkPlayer().Where([](const FViewPkPlayerCols& Cols) + { + return Cols.Id.Eq(static_cast(1)); + }); + }); + + TestTrue(TEXT("typed query builder accepted pk view sources"), true); + return true; +} + +bool FViewPkQueryBuilderSemijoinTest::RunTest(const FString& Parameters) +{ + FQueryBuilder Q; + + const FString MembershipJoinSql = ToFString( + Q.From.ViewPkMembership().RightSemijoin(Q.From.AllViewPkPlayers(), [](const FViewPkMembershipIxCols& Membership, const FAllViewPkPlayersIxCols& Player) + { + return Membership.PlayerId.Eq(Player.Id); + }).into_sql() + ); + + const FString SenderViewsJoinSql = ToFString( + Q.From.SenderViewPkPlayersA().RightSemijoin(Q.From.SenderViewPkPlayersB(), [](const FSenderViewPkPlayersAIxCols& LeftView, const FSenderViewPkPlayersBIxCols& RightView) + { + return LeftView.Id.Eq(RightView.Id); + }).into_sql() + ); + + TestEqual( + TEXT("membership to all_view_pk_players semijoin sql"), + MembershipJoinSql, + TEXT("SELECT \"all_view_pk_players\".* FROM \"view_pk_membership\" JOIN \"all_view_pk_players\" ON \"view_pk_membership\".\"player_id\" = \"all_view_pk_players\".\"id\"") + ); + + TestEqual( + TEXT("sender views semijoin sql"), + SenderViewsJoinSql, + TEXT("SELECT \"sender_view_pk_players_b\".* FROM \"sender_view_pk_players_a\" JOIN \"sender_view_pk_players_b\" ON \"sender_view_pk_players_a\".\"id\" = \"sender_view_pk_players_b\".\"id\"") + ); + + return true; +} + +bool FViewPkSubscribeAllTablesTest::RunTest(const FString& Parameters) +{ + const TArray Sql = FQueryBuilder::AllTablesSqlQueries(); + + TestEqual(TEXT("all tables count"), Sql.Num(), 6); + TestTrue(TEXT("all tables include all_view_pk_players"), Sql.Contains(TEXT("SELECT * FROM \"all_view_pk_players\""))); + TestTrue(TEXT("all tables include sender_view_pk_players_a"), Sql.Contains(TEXT("SELECT * FROM \"sender_view_pk_players_a\""))); + TestTrue(TEXT("all tables include sender_view_pk_players_b"), Sql.Contains(TEXT("SELECT * FROM \"sender_view_pk_players_b\""))); + TestTrue(TEXT("all tables include view_pk_membership"), Sql.Contains(TEXT("SELECT * FROM \"view_pk_membership\""))); + TestTrue(TEXT("all tables include view_pk_membership_secondary"), Sql.Contains(TEXT("SELECT * FROM \"view_pk_membership_secondary\""))); + TestTrue(TEXT("all tables include view_pk_player"), Sql.Contains(TEXT("SELECT * FROM \"view_pk_player\""))); + + return true; +} + +bool FViewPkRuntimeUpdatePairingTest::RunTest(const FString& Parameters) +{ + const FString RuntimeTestName = TEXT("ViewPkRuntimeUpdatePairing"); + + if (!ValidateParameterConfig(this)) + { + return false; + } + + UViewPkRuntimeHandler* Handler = CreateTestHandler(); + Handler->Counter->Register(TEXT("subscription_applied")); + Handler->Counter->Register(TEXT("all_view_pk_players_insert")); + Handler->Counter->Register(TEXT("all_view_pk_players_update")); + Handler->Counter->Register(TEXT("sender_view_pk_players_a_insert")); + Handler->Counter->Register(TEXT("sender_view_pk_players_a_update")); + + ConnectThen(Handler->Counter, RuntimeTestName, [this, Handler](UDbConnection* Conn) + { + Conn->Db->AllViewPkPlayers->OnInsert.AddDynamic(Handler, &UViewPkRuntimeHandler::OnAllViewPkPlayersInsert); + Conn->Db->AllViewPkPlayers->OnUpdate.AddDynamic(Handler, &UViewPkRuntimeHandler::OnAllViewPkPlayersUpdate); + Conn->Db->AllViewPkPlayers->OnDelete.AddDynamic(Handler, &UViewPkRuntimeHandler::OnAllViewPkPlayersDelete); + + Conn->Db->SenderViewPkPlayersA->OnInsert.AddDynamic(Handler, &UViewPkRuntimeHandler::OnSenderViewPkPlayersAInsert); + Conn->Db->SenderViewPkPlayersA->OnUpdate.AddDynamic(Handler, &UViewPkRuntimeHandler::OnSenderViewPkPlayersAUpdate); + Conn->Db->SenderViewPkPlayersA->OnDelete.AddDynamic(Handler, &UViewPkRuntimeHandler::OnSenderViewPkPlayersADelete); + + UTestHelperDelegates* SubHelper = NewObject(); + SubHelper->AddToRoot(); + + SubHelper->OnSubscriptionApplied = [this, Handler, Conn](FSubscriptionEventContext Ctx) + { + if (Conn->Db->AllViewPkPlayers->Count() != 0 || Conn->Db->SenderViewPkPlayersA->Count() != 0) + { + Handler->Counter->MarkFailure(TEXT("subscription_applied"), TEXT("Expected empty view caches before reducers")); + Handler->Counter->Abort(); + return; + } + + Handler->Counter->MarkSuccess(TEXT("subscription_applied")); + + Ctx.Reducers->InsertViewPkPlayer(Handler->ExpectedId, Handler->InitialName); + Ctx.Reducers->InsertViewPkMembership(10, Handler->ExpectedId); + Ctx.Reducers->UpdateViewPkPlayer(Handler->ExpectedId, Handler->UpdatedName); + }; + + SubHelper->OnSubscriptionError = [Handler](FErrorContext Ctx) + { + Handler->Counter->MarkFailure(TEXT("subscription_applied"), FString::Printf(TEXT("Subscription error: %s"), *Ctx.Error)); + Handler->Counter->Abort(); + }; + + FOnSubscriptionApplied AppliedDelegate; + BIND_DELEGATE_SAFE(AppliedDelegate, SubHelper, UTestHelperDelegates, HandleSubscriptionApplied); + + FOnSubscriptionError ErrorDelegate; + BIND_DELEGATE_SAFE(ErrorDelegate, SubHelper, UTestHelperDelegates, HandleSubscriptionError); + + Conn->SubscriptionBuilder() + ->OnApplied(AppliedDelegate) + ->OnError(ErrorDelegate) + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.AllViewPkPlayers(); + }) + ->AddQuery([](const FQueryBuilder& Q) + { + return Q.From.SenderViewPkPlayersA(); + }) + ->Subscribe(); + }); + + ADD_LATENT_AUTOMATION_COMMAND(FWaitForTestCounter(*this, RuntimeTestName, Handler->Counter, FPlatformTime::Seconds())); + return true; +} + +bool FViewPkBlueprintQueryBuilderFlowTest::RunTest(const FString& Parameters) +{ + FAllViewPkPlayersQuery Query = UQueryBuilderBlueprintLibrary::FromAllViewPkPlayers(); + + TestEqual( + TEXT("blueprint all_view_pk_players base sql"), + Query.Sql, + TEXT("SELECT * FROM \"all_view_pk_players\"") + ); + + Query = UQueryBuilderBlueprintLibrary::AllViewPkPlayersWhere( + Query, + UQueryBuilderBlueprintLibrary::StringEqual( + UQueryBuilderBlueprintLibrary::AllViewPkPlayersName(Query), + TEXT("Alice"))); + TestEqual( + TEXT("blueprint pk view filtered sql"), + Query.Sql, + TEXT("SELECT * FROM \"all_view_pk_players\" WHERE (\"all_view_pk_players\".\"name\" = 'Alice')") + ); + TestEqual(TEXT("blueprint pk view result source"), Query.ResultSourceName, TEXT("all_view_pk_players")); + + USubscriptionBuilder* Builder = NewObject(); + USubscriptionHandle* Handle = Builder->AddAllViewPkPlayersQuery(Query)->Subscribe(); + TestNotNull(TEXT("blueprint pk view handle"), Handle); + TestEqual(TEXT("blueprint pk view builder sql count"), Handle->GetQuerySqls().Num(), 1); + TestEqual(TEXT("blueprint pk view builder sql"), Handle->GetQuerySqls()[0], Query.Sql); + + return true; +} diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/Tests/TestCounter.cpp b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/Tests/TestCounter.cpp new file mode 100644 index 00000000000..332e61064b2 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/Tests/TestCounter.cpp @@ -0,0 +1,87 @@ +#include "Tests/TestCounter.h" + +void FTestCounter::Register(const FString& TestName) +{ + FScopeLock Lock(&Mutex); + if (Registered.Contains(TestName)) + { + UE_LOG(LogTemp, Error, TEXT("Duplicate test name: %s"), *TestName); + } + Registered.Add(TestName); +} + +void FTestCounter::MarkSuccess(const FString& TestName) +{ + FScopeLock Lock(&Mutex); + Outcomes.Add(TestName, { true, FString() }); + UE_LOG(LogTemp, Log, TEXT("Operation success: %s"), *TestName); +} + +void FTestCounter::MarkFailure(const FString& TestName, const FString& Error) +{ + FScopeLock Lock(&Mutex); + Outcomes.Add(TestName, { false, Error }); + UE_LOG(LogTemp, Error, TEXT("Operation failed: %s, %s"), *TestName, *Error); +} + +bool FTestCounter::IsComplete() const +{ + FScopeLock Lock(&Mutex); + return Outcomes.Num() == Registered.Num(); +} + +bool FTestCounter::AllSucceeded() const +{ + FScopeLock Lock(&Mutex); + if (Outcomes.Num() != Registered.Num()) + { + return false; + } + for (const auto& Elem : Outcomes) + { + if (!Elem.Value.bSuccess) + { + return false; + } + } + return true; +} + +TArray FTestCounter::GetFailures() const +{ + FScopeLock Lock(&Mutex); + TArray Failures; + for (const FString& Name : Registered) + { + const FTestOutcome* Outcome = Outcomes.Find(Name); + if (!Outcome) + { + Failures.Add(FString::Printf(TEXT("TIMEOUT: %s"), *Name)); + } + else if (!Outcome->bSuccess) + { + Failures.Add(FString::Printf(TEXT("FAILED: %s: %s"), *Name, *Outcome->Error)); + } + } + return Failures; +} + +TArray FTestCounter::GetSuccesses() const +{ + FScopeLock Lock(&Mutex); + TArray Successes; + for (const FString& Name : Registered) + { + const FTestOutcome* Outcome = Outcomes.Find(Name); + if (Outcome && Outcome->bSuccess) + { + Successes.Add(FString::Printf(TEXT("SUCCESS: %s"), *Name)); + } + } + return Successes; +} + +void FTestCounter::Abort() +{ + bAborted = true; +} \ No newline at end of file diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/Tests/TestHandler.cpp b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/Tests/TestHandler.cpp new file mode 100644 index 00000000000..ad1614f45db --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Private/Tests/TestHandler.cpp @@ -0,0 +1,88 @@ +#include "Tests/TestHandler.h" + +namespace +{ +bool ValidateInsertedRow(UViewPkRuntimeHandler* Handler, const FString& StepName, const FViewPkPlayerType& Value) +{ + if (Value.Id != Handler->ExpectedId) + { + Handler->Counter->MarkFailure(StepName, FString::Printf(TEXT("Unexpected id %llu"), static_cast(Value.Id))); + Handler->Counter->Abort(); + return false; + } + if (Value.Name != Handler->InitialName) + { + Handler->Counter->MarkFailure(StepName, FString::Printf(TEXT("Unexpected insert name %s"), *Value.Name)); + Handler->Counter->Abort(); + return false; + } + return true; +} + +bool ValidateUpdatedRows(UViewPkRuntimeHandler* Handler, const FString& StepName, const FViewPkPlayerType& OldValue, const FViewPkPlayerType& NewValue) +{ + if (OldValue.Id != Handler->ExpectedId || NewValue.Id != Handler->ExpectedId) + { + Handler->Counter->MarkFailure(StepName, TEXT("Unexpected row id during update")); + Handler->Counter->Abort(); + return false; + } + if (OldValue.Name != Handler->InitialName) + { + Handler->Counter->MarkFailure(StepName, FString::Printf(TEXT("Unexpected old name %s"), *OldValue.Name)); + Handler->Counter->Abort(); + return false; + } + if (NewValue.Name != Handler->UpdatedName) + { + Handler->Counter->MarkFailure(StepName, FString::Printf(TEXT("Unexpected new name %s"), *NewValue.Name)); + Handler->Counter->Abort(); + return false; + } + return true; +} +} + +void UViewPkRuntimeHandler::OnAllViewPkPlayersInsert(const FEventContext&, const FViewPkPlayerType& Value) +{ + if (ValidateInsertedRow(this, TEXT("all_view_pk_players_insert"), Value)) + { + Counter->MarkSuccess(TEXT("all_view_pk_players_insert")); + } +} + +void UViewPkRuntimeHandler::OnAllViewPkPlayersUpdate(const FEventContext&, const FViewPkPlayerType& OldValue, const FViewPkPlayerType& NewValue) +{ + if (ValidateUpdatedRows(this, TEXT("all_view_pk_players_update"), OldValue, NewValue)) + { + Counter->MarkSuccess(TEXT("all_view_pk_players_update")); + } +} + +void UViewPkRuntimeHandler::OnAllViewPkPlayersDelete(const FEventContext&, const FViewPkPlayerType&) +{ + Counter->MarkFailure(TEXT("all_view_pk_players_update"), TEXT("Unexpected delete for all_view_pk_players")); + Counter->Abort(); +} + +void UViewPkRuntimeHandler::OnSenderViewPkPlayersAInsert(const FEventContext&, const FViewPkPlayerType& Value) +{ + if (ValidateInsertedRow(this, TEXT("sender_view_pk_players_a_insert"), Value)) + { + Counter->MarkSuccess(TEXT("sender_view_pk_players_a_insert")); + } +} + +void UViewPkRuntimeHandler::OnSenderViewPkPlayersAUpdate(const FEventContext&, const FViewPkPlayerType& OldValue, const FViewPkPlayerType& NewValue) +{ + if (ValidateUpdatedRows(this, TEXT("sender_view_pk_players_a_update"), OldValue, NewValue)) + { + Counter->MarkSuccess(TEXT("sender_view_pk_players_a_update")); + } +} + +void UViewPkRuntimeHandler::OnSenderViewPkPlayersADelete(const FEventContext&, const FViewPkPlayerType&) +{ + Counter->MarkFailure(TEXT("sender_view_pk_players_a_update"), TEXT("Unexpected delete for sender_view_pk_players_a")); + Counter->Abort(); +} diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/ReducerBase.g.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/ReducerBase.g.h new file mode 100644 index 00000000000..d0f1a4547d0 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/ReducerBase.g.h @@ -0,0 +1,18 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ReducerBase.g.generated.h" + +// Abstract Reducer base class +UCLASS(Abstract, BlueprintType) +class TESTVIEWPKCLIENT_API UReducerBase : public UObject +{ + GENERATED_BODY() + +public: + virtual ~UReducerBase() = default; +}; + diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Reducers/InsertViewPkMembership.g.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Reducers/InsertViewPkMembership.g.h new file mode 100644 index 00000000000..31d069e5894 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Reducers/InsertViewPkMembership.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "InsertViewPkMembership.g.generated.h" + +// Reducer arguments struct for InsertViewPkMembership +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FInsertViewPkMembershipArgs +{ + GENERATED_BODY() + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 Id = 0; + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 PlayerId = 0; + + FInsertViewPkMembershipArgs() = default; + + FInsertViewPkMembershipArgs(const uint64& InId, const uint64& InPlayerId) + : Id(InId), PlayerId(InPlayerId) + {} + + + FORCEINLINE bool operator==(const FInsertViewPkMembershipArgs& Other) const + { + return Id == Other.Id && PlayerId == Other.PlayerId; + } + FORCEINLINE bool operator!=(const FInsertViewPkMembershipArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FInsertViewPkMembershipArgs, Id, PlayerId); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API UInsertViewPkMembershipReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 Id = 0; + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 PlayerId = 0; + +}; + + diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Reducers/InsertViewPkMembershipSecondary.g.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Reducers/InsertViewPkMembershipSecondary.g.h new file mode 100644 index 00000000000..ca330a28f06 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Reducers/InsertViewPkMembershipSecondary.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "InsertViewPkMembershipSecondary.g.generated.h" + +// Reducer arguments struct for InsertViewPkMembershipSecondary +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FInsertViewPkMembershipSecondaryArgs +{ + GENERATED_BODY() + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 Id = 0; + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 PlayerId = 0; + + FInsertViewPkMembershipSecondaryArgs() = default; + + FInsertViewPkMembershipSecondaryArgs(const uint64& InId, const uint64& InPlayerId) + : Id(InId), PlayerId(InPlayerId) + {} + + + FORCEINLINE bool operator==(const FInsertViewPkMembershipSecondaryArgs& Other) const + { + return Id == Other.Id && PlayerId == Other.PlayerId; + } + FORCEINLINE bool operator!=(const FInsertViewPkMembershipSecondaryArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FInsertViewPkMembershipSecondaryArgs, Id, PlayerId); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API UInsertViewPkMembershipSecondaryReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 Id = 0; + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 PlayerId = 0; + +}; + + diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Reducers/InsertViewPkPlayer.g.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Reducers/InsertViewPkPlayer.g.h new file mode 100644 index 00000000000..f52e692d386 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Reducers/InsertViewPkPlayer.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "InsertViewPkPlayer.g.generated.h" + +// Reducer arguments struct for InsertViewPkPlayer +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FInsertViewPkPlayerArgs +{ + GENERATED_BODY() + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 Id = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FString Name; + + FInsertViewPkPlayerArgs() = default; + + FInsertViewPkPlayerArgs(const uint64& InId, const FString& InName) + : Id(InId), Name(InName) + {} + + + FORCEINLINE bool operator==(const FInsertViewPkPlayerArgs& Other) const + { + return Id == Other.Id && Name == Other.Name; + } + FORCEINLINE bool operator!=(const FInsertViewPkPlayerArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FInsertViewPkPlayerArgs, Id, Name); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API UInsertViewPkPlayerReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 Id = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FString Name; + +}; + + diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Reducers/UpdateViewPkPlayer.g.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Reducers/UpdateViewPkPlayer.g.h new file mode 100644 index 00000000000..204e288af84 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Reducers/UpdateViewPkPlayer.g.h @@ -0,0 +1,58 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "UpdateViewPkPlayer.g.generated.h" + +// Reducer arguments struct for UpdateViewPkPlayer +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FUpdateViewPkPlayerArgs +{ + GENERATED_BODY() + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 Id = 0; + + UPROPERTY(BlueprintReadWrite, Category="SpacetimeDB") + FString Name; + + FUpdateViewPkPlayerArgs() = default; + + FUpdateViewPkPlayerArgs(const uint64& InId, const FString& InName) + : Id(InId), Name(InName) + {} + + + FORCEINLINE bool operator==(const FUpdateViewPkPlayerArgs& Other) const + { + return Id == Other.Id && Name == Other.Name; + } + FORCEINLINE bool operator!=(const FUpdateViewPkPlayerArgs& Other) const + { + return !(*this == Other); + } +}; + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_STRUCT(FUpdateViewPkPlayerArgs, Id, Name); +} + +// Reducer class for internal dispatching +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API UUpdateViewPkPlayerReducer : public UReducerBase +{ + GENERATED_BODY() + +public: + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 Id = 0; + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FString Name; + +}; + + diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/SpacetimeDBClient.g.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/SpacetimeDBClient.g.h new file mode 100644 index 00000000000..64698b56ef9 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/SpacetimeDBClient.g.h @@ -0,0 +1,1994 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +// This was generated using spacetimedb cli version 2.6.0 (commit d8a2be99ffd985b539bf111ec0214639e2b81e41). + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Connection/Callback.h" +#include "Connection/DbConnectionBase.h" +#include "Connection/DbConnectionBuilder.h" +#include "Connection/Subscription.h" +#include "Kismet/BlueprintFunctionLibrary.h" +#include "ModuleBindings/ReducerBase.g.h" +#include "ModuleBindings/Reducers/InsertViewPkMembership.g.h" +#include "ModuleBindings/Reducers/InsertViewPkMembershipSecondary.g.h" +#include "ModuleBindings/Reducers/InsertViewPkPlayer.g.h" +#include "ModuleBindings/Reducers/UpdateViewPkPlayer.g.h" +#include "ModuleBindings/Types/ViewPkMembershipSecondaryType.g.h" +#include "ModuleBindings/Types/ViewPkMembershipType.g.h" +#include "ModuleBindings/Types/ViewPkPlayerType.g.h" +#include "QueryBuilder/query_builder.h" +#include "Types/Builtins.h" +#include "SpacetimeDBClient.g.generated.h" + +// Forward declarations +class UDbConnection; +class URemoteTables; +class URemoteReducers; +class URemoteProcedures; +class USubscriptionBuilder; +class USubscriptionHandle; + +/** Forward declaration for tables */ +class UAllViewPkPlayersTable; +class USenderViewPkPlayersATable; +class USenderViewPkPlayersBTable; +class UViewPkMembershipTable; +class UViewPkMembershipSecondaryTable; +class UViewPkPlayerTable; +/***/ + +// Delegates using the generated connection type. These wrap the base +// delegates defined in the SDK so that projects can work directly with +// UDbConnection without manual casting in user code. +DECLARE_DYNAMIC_DELEGATE_ThreeParams( + FOnConnectDelegate, + UDbConnection*, Connection, + FSpacetimeDBIdentity, Identity, + const FString&, Token); + +DECLARE_DYNAMIC_DELEGATE_TwoParams( + FOnDisconnectDelegate, + UDbConnection*, Connection, + const FString&, Error); + + +// Context classes for event handling + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FContextBase +{ + GENERATED_BODY() + + FContextBase() : Db(nullptr), Reducers(nullptr), Procedures(nullptr), Conn(nullptr) {}; + FContextBase(UDbConnection* InConn); + + UPROPERTY(BlueprintReadOnly, Category = "SpacetimeDB") + URemoteTables* Db; + + UPROPERTY(BlueprintReadOnly, Category = "SpacetimeDB") + URemoteReducers* Reducers; + + UPROPERTY(BlueprintReadOnly, Category = "SpacetimeDB") + URemoteProcedures* Procedures; + + bool IsActive() const; + void Disconnect(); + bool TryGetIdentity(FSpacetimeDBIdentity& OutIdentity) const; + FSpacetimeDBConnectionId GetConnectionId() const; + USubscriptionBuilder* SubscriptionBuilder(); + +protected: + UPROPERTY() + UDbConnection* Conn; + +}; + +UCLASS() +class TESTVIEWPKCLIENT_API UContextBaseBpLib : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +private: + UFUNCTION(BlueprintPure, Category="SpacetimeDB") + static URemoteTables* GetDb(const FContextBase& Ctx) { return Ctx.Db; } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB") + static URemoteReducers* GetReducers(const FContextBase& Ctx) { return Ctx.Reducers; } + + static URemoteProcedures* GetProcedures(const FContextBase& Ctx) { return Ctx.Procedures; } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB") + static bool IsActive(const FContextBase& Ctx) { return Ctx.IsActive(); } +}; + +UENUM(BlueprintType, Category = "SpacetimeDB") +enum class EReducerTag : uint8 +{ + InsertViewPkMembership, + InsertViewPkMembershipSecondary, + InsertViewPkPlayer, + UpdateViewPkPlayer +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FReducer +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly, Category = "SpacetimeDB") + EReducerTag Tag = static_cast(0); + + TVariant Data; + + // Optional metadata + UPROPERTY(BlueprintReadOnly, Category = "SpacetimeDB") + FString ReducerName; + uint32 ReducerId = 0; + uint32 RequestId = 0; + + static FReducer InsertViewPkMembership(const FInsertViewPkMembershipArgs& Value) + { + FReducer Out; + Out.Tag = EReducerTag::InsertViewPkMembership; + Out.Data.Set(Value); + Out.ReducerName = TEXT("insert_view_pk_membership"); + return Out; + } + + FORCEINLINE bool IsInsertViewPkMembership() const { return Tag == EReducerTag::InsertViewPkMembership; } + FORCEINLINE FInsertViewPkMembershipArgs GetAsInsertViewPkMembership() const + { + ensureMsgf(IsInsertViewPkMembership(), TEXT("Reducer does not hold InsertViewPkMembership!")); + return Data.Get(); + } + + static FReducer InsertViewPkMembershipSecondary(const FInsertViewPkMembershipSecondaryArgs& Value) + { + FReducer Out; + Out.Tag = EReducerTag::InsertViewPkMembershipSecondary; + Out.Data.Set(Value); + Out.ReducerName = TEXT("insert_view_pk_membership_secondary"); + return Out; + } + + FORCEINLINE bool IsInsertViewPkMembershipSecondary() const { return Tag == EReducerTag::InsertViewPkMembershipSecondary; } + FORCEINLINE FInsertViewPkMembershipSecondaryArgs GetAsInsertViewPkMembershipSecondary() const + { + ensureMsgf(IsInsertViewPkMembershipSecondary(), TEXT("Reducer does not hold InsertViewPkMembershipSecondary!")); + return Data.Get(); + } + + static FReducer InsertViewPkPlayer(const FInsertViewPkPlayerArgs& Value) + { + FReducer Out; + Out.Tag = EReducerTag::InsertViewPkPlayer; + Out.Data.Set(Value); + Out.ReducerName = TEXT("insert_view_pk_player"); + return Out; + } + + FORCEINLINE bool IsInsertViewPkPlayer() const { return Tag == EReducerTag::InsertViewPkPlayer; } + FORCEINLINE FInsertViewPkPlayerArgs GetAsInsertViewPkPlayer() const + { + ensureMsgf(IsInsertViewPkPlayer(), TEXT("Reducer does not hold InsertViewPkPlayer!")); + return Data.Get(); + } + + static FReducer UpdateViewPkPlayer(const FUpdateViewPkPlayerArgs& Value) + { + FReducer Out; + Out.Tag = EReducerTag::UpdateViewPkPlayer; + Out.Data.Set(Value); + Out.ReducerName = TEXT("update_view_pk_player"); + return Out; + } + + FORCEINLINE bool IsUpdateViewPkPlayer() const { return Tag == EReducerTag::UpdateViewPkPlayer; } + FORCEINLINE FUpdateViewPkPlayerArgs GetAsUpdateViewPkPlayer() const + { + ensureMsgf(IsUpdateViewPkPlayer(), TEXT("Reducer does not hold UpdateViewPkPlayer!")); + return Data.Get(); + } + + FORCEINLINE bool operator==(const FReducer& Other) const + { + if (Tag != Other.Tag || ReducerId != Other.ReducerId || RequestId != Other.RequestId || ReducerName != Other.ReducerName) return false; + switch (Tag) + { + case EReducerTag::InsertViewPkMembership: + return GetAsInsertViewPkMembership() == Other.GetAsInsertViewPkMembership(); + case EReducerTag::InsertViewPkMembershipSecondary: + return GetAsInsertViewPkMembershipSecondary() == Other.GetAsInsertViewPkMembershipSecondary(); + case EReducerTag::InsertViewPkPlayer: + return GetAsInsertViewPkPlayer() == Other.GetAsInsertViewPkPlayer(); + case EReducerTag::UpdateViewPkPlayer: + return GetAsUpdateViewPkPlayer() == Other.GetAsUpdateViewPkPlayer(); + default: return false; + } + } + FORCEINLINE bool operator!=(const FReducer& Other) const { return !(*this == Other); } +}; + +UCLASS() +class TESTVIEWPKCLIENT_API UReducerBpLib : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +private: + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertViewPkMembership(const FInsertViewPkMembershipArgs& Value) { + return FReducer::InsertViewPkMembership(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertViewPkMembership(const FReducer& Reducer) { return Reducer.IsInsertViewPkMembership(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertViewPkMembershipArgs GetAsInsertViewPkMembership(const FReducer& Reducer) { + return Reducer.GetAsInsertViewPkMembership(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertViewPkMembershipSecondary(const FInsertViewPkMembershipSecondaryArgs& Value) { + return FReducer::InsertViewPkMembershipSecondary(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertViewPkMembershipSecondary(const FReducer& Reducer) { return Reducer.IsInsertViewPkMembershipSecondary(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertViewPkMembershipSecondaryArgs GetAsInsertViewPkMembershipSecondary(const FReducer& Reducer) { + return Reducer.GetAsInsertViewPkMembershipSecondary(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer InsertViewPkPlayer(const FInsertViewPkPlayerArgs& Value) { + return FReducer::InsertViewPkPlayer(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsInsertViewPkPlayer(const FReducer& Reducer) { return Reducer.IsInsertViewPkPlayer(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FInsertViewPkPlayerArgs GetAsInsertViewPkPlayer(const FReducer& Reducer) { + return Reducer.GetAsInsertViewPkPlayer(); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|Reducer") + static FReducer UpdateViewPkPlayer(const FUpdateViewPkPlayerArgs& Value) { + return FReducer::UpdateViewPkPlayer(Value); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static bool IsUpdateViewPkPlayer(const FReducer& Reducer) { return Reducer.IsUpdateViewPkPlayer(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|Reducer") + static FUpdateViewPkPlayerArgs GetAsUpdateViewPkPlayer(const FReducer& Reducer) { + return Reducer.GetAsUpdateViewPkPlayer(); + } +}; + +/** Metadata describing a reducer run. */ +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FTestViewPkClientReducerEvent +{ + GENERATED_BODY() + + /** Timestamp for when the reducer executed */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBTimestamp Timestamp; + + /** Result status of the reducer */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBStatus Status; + + /** Identity that initiated the call */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBIdentity CallerIdentity; + + /** Connection ID for the caller */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBConnectionId CallerConnectionId; + + /** Energy consumed while executing */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FEnergyQuantaType EnergyConsumed; + + /** Detailed call information */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FReducer Reducer; + + FORCEINLINE bool operator==(const FTestViewPkClientReducerEvent& Other) const + { + return Status == Other.Status && Timestamp == Other.Timestamp && CallerIdentity == Other.CallerIdentity && + CallerConnectionId == Other.CallerConnectionId && EnergyConsumed == Other.EnergyConsumed && + Reducer == Other.Reducer; + } + + FORCEINLINE bool operator!=(const FTestViewPkClientReducerEvent& Other) const + { + return !(*this == Other); + } +}; + +// No procedures defined in this module. +/** Metadata describing a procedure run. */ +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FTestViewPkClientProcedureEvent +{ + GENERATED_BODY() + + /** Timestamp for when the procedure executed */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBTimestamp Timestamp; + + /** Result status of the procedure */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBProcedureStatus Status; + + /** Identity that initiated the call */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB") + FSpacetimeDBTimeDuration TotalHostExecutionDuration; + + FTestViewPkClientProcedureEvent() { + } + FTestViewPkClientProcedureEvent(FProcedureEvent Event) { + Timestamp = Event.Timestamp; + Status = FSpacetimeDBProcedureStatus::FromStatus(Event.Status); + TotalHostExecutionDuration = Event.TotalHostExecutionDuration; + } + FORCEINLINE bool operator==(const FTestViewPkClientProcedureEvent& Other) const + { + return Status == Other.Status && Timestamp == Other.Timestamp && + TotalHostExecutionDuration == Other.TotalHostExecutionDuration; + } + + FORCEINLINE bool operator!=(const FTestViewPkClientProcedureEvent& Other) const + { + return !(*this == Other); + } +}; + +/** Represents event with variant message data. */ +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FTestViewPkClientEvent +{ + GENERATED_BODY() + + /** Tagged union holding reducer call, unit events, or error string */ + TVariant MessageData; + + /** Type tag indicating what this event represents */ + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + ESpacetimeDBEventTag Tag = ESpacetimeDBEventTag::UnknownTransaction; + + /** === Static factory methods ===*/ + static FTestViewPkClientEvent Reducer(const FReducer& Value) + { + FTestViewPkClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::Reducer; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestViewPkClientEvent SubscribeApplied(const FSpacetimeDBUnit& Value) + { + FTestViewPkClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::SubscribeApplied; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestViewPkClientEvent UnsubscribeApplied(const FSpacetimeDBUnit& Value) + { + FTestViewPkClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::UnsubscribeApplied; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestViewPkClientEvent Disconnected(const FSpacetimeDBUnit& Value) + { + FTestViewPkClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::Disconnected; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestViewPkClientEvent Transaction(const FSpacetimeDBUnit& Value) + { + FTestViewPkClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::Transaction; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestViewPkClientEvent SubscribeError(const FString& Value) + { + FTestViewPkClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::SubscribeError; + Obj.MessageData.Set(Value); + return Obj; + } + + static FTestViewPkClientEvent UnknownTransaction(const FSpacetimeDBUnit& Value) + { + FTestViewPkClientEvent Obj; + Obj.Tag = ESpacetimeDBEventTag::UnknownTransaction; + Obj.MessageData.Set(Value); + return Obj; + } + + FORCEINLINE bool IsReducer() const { return Tag == ESpacetimeDBEventTag::Reducer; } + FORCEINLINE FReducer GetAsReducer() const + { + ensureMsgf(IsReducer(), TEXT("MessageData does not hold Reducer!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsSubscribeApplied() const { return Tag == ESpacetimeDBEventTag::SubscribeApplied; } + FORCEINLINE FSpacetimeDBUnit GetAsSubscribeApplied() const + { + ensureMsgf(IsSubscribeApplied(), TEXT("MessageData does not hold SubscribeApplied!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsUnsubscribeApplied() const { return Tag == ESpacetimeDBEventTag::UnsubscribeApplied; } + FORCEINLINE FSpacetimeDBUnit GetAsUnsubscribeApplied() const + { + ensureMsgf(IsUnsubscribeApplied(), TEXT("MessageData does not hold UnsubscribeApplied!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsDisconnected() const { return Tag == ESpacetimeDBEventTag::Disconnected; } + FORCEINLINE FSpacetimeDBUnit GetAsDisconnected() const + { + ensureMsgf(IsDisconnected(), TEXT("MessageData does not hold Disconnected!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsTransaction() const { return Tag == ESpacetimeDBEventTag::Transaction; } + FORCEINLINE FSpacetimeDBUnit GetAsTransaction() const + { + ensureMsgf(IsTransaction(), TEXT("MessageData does not hold Transaction!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsSubscribeError() const { return Tag == ESpacetimeDBEventTag::SubscribeError; } + FORCEINLINE FString GetAsSubscribeError() const + { + ensureMsgf(IsSubscribeError(), TEXT("MessageData does not hold SubscribeError!")); + return MessageData.Get(); + } + + FORCEINLINE bool IsUnknownTransaction() const { return Tag == ESpacetimeDBEventTag::UnknownTransaction; } + FORCEINLINE FSpacetimeDBUnit GetAsUnknownTransaction() const + { + ensureMsgf(IsUnknownTransaction(), TEXT("MessageData does not hold UnknownTransaction!")); + return MessageData.Get(); + } + + FORCEINLINE bool operator==(const FTestViewPkClientEvent& Other) const + { + if (Tag != Other.Tag) return false; + switch (Tag) + { + case ESpacetimeDBEventTag::Reducer: return GetAsReducer() == Other.GetAsReducer(); + case ESpacetimeDBEventTag::SubscribeApplied: return GetAsSubscribeApplied() == Other.GetAsSubscribeApplied(); + case ESpacetimeDBEventTag::UnsubscribeApplied: return GetAsUnsubscribeApplied() == Other.GetAsUnsubscribeApplied(); + case ESpacetimeDBEventTag::Disconnected: return GetAsDisconnected() == Other.GetAsDisconnected(); + case ESpacetimeDBEventTag::Transaction: return GetAsTransaction() == Other.GetAsTransaction(); + case ESpacetimeDBEventTag::SubscribeError: return GetAsSubscribeError() == Other.GetAsSubscribeError(); + case ESpacetimeDBEventTag::UnknownTransaction: return GetAsUnknownTransaction() == Other.GetAsUnknownTransaction(); + default: return false; + } + } + + FORCEINLINE bool operator!=(const FTestViewPkClientEvent& Other) const + { + return !(*this == Other); + } +}; + +UCLASS() +class TESTVIEWPKCLIENT_API UTestViewPkClientEventBpLib : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +private: + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestViewPkClientEvent") + static FTestViewPkClientEvent Reducer(const FReducer& InValue) + { + return FTestViewPkClientEvent::Reducer(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestViewPkClientEvent") + static FTestViewPkClientEvent SubscribeApplied(const FSpacetimeDBUnit& InValue) + { + return FTestViewPkClientEvent::SubscribeApplied(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestViewPkClientEvent") + static FTestViewPkClientEvent UnsubscribeApplied(const FSpacetimeDBUnit& InValue) + { + return FTestViewPkClientEvent::UnsubscribeApplied(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestViewPkClientEvent") + static FTestViewPkClientEvent Disconnected(const FSpacetimeDBUnit& InValue) + { + return FTestViewPkClientEvent::Disconnected(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestViewPkClientEvent") + static FTestViewPkClientEvent Transaction(const FSpacetimeDBUnit& InValue) + { + return FTestViewPkClientEvent::Transaction(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestViewPkClientEvent") + static FTestViewPkClientEvent SubscribeError(const FString& InValue) + { + return FTestViewPkClientEvent::SubscribeError(InValue); + } + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB|TestViewPkClientEvent") + static FTestViewPkClientEvent UnknownTransaction(const FSpacetimeDBUnit& InValue) + { + return FTestViewPkClientEvent::UnknownTransaction(InValue); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewPkClientEvent") + static bool IsReducer(const FTestViewPkClientEvent& Event) { return Event.IsReducer(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewPkClientEvent") + static bool IsSubscribeApplied(const FTestViewPkClientEvent& Event) { return Event.IsSubscribeApplied(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewPkClientEvent") + static bool IsUnsubscribeApplied(const FTestViewPkClientEvent& Event) { return Event.IsUnsubscribeApplied(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewPkClientEvent") + static bool IsDisconnected(const FTestViewPkClientEvent& Event) { return Event.IsDisconnected(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewPkClientEvent") + static bool IsTransaction(const FTestViewPkClientEvent& Event) { return Event.IsTransaction(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewPkClientEvent") + static bool IsSubscribeError(const FTestViewPkClientEvent& Event) { return Event.IsSubscribeError(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewPkClientEvent") + static bool IsUnknownTransaction(const FTestViewPkClientEvent& Event) { return Event.IsUnknownTransaction(); } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewPkClientEvent") + static FReducer GetAsReducer(const FTestViewPkClientEvent& Event) + { + return Event.GetAsReducer(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewPkClientEvent") + static FSpacetimeDBUnit GetAsSubscribeApplied(const FTestViewPkClientEvent& Event) + { + return Event.GetAsSubscribeApplied(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewPkClientEvent") + static FSpacetimeDBUnit GetAsUnsubscribeApplied(const FTestViewPkClientEvent& Event) + { + return Event.GetAsUnsubscribeApplied(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewPkClientEvent") + static FSpacetimeDBUnit GetAsDisconnected(const FTestViewPkClientEvent& Event) + { + return Event.GetAsDisconnected(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewPkClientEvent") + static FSpacetimeDBUnit GetAsTransaction(const FTestViewPkClientEvent& Event) + { + return Event.GetAsTransaction(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewPkClientEvent") + static FString GetAsSubscribeError(const FTestViewPkClientEvent& Event) + { + return Event.GetAsSubscribeError(); + } + + UFUNCTION(BlueprintPure, Category = "SpacetimeDB|TestViewPkClientEvent") + static FSpacetimeDBUnit GetAsUnknownTransaction(const FTestViewPkClientEvent& Event) + { + return Event.GetAsUnknownTransaction(); + } + +}; + + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FEventContext : public FContextBase +{ + GENERATED_BODY() + + FEventContext() = default; + FEventContext(UDbConnection* InConn, const FTestViewPkClientEvent& InEvent) : FContextBase(InConn), Event(InEvent) {} + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestViewPkClientEvent Event; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FReducerEventContext : public FContextBase +{ + GENERATED_BODY() + + FReducerEventContext() = default; + FReducerEventContext(UDbConnection* InConn, FTestViewPkClientReducerEvent InEvent) : FContextBase(InConn), Event(InEvent) {} + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestViewPkClientReducerEvent Event; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FProcedureEventContext : public FContextBase +{ + GENERATED_BODY() + + FProcedureEventContext() = default; + FProcedureEventContext(UDbConnection* InConn, FTestViewPkClientProcedureEvent InEvent) : FContextBase(InConn), Event(InEvent) {} + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FTestViewPkClientProcedureEvent Event; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FErrorContext : public FContextBase +{ + GENERATED_BODY() + + FErrorContext() = default; + FErrorContext(UDbConnection* InConn, const FString& InError) : FContextBase(InConn), Error(InError) {} + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + FString Error; + +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FSubscriptionEventContext : public FContextBase +{ + GENERATED_BODY() + + FSubscriptionEventContext() = default; + FSubscriptionEventContext(UDbConnection* InConn) : FContextBase(InConn) {} + +}; + +DECLARE_DYNAMIC_DELEGATE_OneParam( + FOnSubscriptionApplied, + FSubscriptionEventContext, Context); + +DECLARE_DYNAMIC_DELEGATE_OneParam( + FOnSubscriptionError, + FErrorContext, Context); + +// RemoteTables class +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API URemoteTables : public UObject +{ + GENERATED_BODY() + +public: + void Initialize(); + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UAllViewPkPlayersTable* AllViewPkPlayers; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + USenderViewPkPlayersATable* SenderViewPkPlayersA; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + USenderViewPkPlayersBTable* SenderViewPkPlayersB; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UViewPkMembershipTable* ViewPkMembership; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UViewPkMembershipSecondaryTable* ViewPkMembershipSecondary; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + UViewPkPlayerTable* ViewPkPlayer; + +}; + +// RemoteReducers class +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API URemoteReducers : public UObject +{ + GENERATED_BODY() + +public: + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertViewPkMembershipHandler, + const FReducerEventContext&, Context, + uint64, Id, + uint64, PlayerId + ); + // NOTE: Not exposed to Blueprint because uint64, uint64 types are not Blueprint-compatible + FInsertViewPkMembershipHandler OnInsertViewPkMembership; + + // NOTE: Not exposed to Blueprint because uint64, uint64 types are not Blueprint-compatible + void InsertViewPkMembership(const uint64 Id, const uint64 PlayerId); + + bool InvokeInsertViewPkMembership(const FReducerEventContext& Context, const UInsertViewPkMembershipReducer* Args); + bool InvokeInsertViewPkMembershipWithArgs(const FReducerEventContext& Context, const FInsertViewPkMembershipArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertViewPkMembershipSecondaryHandler, + const FReducerEventContext&, Context, + uint64, Id, + uint64, PlayerId + ); + // NOTE: Not exposed to Blueprint because uint64, uint64 types are not Blueprint-compatible + FInsertViewPkMembershipSecondaryHandler OnInsertViewPkMembershipSecondary; + + // NOTE: Not exposed to Blueprint because uint64, uint64 types are not Blueprint-compatible + void InsertViewPkMembershipSecondary(const uint64 Id, const uint64 PlayerId); + + bool InvokeInsertViewPkMembershipSecondary(const FReducerEventContext& Context, const UInsertViewPkMembershipSecondaryReducer* Args); + bool InvokeInsertViewPkMembershipSecondaryWithArgs(const FReducerEventContext& Context, const FInsertViewPkMembershipSecondaryArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FInsertViewPkPlayerHandler, + const FReducerEventContext&, Context, + uint64, Id, + const FString&, Name + ); + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FInsertViewPkPlayerHandler OnInsertViewPkPlayer; + + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + void InsertViewPkPlayer(const uint64 Id, const FString& Name); + + bool InvokeInsertViewPkPlayer(const FReducerEventContext& Context, const UInsertViewPkPlayerReducer* Args); + bool InvokeInsertViewPkPlayerWithArgs(const FReducerEventContext& Context, const FInsertViewPkPlayerArgs& Args); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FUpdateViewPkPlayerHandler, + const FReducerEventContext&, Context, + uint64, Id, + const FString&, Name + ); + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FUpdateViewPkPlayerHandler OnUpdateViewPkPlayer; + + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + void UpdateViewPkPlayer(const uint64 Id, const FString& Name); + + bool InvokeUpdateViewPkPlayer(const FReducerEventContext& Context, const UUpdateViewPkPlayerReducer* Args); + bool InvokeUpdateViewPkPlayerWithArgs(const FReducerEventContext& Context, const FUpdateViewPkPlayerArgs& Args); + + // Internal error handling + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FInternalOnUnhandledReducerError, const FReducerEventContext&, Context, const FString&, Error); + FInternalOnUnhandledReducerError InternalOnUnhandledReducerError; + +private: + + friend UDbConnection; + + UPROPERTY() + class UDbConnection* Conn; +}; + +// RemoteProcedures class +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API URemoteProcedures : public UObject +{ + GENERATED_BODY() + +public: + + // Internal error handling + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FInternalOnUnhandledProcedureError, const FProcedureEventContext&, Context, const FString&, Error); + FInternalOnUnhandledProcedureError InternalOnUnhandledProcedureError; + +private: + + friend UDbConnection; + + UPROPERTY() + class UDbConnection* Conn; +}; + +// QueryBuilder types +struct TESTVIEWPKCLIENT_API FAllViewPkPlayersCols; +struct TESTVIEWPKCLIENT_API FAllViewPkPlayersIxCols; +struct TESTVIEWPKCLIENT_API FSenderViewPkPlayersACols; +struct TESTVIEWPKCLIENT_API FSenderViewPkPlayersAIxCols; +struct TESTVIEWPKCLIENT_API FSenderViewPkPlayersBCols; +struct TESTVIEWPKCLIENT_API FSenderViewPkPlayersBIxCols; +struct TESTVIEWPKCLIENT_API FViewPkMembershipCols; +struct TESTVIEWPKCLIENT_API FViewPkMembershipIxCols; +struct TESTVIEWPKCLIENT_API FViewPkMembershipSecondaryCols; +struct TESTVIEWPKCLIENT_API FViewPkMembershipSecondaryIxCols; +struct TESTVIEWPKCLIENT_API FViewPkPlayerCols; +struct TESTVIEWPKCLIENT_API FViewPkPlayerIxCols; + +struct TESTVIEWPKCLIENT_API FAllViewPkPlayersCols +{ + explicit FAllViewPkPlayersCols(const char* TableName) + : Id(TableName, "id"), Name(TableName, "name") {} + + ::SpacetimeDB::query_builder::Col Id; + ::SpacetimeDB::query_builder::Col Name; +}; + +struct TESTVIEWPKCLIENT_API FAllViewPkPlayersIxCols +{ + explicit FAllViewPkPlayersIxCols(const char* TableName) + : Id(TableName, "id") {} + + ::SpacetimeDB::query_builder::IxCol Id; +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTVIEWPKCLIENT_API FSenderViewPkPlayersACols +{ + explicit FSenderViewPkPlayersACols(const char* TableName) + : Id(TableName, "id"), Name(TableName, "name") {} + + ::SpacetimeDB::query_builder::Col Id; + ::SpacetimeDB::query_builder::Col Name; +}; + +struct TESTVIEWPKCLIENT_API FSenderViewPkPlayersAIxCols +{ + explicit FSenderViewPkPlayersAIxCols(const char* TableName) + : Id(TableName, "id") {} + + ::SpacetimeDB::query_builder::IxCol Id; +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTVIEWPKCLIENT_API FSenderViewPkPlayersBCols +{ + explicit FSenderViewPkPlayersBCols(const char* TableName) + : Id(TableName, "id"), Name(TableName, "name") {} + + ::SpacetimeDB::query_builder::Col Id; + ::SpacetimeDB::query_builder::Col Name; +}; + +struct TESTVIEWPKCLIENT_API FSenderViewPkPlayersBIxCols +{ + explicit FSenderViewPkPlayersBIxCols(const char* TableName) + : Id(TableName, "id") {} + + ::SpacetimeDB::query_builder::IxCol Id; +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTVIEWPKCLIENT_API FViewPkMembershipCols +{ + explicit FViewPkMembershipCols(const char* TableName) + : Id(TableName, "id"), PlayerId(TableName, "player_id") {} + + ::SpacetimeDB::query_builder::Col Id; + ::SpacetimeDB::query_builder::Col PlayerId; +}; + +struct TESTVIEWPKCLIENT_API FViewPkMembershipIxCols +{ + explicit FViewPkMembershipIxCols(const char* TableName) + : Id(TableName, "id"), PlayerId(TableName, "player_id") {} + + ::SpacetimeDB::query_builder::IxCol Id; + ::SpacetimeDB::query_builder::IxCol PlayerId; +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTVIEWPKCLIENT_API FViewPkMembershipSecondaryCols +{ + explicit FViewPkMembershipSecondaryCols(const char* TableName) + : Id(TableName, "id"), PlayerId(TableName, "player_id") {} + + ::SpacetimeDB::query_builder::Col Id; + ::SpacetimeDB::query_builder::Col PlayerId; +}; + +struct TESTVIEWPKCLIENT_API FViewPkMembershipSecondaryIxCols +{ + explicit FViewPkMembershipSecondaryIxCols(const char* TableName) + : Id(TableName, "id"), PlayerId(TableName, "player_id") {} + + ::SpacetimeDB::query_builder::IxCol Id; + ::SpacetimeDB::query_builder::IxCol PlayerId; +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTVIEWPKCLIENT_API FViewPkPlayerCols +{ + explicit FViewPkPlayerCols(const char* TableName) + : Id(TableName, "id"), Name(TableName, "name") {} + + ::SpacetimeDB::query_builder::Col Id; + ::SpacetimeDB::query_builder::Col Name; +}; + +struct TESTVIEWPKCLIENT_API FViewPkPlayerIxCols +{ + explicit FViewPkPlayerIxCols(const char* TableName) + : Id(TableName, "id") {} + + ::SpacetimeDB::query_builder::IxCol Id; +}; + +namespace SpacetimeDB::query_builder +{ + template<> + struct CanBeLookupTable> : std::true_type {}; +} + +struct TESTVIEWPKCLIENT_API FFrom +{ + [[nodiscard]] ::SpacetimeDB::query_builder::Table AllViewPkPlayers() const { return ::SpacetimeDB::query_builder::Table("all_view_pk_players", FAllViewPkPlayersCols("all_view_pk_players"), FAllViewPkPlayersIxCols("all_view_pk_players")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table SenderViewPkPlayersA() const { return ::SpacetimeDB::query_builder::Table("sender_view_pk_players_a", FSenderViewPkPlayersACols("sender_view_pk_players_a"), FSenderViewPkPlayersAIxCols("sender_view_pk_players_a")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table SenderViewPkPlayersB() const { return ::SpacetimeDB::query_builder::Table("sender_view_pk_players_b", FSenderViewPkPlayersBCols("sender_view_pk_players_b"), FSenderViewPkPlayersBIxCols("sender_view_pk_players_b")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table ViewPkMembership() const { return ::SpacetimeDB::query_builder::Table("view_pk_membership", FViewPkMembershipCols("view_pk_membership"), FViewPkMembershipIxCols("view_pk_membership")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table ViewPkMembershipSecondary() const { return ::SpacetimeDB::query_builder::Table("view_pk_membership_secondary", FViewPkMembershipSecondaryCols("view_pk_membership_secondary"), FViewPkMembershipSecondaryIxCols("view_pk_membership_secondary")); } + [[nodiscard]] ::SpacetimeDB::query_builder::Table ViewPkPlayer() const { return ::SpacetimeDB::query_builder::Table("view_pk_player", FViewPkPlayerCols("view_pk_player"), FViewPkPlayerIxCols("view_pk_player")); } +}; + +struct TESTVIEWPKCLIENT_API FQueryBuilder +{ + FFrom From; + + static TArray AllTablesSqlQueries() + { + TArray Sql; + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.AllViewPkPlayers().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.SenderViewPkPlayersA().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.SenderViewPkPlayersB().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.ViewPkMembership().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.ViewPkMembershipSecondary().into_sql().c_str()))); + Sql.Add(FString(UTF8_TO_TCHAR(FQueryBuilder().From.ViewPkPlayer().into_sql().c_str()))); + return Sql; + } +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FBlueprintQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FBlueprintPredicate +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FAllViewPkPlayersQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FSenderViewPkPlayersAQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FSenderViewPkPlayersBQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FViewPkMembershipQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FViewPkMembershipSecondaryQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FViewPkPlayerQuery +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString Sql; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FBlueprintBoolColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FBlueprintUInt8Column +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FBlueprintInt32Column +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FBlueprintInt64Column +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FBlueprintFloatColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FBlueprintDoubleColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FBlueprintStringColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FBlueprintIdentityColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FBlueprintConnectionIdColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FBlueprintTimestampColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FBlueprintUuidColumn +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ResultSourceName; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="SpacetimeDB|Queries") + FString ColumnName; +}; + +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API UQueryBuilderBlueprintLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|AllViewPkPlayers", meta=(DisplayName="From AllViewPkPlayers")) + static FAllViewPkPlayersQuery FromAllViewPkPlayers() + { + FAllViewPkPlayersQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.AllViewPkPlayers().into_sql().c_str())); + Query.ResultSourceName = TEXT("all_view_pk_players"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|AllViewPkPlayers", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_AllViewPkPlayersQueryToBlueprintQuery(const FAllViewPkPlayersQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|AllViewPkPlayers|Columns", meta=(DisplayName="AllViewPkPlayers Name")) + static FBlueprintStringColumn AllViewPkPlayersName(const FAllViewPkPlayersQuery& Query) + { + FBlueprintStringColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("all_view_pk_players") : Query.ResultSourceName; + Column.ColumnName = TEXT("name"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|AllViewPkPlayers", meta=(DisplayName="AllViewPkPlayers Where")) + static FAllViewPkPlayersQuery AllViewPkPlayersWhere(FAllViewPkPlayersQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|SenderViewPkPlayersA", meta=(DisplayName="From SenderViewPkPlayersA")) + static FSenderViewPkPlayersAQuery FromSenderViewPkPlayersA() + { + FSenderViewPkPlayersAQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.SenderViewPkPlayersA().into_sql().c_str())); + Query.ResultSourceName = TEXT("sender_view_pk_players_a"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|SenderViewPkPlayersA", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_SenderViewPkPlayersAQueryToBlueprintQuery(const FSenderViewPkPlayersAQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|SenderViewPkPlayersA|Columns", meta=(DisplayName="SenderViewPkPlayersA Name")) + static FBlueprintStringColumn SenderViewPkPlayersAName(const FSenderViewPkPlayersAQuery& Query) + { + FBlueprintStringColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("sender_view_pk_players_a") : Query.ResultSourceName; + Column.ColumnName = TEXT("name"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|SenderViewPkPlayersA", meta=(DisplayName="SenderViewPkPlayersA Where")) + static FSenderViewPkPlayersAQuery SenderViewPkPlayersAWhere(FSenderViewPkPlayersAQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|SenderViewPkPlayersB", meta=(DisplayName="From SenderViewPkPlayersB")) + static FSenderViewPkPlayersBQuery FromSenderViewPkPlayersB() + { + FSenderViewPkPlayersBQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.SenderViewPkPlayersB().into_sql().c_str())); + Query.ResultSourceName = TEXT("sender_view_pk_players_b"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|SenderViewPkPlayersB", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_SenderViewPkPlayersBQueryToBlueprintQuery(const FSenderViewPkPlayersBQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|SenderViewPkPlayersB|Columns", meta=(DisplayName="SenderViewPkPlayersB Name")) + static FBlueprintStringColumn SenderViewPkPlayersBName(const FSenderViewPkPlayersBQuery& Query) + { + FBlueprintStringColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("sender_view_pk_players_b") : Query.ResultSourceName; + Column.ColumnName = TEXT("name"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|SenderViewPkPlayersB", meta=(DisplayName="SenderViewPkPlayersB Where")) + static FSenderViewPkPlayersBQuery SenderViewPkPlayersBWhere(FSenderViewPkPlayersBQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ViewPkMembership", meta=(DisplayName="From ViewPkMembership")) + static FViewPkMembershipQuery FromViewPkMembership() + { + FViewPkMembershipQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.ViewPkMembership().into_sql().c_str())); + Query.ResultSourceName = TEXT("view_pk_membership"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ViewPkMembership", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_ViewPkMembershipQueryToBlueprintQuery(const FViewPkMembershipQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ViewPkMembership", meta=(DisplayName="ViewPkMembership Where")) + static FViewPkMembershipQuery ViewPkMembershipWhere(FViewPkMembershipQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ViewPkMembershipSecondary", meta=(DisplayName="From ViewPkMembershipSecondary")) + static FViewPkMembershipSecondaryQuery FromViewPkMembershipSecondary() + { + FViewPkMembershipSecondaryQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.ViewPkMembershipSecondary().into_sql().c_str())); + Query.ResultSourceName = TEXT("view_pk_membership_secondary"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ViewPkMembershipSecondary", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_ViewPkMembershipSecondaryQueryToBlueprintQuery(const FViewPkMembershipSecondaryQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ViewPkMembershipSecondary", meta=(DisplayName="ViewPkMembershipSecondary Where")) + static FViewPkMembershipSecondaryQuery ViewPkMembershipSecondaryWhere(FViewPkMembershipSecondaryQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ViewPkPlayer", meta=(DisplayName="From ViewPkPlayer")) + static FViewPkPlayerQuery FromViewPkPlayer() + { + FViewPkPlayerQuery Query; + Query.Sql = FString(UTF8_TO_TCHAR(FQueryBuilder().From.ViewPkPlayer().into_sql().c_str())); + Query.ResultSourceName = TEXT("view_pk_player"); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ViewPkPlayer", meta=(DisplayName="To Query", BlueprintAutocast)) + static FBlueprintQuery Conv_ViewPkPlayerQueryToBlueprintQuery(const FViewPkPlayerQuery& Query) + { + FBlueprintQuery GenericQuery; + GenericQuery.Sql = Query.Sql; + GenericQuery.ResultSourceName = Query.ResultSourceName; + return GenericQuery; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ViewPkPlayer|Columns", meta=(DisplayName="ViewPkPlayer Name")) + static FBlueprintStringColumn ViewPkPlayerName(const FViewPkPlayerQuery& Query) + { + FBlueprintStringColumn Column; + Column.ResultSourceName = Query.ResultSourceName.IsEmpty() ? TEXT("view_pk_player") : Query.ResultSourceName; + Column.ColumnName = TEXT("name"); + return Column; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|ViewPkPlayer", meta=(DisplayName="ViewPkPlayer Where")) + static FViewPkPlayerQuery ViewPkPlayerWhere(FViewPkPlayerQuery Query, const FBlueprintPredicate& Predicate) + { + if (Query.ResultSourceName != Predicate.ResultSourceName || Predicate.Sql.IsEmpty()) + { + return Query; + } + Query.Sql = AppendPredicate(Query.Sql, Predicate.Sql); + return Query; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Bool Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate BoolEqual(const FBlueprintBoolColumn& Column, const bool Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate UInt8Equal(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate UInt8GreaterThan(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate UInt8GreaterEqual(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate UInt8LessThan(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="UInt8 Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate UInt8LessEqual(const FBlueprintUInt8Column& Column, const uint8 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate Int32Equal(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate Int32GreaterThan(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate Int32GreaterEqual(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate Int32LessThan(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int32 Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate Int32LessEqual(const FBlueprintInt32Column& Column, const int32 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate Int64Equal(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate Int64GreaterThan(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate Int64GreaterEqual(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate Int64LessThan(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Int64 Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate Int64LessEqual(const FBlueprintInt64Column& Column, const int64 Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate FloatEqual(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate FloatGreaterThan(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate FloatGreaterEqual(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate FloatLessThan(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Float Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate FloatLessEqual(const FBlueprintFloatColumn& Column, const float Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate DoubleEqual(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate DoubleGreaterThan(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate DoubleGreaterEqual(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate DoubleLessThan(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Double Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate DoubleLessEqual(const FBlueprintDoubleColumn& Column, const double Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="String Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate StringEqual(const FBlueprintStringColumn& Column, const FString& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Identity Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate IdentityEqual(const FBlueprintIdentityColumn& Column, const FSpacetimeDBIdentity& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="ConnectionId Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate ConnectionIdEqual(const FBlueprintConnectionIdColumn& Column, const FSpacetimeDBConnectionId& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate TimestampEqual(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Greater Than", CompactNodeTitle=">", Keywords="> greater")) + static FBlueprintPredicate TimestampGreaterThan(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" > %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Greater Equal", CompactNodeTitle=">=", Keywords=">= greater equal")) + static FBlueprintPredicate TimestampGreaterEqual(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" >= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Less Than", CompactNodeTitle="<", Keywords="< less")) + static FBlueprintPredicate TimestampLessThan(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" < %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Timestamp Less Equal", CompactNodeTitle="<=", Keywords="<= less equal")) + static FBlueprintPredicate TimestampLessEqual(const FBlueprintTimestampColumn& Column, const FSpacetimeDBTimestamp& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" <= %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="Uuid Equal", CompactNodeTitle="==", Keywords="== equal")) + static FBlueprintPredicate UuidEqual(const FBlueprintUuidColumn& Column, const FSpacetimeDBUuid& Value) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = Column.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("\"%s\".\"%s\" = %s"), *Column.ResultSourceName, *Column.ColumnName, UTF8_TO_TCHAR(::SpacetimeDB::query_builder::detail::literal_sql(Value).c_str())); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="AND", CompactNodeTitle="AND", Keywords="and &&")) + static FBlueprintPredicate And(const FBlueprintPredicate& A, const FBlueprintPredicate& B) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = A.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("(%s) AND (%s)"), *A.Sql, *B.Sql); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="OR", CompactNodeTitle="OR", Keywords="or ||")) + static FBlueprintPredicate Or(const FBlueprintPredicate& A, const FBlueprintPredicate& B) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = A.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("(%s) OR (%s)"), *A.Sql, *B.Sql); + return Predicate; + } + + UFUNCTION(BlueprintPure, Category="SpacetimeDB|Queries|Predicates", meta=(DisplayName="NOT", CompactNodeTitle="NOT", Keywords="not !")) + static FBlueprintPredicate Not(const FBlueprintPredicate& A) + { + FBlueprintPredicate Predicate; + Predicate.ResultSourceName = A.ResultSourceName; + Predicate.Sql = FString::Printf(TEXT("NOT (%s)"), *A.Sql); + return Predicate; + } + +private: + static FString AppendPredicate(const FString& Sql, const FString& Predicate) + { + if (Sql.Contains(TEXT(" WHERE "))) + { + return Sql + TEXT(" AND (") + Predicate + TEXT(")"); + } + return Sql + TEXT(" WHERE (") + Predicate + TEXT(")"); + } +}; + +// SubscriptionBuilder class +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API USubscriptionBuilder : public USubscriptionBuilderBase +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + USubscriptionBuilder* OnApplied(FOnSubscriptionApplied Callback); + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + USubscriptionBuilder* OnError(FOnSubscriptionError Callback); + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + USubscriptionHandle* Subscribe(); + + USubscriptionHandle* Subscribe(const TArray& SQL); + + template + USubscriptionBuilder* AddQuery(TFn&& Build) + { + FQueryBuilder Q; + auto Query = std::forward(Build)(Q); + static_assert(::SpacetimeDB::query_builder::QueryBuilderReturn, + "Typed subscription queries must return a query_builder table/query expression."); + PendingSqlQueries.Add(FString(UTF8_TO_TCHAR(Query.into_sql().c_str()))); + return this; + } + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB", meta=(DisplayName="AddQuery", ScriptName="AddQuery")) + USubscriptionBuilder* AddBlueprintQuery(const FBlueprintQuery& Query); + + USubscriptionBuilder* AddAllViewPkPlayersQuery(const FAllViewPkPlayersQuery& Query); + + USubscriptionBuilder* AddSenderViewPkPlayersAQuery(const FSenderViewPkPlayersAQuery& Query); + + USubscriptionBuilder* AddSenderViewPkPlayersBQuery(const FSenderViewPkPlayersBQuery& Query); + + USubscriptionBuilder* AddViewPkMembershipQuery(const FViewPkMembershipQuery& Query); + + USubscriptionBuilder* AddViewPkMembershipSecondaryQuery(const FViewPkMembershipSecondaryQuery& Query); + + USubscriptionBuilder* AddViewPkPlayerQuery(const FViewPkPlayerQuery& Query); + + /** Convenience for subscribing to all rows from all public sources, including views */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + USubscriptionHandle* SubscribeToAllTables(); + + + friend class UDbConnection; + friend class UDbConnectionBase; + +protected: + UPROPERTY() + class UDbConnection* Conn; + + UPROPERTY() + TArray PendingSqlQueries; + + // Delegates stored so Subscribe() can bind forwarding callbacks + FOnSubscriptionApplied OnAppliedDelegateInternal; + FOnSubscriptionError OnErrorDelegateInternal; +}; + +// SubscriptionHandle class +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API USubscriptionHandle : public USubscriptionHandleBase +{ + GENERATED_BODY() + +public: + + USubscriptionHandle() {}; + + explicit USubscriptionHandle(UDbConnection* InConn); + + friend class USubscriptionBuilder; + +private: + UPROPERTY() + class UDbConnection* Conn; + + // Delegates that expose subscription events with connection aware contexts + FOnSubscriptionApplied OnAppliedDelegate; + FOnSubscriptionError OnErrorDelegate; + + UFUNCTION() + void ForwardOnApplied(const FSubscriptionEventContextBase& BaseCtx); + + UFUNCTION() + void ForwardOnError(const FErrorContextBase& BaseCtx); +}; + +/* + @Note: Child class of UDbConnectionBuilderBase. +*/ +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API UDbConnectionBuilder : public UDbConnectionBuilderBase +{ + GENERATED_BODY() +public: + + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnectionBuilder* WithUri(const FString& InUri); + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnectionBuilder* WithDatabaseName(const FString& InName); + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnectionBuilder* WithToken(const FString& InToken); + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnectionBuilder* WithCompression(const ESpacetimeDBCompression& InCompression); + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnectionBuilder* OnConnect(FOnConnectDelegate Callback); + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnectionBuilder* OnConnectError(FOnConnectErrorDelegate Callback); + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnectionBuilder* OnDisconnect(FOnDisconnectDelegate Callback); + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + UDbConnection* Build(); + +private: + + // Stored delegates which will be forwarded when the connection events occur. + FOnConnectDelegate OnConnectDelegateInternal; + FOnDisconnectDelegate OnDisconnectDelegateInternal; +}; + +// Main DbConnection class +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API UDbConnection : public UDbConnectionBase +{ + GENERATED_BODY() + +public: + explicit UDbConnection(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get()); + + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + URemoteTables* Db; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + URemoteReducers* Reducers; + + UPROPERTY(BlueprintReadOnly, Category="SpacetimeDB") + URemoteProcedures* Procedures; + + // Delegates that allow users to bind with the concrete connection type. + FOnConnectDelegate OnConnectDelegate; + FOnDisconnectDelegate OnDisconnectDelegate; + + UFUNCTION(BlueprintCallable, Category="SpacetimeDB") + USubscriptionBuilder* SubscriptionBuilder(); + + /** Static entry point for constructing a connection. */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB", DisplayName = "SpacetimeDB TestViewPkClient Builder") + static UDbConnectionBuilder* Builder(); + + // Error handling + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnUnhandledReducerError, const FReducerEventContext&, Context, const FString&, Error); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FOnUnhandledReducerError OnUnhandledReducerError; + + // Error handling + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnUnhandledProcedureError, const FProcedureEventContext&, Context, const FString&, Error); + UPROPERTY(BlueprintAssignable, Category="SpacetimeDB") + FOnUnhandledProcedureError OnUnhandledProcedureError; + + +protected: + + // Hook up error handling to reducers and procedures + virtual void PostInitProperties() override; + + UFUNCTION() + void ForwardOnConnect(UDbConnectionBase* BaseConnection, FSpacetimeDBIdentity InIdentity, const FString& InToken); + UFUNCTION() + void ForwardOnDisconnect(UDbConnectionBase* BaseConnection, const FString& Error); + + UFUNCTION() + void OnUnhandledReducerErrorHandler(const FReducerEventContext& Context, const FString& Error); + + UFUNCTION() + void OnUnhandledProcedureErrorHandler(const FProcedureEventContext& Context, const FString& Error); + + // Override the DbConnectionBase methods to handle updates and events + virtual void DbUpdate(const FDatabaseUpdateType& Update, const FSpacetimeDBEvent& Event) override; + + // Override the reducer event handler to dispatch events to the appropriate reducers + virtual void ReducerEvent(const FReducerEvent& Event) override; + + // Override the reducer event failed handler + virtual void ReducerEventFailed(const FReducerEvent& Event, const FString ErrorMessage) override; + // Override the procedure event failed handler + virtual void ProcedureEventFailed(const FProcedureEvent& Event, const FString ErrorMessage) override; + + friend class USubscriptionBuilder; + friend class UDbConnectionBuilder; + friend class URemoteReducers; + + // Internal reducer correlation helpers (request_id -> typed reducer) + void RegisterPendingTypedReducer(uint32 RequestId, FReducer Reducer); + bool TryGetPendingTypedReducer(uint32 RequestId, FReducer& OutReducer) const; + bool TryTakePendingTypedReducer(uint32 RequestId, FReducer& OutReducer); + +private: + TMap PendingTypedReducers; +}; + diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/AllViewPkPlayersTable.g.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/AllViewPkPlayersTable.g.h new file mode 100644 index 00000000000..0a0879db4e1 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/AllViewPkPlayersTable.g.h @@ -0,0 +1,64 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Types/Builtins.h" +#include "ModuleBindings/Types/ViewPkPlayerType.g.h" +#include "Tables/RemoteTable.h" +#include "DBCache/WithBsatn.h" +#include "DBCache/TableHandle.h" +#include "DBCache/TableCache.h" +#include "AllViewPkPlayersTable.g.generated.h" + +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API UAllViewPkPlayersTable : public URemoteTable +{ + GENERATED_BODY() + +public: + void PostInitialize(); + + /** Update function for all_view_pk_players table*/ + FTableAppliedDiff Update(TArray> InsertsRef, TArray> DeletesRef); + + /** Number of subscribed rows currently in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + int32 Count() const; + + /** Return all subscribed rows in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + TArray Iter() const; + + // Table Events + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnAllViewPkPlayersInsert, + const FEventContext&, Context, + const FViewPkPlayerType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FOnAllViewPkPlayersUpdate, + const FEventContext&, Context, + const FViewPkPlayerType&, OldRow, + const FViewPkPlayerType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnAllViewPkPlayersDelete, + const FEventContext&, Context, + const FViewPkPlayerType&, DeletedRow); + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnAllViewPkPlayersInsert OnInsert; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnAllViewPkPlayersUpdate OnUpdate; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnAllViewPkPlayersDelete OnDelete; + +private: + const FString TableName = TEXT("all_view_pk_players"); + + TSharedPtr> Data; +}; diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/SenderViewPkPlayersATable.g.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/SenderViewPkPlayersATable.g.h new file mode 100644 index 00000000000..b0ee3b0a181 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/SenderViewPkPlayersATable.g.h @@ -0,0 +1,64 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Types/Builtins.h" +#include "ModuleBindings/Types/ViewPkPlayerType.g.h" +#include "Tables/RemoteTable.h" +#include "DBCache/WithBsatn.h" +#include "DBCache/TableHandle.h" +#include "DBCache/TableCache.h" +#include "SenderViewPkPlayersATable.g.generated.h" + +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API USenderViewPkPlayersATable : public URemoteTable +{ + GENERATED_BODY() + +public: + void PostInitialize(); + + /** Update function for sender_view_pk_players_a table*/ + FTableAppliedDiff Update(TArray> InsertsRef, TArray> DeletesRef); + + /** Number of subscribed rows currently in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + int32 Count() const; + + /** Return all subscribed rows in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + TArray Iter() const; + + // Table Events + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnSenderViewPkPlayersAInsert, + const FEventContext&, Context, + const FViewPkPlayerType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FOnSenderViewPkPlayersAUpdate, + const FEventContext&, Context, + const FViewPkPlayerType&, OldRow, + const FViewPkPlayerType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnSenderViewPkPlayersADelete, + const FEventContext&, Context, + const FViewPkPlayerType&, DeletedRow); + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnSenderViewPkPlayersAInsert OnInsert; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnSenderViewPkPlayersAUpdate OnUpdate; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnSenderViewPkPlayersADelete OnDelete; + +private: + const FString TableName = TEXT("sender_view_pk_players_a"); + + TSharedPtr> Data; +}; diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/SenderViewPkPlayersBTable.g.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/SenderViewPkPlayersBTable.g.h new file mode 100644 index 00000000000..c47ab25f1a3 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/SenderViewPkPlayersBTable.g.h @@ -0,0 +1,64 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Types/Builtins.h" +#include "ModuleBindings/Types/ViewPkPlayerType.g.h" +#include "Tables/RemoteTable.h" +#include "DBCache/WithBsatn.h" +#include "DBCache/TableHandle.h" +#include "DBCache/TableCache.h" +#include "SenderViewPkPlayersBTable.g.generated.h" + +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API USenderViewPkPlayersBTable : public URemoteTable +{ + GENERATED_BODY() + +public: + void PostInitialize(); + + /** Update function for sender_view_pk_players_b table*/ + FTableAppliedDiff Update(TArray> InsertsRef, TArray> DeletesRef); + + /** Number of subscribed rows currently in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + int32 Count() const; + + /** Return all subscribed rows in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + TArray Iter() const; + + // Table Events + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnSenderViewPkPlayersBInsert, + const FEventContext&, Context, + const FViewPkPlayerType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FOnSenderViewPkPlayersBUpdate, + const FEventContext&, Context, + const FViewPkPlayerType&, OldRow, + const FViewPkPlayerType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnSenderViewPkPlayersBDelete, + const FEventContext&, Context, + const FViewPkPlayerType&, DeletedRow); + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnSenderViewPkPlayersBInsert OnInsert; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnSenderViewPkPlayersBUpdate OnUpdate; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnSenderViewPkPlayersBDelete OnDelete; + +private: + const FString TableName = TEXT("sender_view_pk_players_b"); + + TSharedPtr> Data; +}; diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/ViewPkMembershipSecondaryTable.g.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/ViewPkMembershipSecondaryTable.g.h new file mode 100644 index 00000000000..017c4f7d462 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/ViewPkMembershipSecondaryTable.g.h @@ -0,0 +1,141 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Types/Builtins.h" +#include "ModuleBindings/Types/ViewPkMembershipSecondaryType.g.h" +#include "Tables/RemoteTable.h" +#include "DBCache/WithBsatn.h" +#include "DBCache/TableHandle.h" +#include "DBCache/TableCache.h" +#include "ViewPkMembershipSecondaryTable.g.generated.h" + +UCLASS(Blueprintable) +class TESTVIEWPKCLIENT_API UViewPkMembershipSecondaryIdUniqueIndex : public UObject +{ + GENERATED_BODY() + +private: + // Declare an instance of your templated helper. + // It's private because the UObject wrapper will expose its functionality. + FUniqueIndexHelper> IdIndexHelper; + +public: + UViewPkMembershipSecondaryIdUniqueIndex() + // Initialize the helper with the specific unique index name + : IdIndexHelper("id") { + } + + /** + * Finds a ViewPkMembershipSecondary by their unique id. + * @param Key The id to search for. + * @return The found FViewPkMembershipSecondaryType, or a default-constructed FViewPkMembershipSecondaryType if not found. + */ + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FViewPkMembershipSecondaryType Find(uint64 Key) + { + // Simply delegate the call to the internal helper + return IdIndexHelper.FindUniqueIndex(Key); + } + + // A public setter to provide the cache to the helper after construction + // This is a common pattern when the cache might be created or provided by another system. + void SetCache(TSharedPtr> InViewPkMembershipSecondaryCache) + { + IdIndexHelper.Cache = InViewPkMembershipSecondaryCache; + } +}; +/***/ + +UCLASS(Blueprintable) +class UViewPkMembershipSecondaryPlayerIdIndex : public UObject +{ + GENERATED_BODY() + +public: + TArray Filter(const uint64& PlayerId) const + { + TArray OutResults; + + LocalCache->FindByMultiKeyBTreeIndex>( + OutResults, + TEXT("player_id"), + MakeTuple(PlayerId) + ); + + return OutResults; + } + + void SetCache(TSharedPtr> InCache) + { + LocalCache = InCache; + } + +private: + // NOTE: Not exposed to Blueprint because some parameter types are not Blueprint-compatible + void FilterPlayerId(TArray& OutResults, const uint64& PlayerId) + { + OutResults = Filter(PlayerId); + } + + TSharedPtr> LocalCache; +}; + +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API UViewPkMembershipSecondaryTable : public URemoteTable +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly) + UViewPkMembershipSecondaryIdUniqueIndex* Id; + + UPROPERTY(BlueprintReadOnly) + UViewPkMembershipSecondaryPlayerIdIndex* PlayerId; + + void PostInitialize(); + + /** Update function for view_pk_membership_secondary table*/ + FTableAppliedDiff Update(TArray> InsertsRef, TArray> DeletesRef); + + /** Number of subscribed rows currently in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + int32 Count() const; + + /** Return all subscribed rows in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + TArray Iter() const; + + // Table Events + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnViewPkMembershipSecondaryInsert, + const FEventContext&, Context, + const FViewPkMembershipSecondaryType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FOnViewPkMembershipSecondaryUpdate, + const FEventContext&, Context, + const FViewPkMembershipSecondaryType&, OldRow, + const FViewPkMembershipSecondaryType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnViewPkMembershipSecondaryDelete, + const FEventContext&, Context, + const FViewPkMembershipSecondaryType&, DeletedRow); + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnViewPkMembershipSecondaryInsert OnInsert; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnViewPkMembershipSecondaryUpdate OnUpdate; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnViewPkMembershipSecondaryDelete OnDelete; + +private: + const FString TableName = TEXT("view_pk_membership_secondary"); + + TSharedPtr> Data; +}; diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/ViewPkMembershipTable.g.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/ViewPkMembershipTable.g.h new file mode 100644 index 00000000000..bcb477f4801 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/ViewPkMembershipTable.g.h @@ -0,0 +1,141 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Types/Builtins.h" +#include "ModuleBindings/Types/ViewPkMembershipType.g.h" +#include "Tables/RemoteTable.h" +#include "DBCache/WithBsatn.h" +#include "DBCache/TableHandle.h" +#include "DBCache/TableCache.h" +#include "ViewPkMembershipTable.g.generated.h" + +UCLASS(Blueprintable) +class TESTVIEWPKCLIENT_API UViewPkMembershipIdUniqueIndex : public UObject +{ + GENERATED_BODY() + +private: + // Declare an instance of your templated helper. + // It's private because the UObject wrapper will expose its functionality. + FUniqueIndexHelper> IdIndexHelper; + +public: + UViewPkMembershipIdUniqueIndex() + // Initialize the helper with the specific unique index name + : IdIndexHelper("id") { + } + + /** + * Finds a ViewPkMembership by their unique id. + * @param Key The id to search for. + * @return The found FViewPkMembershipType, or a default-constructed FViewPkMembershipType if not found. + */ + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FViewPkMembershipType Find(uint64 Key) + { + // Simply delegate the call to the internal helper + return IdIndexHelper.FindUniqueIndex(Key); + } + + // A public setter to provide the cache to the helper after construction + // This is a common pattern when the cache might be created or provided by another system. + void SetCache(TSharedPtr> InViewPkMembershipCache) + { + IdIndexHelper.Cache = InViewPkMembershipCache; + } +}; +/***/ + +UCLASS(Blueprintable) +class UViewPkMembershipPlayerIdIndex : public UObject +{ + GENERATED_BODY() + +public: + TArray Filter(const uint64& PlayerId) const + { + TArray OutResults; + + LocalCache->FindByMultiKeyBTreeIndex>( + OutResults, + TEXT("player_id"), + MakeTuple(PlayerId) + ); + + return OutResults; + } + + void SetCache(TSharedPtr> InCache) + { + LocalCache = InCache; + } + +private: + // NOTE: Not exposed to Blueprint because some parameter types are not Blueprint-compatible + void FilterPlayerId(TArray& OutResults, const uint64& PlayerId) + { + OutResults = Filter(PlayerId); + } + + TSharedPtr> LocalCache; +}; + +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API UViewPkMembershipTable : public URemoteTable +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly) + UViewPkMembershipIdUniqueIndex* Id; + + UPROPERTY(BlueprintReadOnly) + UViewPkMembershipPlayerIdIndex* PlayerId; + + void PostInitialize(); + + /** Update function for view_pk_membership table*/ + FTableAppliedDiff Update(TArray> InsertsRef, TArray> DeletesRef); + + /** Number of subscribed rows currently in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + int32 Count() const; + + /** Return all subscribed rows in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + TArray Iter() const; + + // Table Events + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnViewPkMembershipInsert, + const FEventContext&, Context, + const FViewPkMembershipType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FOnViewPkMembershipUpdate, + const FEventContext&, Context, + const FViewPkMembershipType&, OldRow, + const FViewPkMembershipType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnViewPkMembershipDelete, + const FEventContext&, Context, + const FViewPkMembershipType&, DeletedRow); + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnViewPkMembershipInsert OnInsert; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnViewPkMembershipUpdate OnUpdate; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnViewPkMembershipDelete OnDelete; + +private: + const FString TableName = TEXT("view_pk_membership"); + + TSharedPtr> Data; +}; diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/ViewPkPlayerTable.g.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/ViewPkPlayerTable.g.h new file mode 100644 index 00000000000..380246018c2 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Tables/ViewPkPlayerTable.g.h @@ -0,0 +1,104 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "Types/Builtins.h" +#include "ModuleBindings/Types/ViewPkPlayerType.g.h" +#include "Tables/RemoteTable.h" +#include "DBCache/WithBsatn.h" +#include "DBCache/TableHandle.h" +#include "DBCache/TableCache.h" +#include "ViewPkPlayerTable.g.generated.h" + +UCLASS(Blueprintable) +class TESTVIEWPKCLIENT_API UViewPkPlayerIdUniqueIndex : public UObject +{ + GENERATED_BODY() + +private: + // Declare an instance of your templated helper. + // It's private because the UObject wrapper will expose its functionality. + FUniqueIndexHelper> IdIndexHelper; + +public: + UViewPkPlayerIdUniqueIndex() + // Initialize the helper with the specific unique index name + : IdIndexHelper("id") { + } + + /** + * Finds a ViewPkPlayer by their unique id. + * @param Key The id to search for. + * @return The found FViewPkPlayerType, or a default-constructed FViewPkPlayerType if not found. + */ + // NOTE: Not exposed to Blueprint because uint64 types are not Blueprint-compatible + FViewPkPlayerType Find(uint64 Key) + { + // Simply delegate the call to the internal helper + return IdIndexHelper.FindUniqueIndex(Key); + } + + // A public setter to provide the cache to the helper after construction + // This is a common pattern when the cache might be created or provided by another system. + void SetCache(TSharedPtr> InViewPkPlayerCache) + { + IdIndexHelper.Cache = InViewPkPlayerCache; + } +}; +/***/ + +UCLASS(BlueprintType) +class TESTVIEWPKCLIENT_API UViewPkPlayerTable : public URemoteTable +{ + GENERATED_BODY() + +public: + UPROPERTY(BlueprintReadOnly) + UViewPkPlayerIdUniqueIndex* Id; + + void PostInitialize(); + + /** Update function for view_pk_player table*/ + FTableAppliedDiff Update(TArray> InsertsRef, TArray> DeletesRef); + + /** Number of subscribed rows currently in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + int32 Count() const; + + /** Return all subscribed rows in the cache */ + UFUNCTION(BlueprintCallable, Category = "SpacetimeDB") + TArray Iter() const; + + // Table Events + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnViewPkPlayerInsert, + const FEventContext&, Context, + const FViewPkPlayerType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams( + FOnViewPkPlayerUpdate, + const FEventContext&, Context, + const FViewPkPlayerType&, OldRow, + const FViewPkPlayerType&, NewRow); + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams( + FOnViewPkPlayerDelete, + const FEventContext&, Context, + const FViewPkPlayerType&, DeletedRow); + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnViewPkPlayerInsert OnInsert; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnViewPkPlayerUpdate OnUpdate; + + UPROPERTY(BlueprintAssignable, Category = "SpacetimeDB Events") + FOnViewPkPlayerDelete OnDelete; + +private: + const FString TableName = TEXT("view_pk_player"); + + TSharedPtr> Data; +}; diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Types/ViewPkMembershipSecondaryType.g.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Types/ViewPkMembershipSecondaryType.g.h new file mode 100644 index 00000000000..aa50b8d2b77 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Types/ViewPkMembershipSecondaryType.g.h @@ -0,0 +1,49 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ViewPkMembershipSecondaryType.g.generated.h" + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FViewPkMembershipSecondaryType +{ + GENERATED_BODY() + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 Id = 0; + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 PlayerId = 0; + + FORCEINLINE bool operator==(const FViewPkMembershipSecondaryType& Other) const + { + return Id == Other.Id && PlayerId == Other.PlayerId; + } + + FORCEINLINE bool operator!=(const FViewPkMembershipSecondaryType& Other) const + { + return !(*this == Other); + } +}; + +/** + * Custom hash function for FViewPkMembershipSecondaryType. + * Combines the hashes of all fields that are compared in operator==. + * @param ViewPkMembershipSecondaryType The FViewPkMembershipSecondaryType instance to hash. + * @return The combined hash value. + */ +FORCEINLINE uint32 GetTypeHash(const FViewPkMembershipSecondaryType& ViewPkMembershipSecondaryType) +{ + uint32 Hash = GetTypeHash(ViewPkMembershipSecondaryType.Id); + Hash = HashCombine(Hash, GetTypeHash(ViewPkMembershipSecondaryType.PlayerId)); + return Hash; +} + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_ENABLE_TARRAY(FViewPkMembershipSecondaryType); + + UE_SPACETIMEDB_STRUCT(FViewPkMembershipSecondaryType, Id, PlayerId); +} diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Types/ViewPkMembershipType.g.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Types/ViewPkMembershipType.g.h new file mode 100644 index 00000000000..77842753aab --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Types/ViewPkMembershipType.g.h @@ -0,0 +1,49 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ViewPkMembershipType.g.generated.h" + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FViewPkMembershipType +{ + GENERATED_BODY() + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 Id = 0; + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 PlayerId = 0; + + FORCEINLINE bool operator==(const FViewPkMembershipType& Other) const + { + return Id == Other.Id && PlayerId == Other.PlayerId; + } + + FORCEINLINE bool operator!=(const FViewPkMembershipType& Other) const + { + return !(*this == Other); + } +}; + +/** + * Custom hash function for FViewPkMembershipType. + * Combines the hashes of all fields that are compared in operator==. + * @param ViewPkMembershipType The FViewPkMembershipType instance to hash. + * @return The combined hash value. + */ +FORCEINLINE uint32 GetTypeHash(const FViewPkMembershipType& ViewPkMembershipType) +{ + uint32 Hash = GetTypeHash(ViewPkMembershipType.Id); + Hash = HashCombine(Hash, GetTypeHash(ViewPkMembershipType.PlayerId)); + return Hash; +} + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_ENABLE_TARRAY(FViewPkMembershipType); + + UE_SPACETIMEDB_STRUCT(FViewPkMembershipType, Id, PlayerId); +} diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Types/ViewPkPlayerType.g.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Types/ViewPkPlayerType.g.h new file mode 100644 index 00000000000..afb955b37ef --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/ModuleBindings/Types/ViewPkPlayerType.g.h @@ -0,0 +1,49 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#pragma once +#include "CoreMinimal.h" +#include "BSATN/UESpacetimeDB.h" +#include "ViewPkPlayerType.g.generated.h" + +USTRUCT(BlueprintType) +struct TESTVIEWPKCLIENT_API FViewPkPlayerType +{ + GENERATED_BODY() + + // NOTE: uint64 field not exposed to Blueprint due to non-blueprintable elements + uint64 Id = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "SpacetimeDB") + FString Name; + + FORCEINLINE bool operator==(const FViewPkPlayerType& Other) const + { + return Id == Other.Id && Name == Other.Name; + } + + FORCEINLINE bool operator!=(const FViewPkPlayerType& Other) const + { + return !(*this == Other); + } +}; + +/** + * Custom hash function for FViewPkPlayerType. + * Combines the hashes of all fields that are compared in operator==. + * @param ViewPkPlayerType The FViewPkPlayerType instance to hash. + * @return The combined hash value. + */ +FORCEINLINE uint32 GetTypeHash(const FViewPkPlayerType& ViewPkPlayerType) +{ + uint32 Hash = GetTypeHash(ViewPkPlayerType.Id); + Hash = HashCombine(Hash, GetTypeHash(ViewPkPlayerType.Name)); + return Hash; +} + +namespace UE::SpacetimeDB +{ + UE_SPACETIMEDB_ENABLE_TARRAY(FViewPkPlayerType); + + UE_SPACETIMEDB_STRUCT(FViewPkPlayerType, Id, Name); +} diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/CommonTestFunctions.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/CommonTestFunctions.h new file mode 100644 index 00000000000..48a749b38b0 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/CommonTestFunctions.h @@ -0,0 +1,75 @@ +#pragma once + +#include "CoreMinimal.h" +#include "Misc/AutomationTest.h" +#include "Tests/TestCounter.h" + +#include "Connection/Callback.h" +#include "Connection/Credentials.h" +#include "ModuleBindings/SpacetimeDBClient.g.h" + +#include "CommonTestFunctions.generated.h" + +#define TESTLOG_SUCCESS(Test, Format, ...) \ + do \ + { \ + const FString UserMessage = FString::Printf(Format, ##__VA_ARGS__); \ + const FString LogMessage = FString::Printf(TEXT(" + %s"), *UserMessage); \ + UE_LOG(LogTemp, Log, TEXT("%s"), *LogMessage); \ + Test.AddInfo(LogMessage); \ + } while (false) + +#define TESTLOG_FAIL(Test, Format, ...) \ + do \ + { \ + const FString UserMessage = FString::Printf(Format, ##__VA_ARGS__); \ + const FString LogMessage = FString::Printf(TEXT(" x %s"), *UserMessage); \ + UE_LOG(LogTemp, Error, TEXT("%s"), *LogMessage); \ + Test.AddError(LogMessage); \ + } while (false) + +UCLASS() +class TESTVIEWPKCLIENT_API UTestHelperDelegates : public UObject +{ + GENERATED_BODY() + +public: + TFunction OnConnect; + UFUNCTION() + void HandleConnect(UDbConnection* Conn, FSpacetimeDBIdentity Identity, const FString& Token); + + TFunction OnConnectError; + UFUNCTION() + void HandleConnectError(const FString& Error); + + TFunction OnDisconnect; + UFUNCTION() + void HandleDisconnect(UDbConnection* Conn, const FString& Error); + + TFunction OnSubscriptionApplied; + UFUNCTION() + void HandleSubscriptionApplied(FSubscriptionEventContext Ctx); + + TFunction OnSubscriptionError; + UFUNCTION() + void HandleSubscriptionError(FErrorContext Ctx); +}; + +UDbConnection* ConnectThen( + TSharedPtr Counter, + const FString& TestName, + TFunction Callback); + +bool GetDbName(FString& DBName, FString& Error); +FString GetServerUrl(); +bool ValidateParameterConfig(FAutomationTestBase* Test); +bool ReportTestResult(FAutomationTestBase& Test, const FString& TestName, TSharedPtr Counter, bool bTimedOut); + +template +T* CreateTestHandler() +{ + T* Handler = NewObject(GetTransientPackage()); + Handler->AddToRoot(); + Handler->Counter = MakeShared(); + return Handler; +} diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/PrimitiveHandlerList.def b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/PrimitiveHandlerList.def new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/PrimitiveHandlerList.def @@ -0,0 +1 @@ + diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/SpacetimeFullClientTests.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/SpacetimeFullClientTests.h new file mode 100644 index 00000000000..c957be034b4 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/SpacetimeFullClientTests.h @@ -0,0 +1,35 @@ +#pragma once + +#include "CoreMinimal.h" +#include "Misc/AutomationTest.h" +#include "Tests/TestHandler.h" + +IMPLEMENT_SIMPLE_AUTOMATION_TEST( + FViewPkQueryBuilderDirectSourcesTest, + "SpacetimeDB.TestViewPkClient.ViewPkQueryBuilderDirectSourcesTest", + EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter +) + +IMPLEMENT_SIMPLE_AUTOMATION_TEST( + FViewPkQueryBuilderSemijoinTest, + "SpacetimeDB.TestViewPkClient.ViewPkQueryBuilderSemijoinTest", + EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter +) + +IMPLEMENT_SIMPLE_AUTOMATION_TEST( + FViewPkSubscribeAllTablesTest, + "SpacetimeDB.TestViewPkClient.ViewPkSubscribeAllTablesTest", + EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter +) + +IMPLEMENT_SIMPLE_AUTOMATION_TEST( + FViewPkRuntimeUpdatePairingTest, + "SpacetimeDB.TestViewPkClient.ViewPkRuntimeUpdatePairingTest", + EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter +) + +IMPLEMENT_SIMPLE_AUTOMATION_TEST( + FViewPkBlueprintQueryBuilderFlowTest, + "SpacetimeDB.TestViewPkClient.ViewPkBlueprintQueryBuilderFlowTest", + EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter +) diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/TestCounter.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/TestCounter.h new file mode 100644 index 00000000000..35b52debcb5 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/TestCounter.h @@ -0,0 +1,35 @@ +#pragma once + +#include "CoreMinimal.h" +#include "HAL/CriticalSection.h" + +struct FTestOutcome +{ + bool bSuccess = false; + FString Error; +}; + +class FTestCounter : public TSharedFromThis +{ +public: + FTestCounter() = default; + + void Register(const FString& TestName); + void MarkSuccess(const FString& TestName); + void MarkFailure(const FString& TestName, const FString& Error); + + bool IsComplete() const; + bool AllSucceeded() const; + TArray GetFailures() const; + TArray GetSuccesses() const; + + void Abort(); + bool IsAborted() const { return bAborted; } + + +private: + mutable FCriticalSection Mutex; + TMap Outcomes; + TSet Registered; + bool bAborted = false; +}; \ No newline at end of file diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/TestHandler.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/TestHandler.h new file mode 100644 index 00000000000..cf36e740c98 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/TestHandler.h @@ -0,0 +1,47 @@ +#pragma once + +#include "CoreMinimal.h" +#include "UObject/Object.h" + +#include "ModuleBindings/SpacetimeDBClient.g.h" +#include "Tests/TestCounter.h" + +#include "TestHandler.generated.h" + +UCLASS() +class TESTVIEWPKCLIENT_API UTestHandler : public UObject +{ + GENERATED_BODY() + +public: + TSharedPtr Counter; +}; + +UCLASS() +class TESTVIEWPKCLIENT_API UViewPkRuntimeHandler : public UTestHandler +{ + GENERATED_BODY() + +public: + uint64 ExpectedId = 1; + FString InitialName = TEXT("before"); + FString UpdatedName = TEXT("after"); + + UFUNCTION() + void OnAllViewPkPlayersInsert(const FEventContext& Context, const FViewPkPlayerType& Value); + + UFUNCTION() + void OnAllViewPkPlayersUpdate(const FEventContext& Context, const FViewPkPlayerType& OldValue, const FViewPkPlayerType& NewValue); + + UFUNCTION() + void OnAllViewPkPlayersDelete(const FEventContext& Context, const FViewPkPlayerType& Value); + + UFUNCTION() + void OnSenderViewPkPlayersAInsert(const FEventContext& Context, const FViewPkPlayerType& Value); + + UFUNCTION() + void OnSenderViewPkPlayersAUpdate(const FEventContext& Context, const FViewPkPlayerType& OldValue, const FViewPkPlayerType& NewValue); + + UFUNCTION() + void OnSenderViewPkPlayersADelete(const FEventContext& Context, const FViewPkPlayerType& Value); +}; diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/UmbreallaHeaderReducers.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/UmbreallaHeaderReducers.h new file mode 100644 index 00000000000..6f70f09beec --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/UmbreallaHeaderReducers.h @@ -0,0 +1 @@ +#pragma once diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/UmbreallaHeaderTypes.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/UmbreallaHeaderTypes.h new file mode 100644 index 00000000000..6f70f09beec --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/UmbreallaHeaderTypes.h @@ -0,0 +1 @@ +#pragma once diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/UmbreallaHeaderaTables.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/UmbreallaHeaderaTables.h new file mode 100644 index 00000000000..6f70f09beec --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/Public/Tests/UmbreallaHeaderaTables.h @@ -0,0 +1 @@ +#pragma once diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/TestViewPkClient.Build.cs b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/TestViewPkClient.Build.cs new file mode 100644 index 00000000000..3567944f689 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/TestViewPkClient.Build.cs @@ -0,0 +1,25 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; + +public class TestViewPkClient : ModuleRules +{ + public TestViewPkClient(ReadOnlyTargetRules Target) : base(Target) + { + // Set the module type to be a standard module + PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; + + // Set the module to use C++20 standard + CppStandard = CppStandardVersion.Cpp20; + + + // Enable exceptions for this module + bEnableExceptions = true; + + + PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "SpacetimeDbSdk" }); + + PrivateDependencyModuleNames.AddRange(new string[] { "DeveloperSettings" }); + + } +} diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/TestViewPkClient.cpp b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/TestViewPkClient.cpp new file mode 100644 index 00000000000..7d8a2ef715d --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/TestViewPkClient.cpp @@ -0,0 +1,6 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "TestViewPkClient.h" +#include "Modules/ModuleManager.h" + +IMPLEMENT_PRIMARY_GAME_MODULE(FDefaultGameModuleImpl, TestViewPkClient, "TestViewPkClient"); diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/TestViewPkClient.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/TestViewPkClient.h new file mode 100644 index 00000000000..90aad9e7e22 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/TestViewPkClient.h @@ -0,0 +1,6 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" + diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/TestViewPkClientGameModeBase.cpp b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/TestViewPkClientGameModeBase.cpp new file mode 100644 index 00000000000..674d6a37ebb --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/TestViewPkClientGameModeBase.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "TestViewPkClientGameModeBase.h" + diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/TestViewPkClientGameModeBase.h b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/TestViewPkClientGameModeBase.h new file mode 100644 index 00000000000..f041de9c976 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClient/TestViewPkClientGameModeBase.h @@ -0,0 +1,17 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/GameModeBase.h" +#include "TestViewPkClientGameModeBase.generated.h" + +/** + * + */ +UCLASS() +class TESTVIEWPKCLIENT_API ATestViewPkClientGameModeBase : public AGameModeBase +{ + GENERATED_BODY() + +}; diff --git a/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClientEditor.Target.cs b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClientEditor.Target.cs new file mode 100644 index 00000000000..b8438c36e51 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/Source/TestViewPkClientEditor.Target.cs @@ -0,0 +1,15 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; +using System.Collections.Generic; + +public class TestViewPkClientEditorTarget : TargetRules +{ + public TestViewPkClientEditorTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Editor; + DefaultBuildSettings = BuildSettingsVersion.V5; + + ExtraModuleNames.AddRange( new string[] { "TestViewPkClient" } ); + } +} diff --git a/sdks/unreal/tests/TestViewPkClient/TestViewPkClient.uproject b/sdks/unreal/tests/TestViewPkClient/TestViewPkClient.uproject new file mode 100644 index 00000000000..f9be1f0cca1 --- /dev/null +++ b/sdks/unreal/tests/TestViewPkClient/TestViewPkClient.uproject @@ -0,0 +1,25 @@ +{ + "FileVersion": 3, + "EngineAssociation": "5.6", + "Category": "", + "Description": "", + "Modules": [ + { + "Name": "TestViewPkClient", + "Type": "Runtime", + "LoadingPhase": "Default" + } + ], + "Plugins": [ + { + "Name": "ModelingToolsEditorMode", + "Enabled": true, + "TargetAllowList": [ + "Editor" + ] + } + ], + "AdditionalPluginDirectories": [ + "../../src" + ] +} diff --git a/sdks/unreal/tests/test.rs b/sdks/unreal/tests/test.rs index 2700f10ec14..a5bb363db34 100644 --- a/sdks/unreal/tests/test.rs +++ b/sdks/unreal/tests/test.rs @@ -213,8 +213,7 @@ fn unreal_insert_primitives_as_strings() { #[test] #[serial(Group4)] fn unreal_reauth() { - make_test("ReauthPart1Test").run(); - make_test("ReauthPart2Test").run(); + make_test("ReauthTest").run(); } #[test] @@ -309,3 +308,9 @@ fn unreal_overlapping_subscriptions() { fn unreal_insert_result_okay() { make_test("InsertResultOkTest").run(); } + +#[test] +#[serial(Group6)] +fn unreal_blueprint_query_builder_basic_flow() { + make_test("BlueprintQueryBuilderBasicFlowTest").run(); +} diff --git a/sdks/unreal/tests/test_view.rs b/sdks/unreal/tests/test_view.rs new file mode 100644 index 00000000000..5df4d2d4dab --- /dev/null +++ b/sdks/unreal/tests/test_view.rs @@ -0,0 +1,40 @@ +mod sdk_unreal_harness; +use sdk_unreal_harness::{make_test_with_suite, TestSuite}; + +use serial_test::serial; +use std::env; + +const SDK_TEST_SUITE: TestSuite = TestSuite { + module: "sdk-test-view", + client_root: concat!(env!("CARGO_MANIFEST_DIR"), "/tests/TestViewClient"), + unreal_module: "TestViewClient", + uproject_file: "TestViewClient.uproject", +}; + +fn make_test(test_name: &str) -> spacetimedb_testing::sdk::Test { + make_test_with_suite(&SDK_TEST_SUITE, test_name) +} + +#[test] +#[serial(ViewGroup)] +fn unreal_view_query_builder_direct_sources() { + make_test("ViewQueryBuilderDirectSourcesTest").run(); +} + +#[test] +#[serial(ViewGroup)] +fn unreal_view_subscribe_all_tables() { + make_test("ViewSubscribeAllTablesTest").run(); +} + +#[test] +#[serial(ViewGroup)] +fn unreal_view_blueprint_query_builder_flow() { + make_test("ViewBlueprintQueryBuilderFlowTest").run(); +} + +#[test] +#[serial(ViewGroup)] +fn unreal_view_blueprint_query_builder_runtime() { + make_test("ViewBlueprintQueryBuilderRuntimeTest").run(); +} diff --git a/sdks/unreal/tests/test_view_pk.rs b/sdks/unreal/tests/test_view_pk.rs new file mode 100644 index 00000000000..5a78abcb7d1 --- /dev/null +++ b/sdks/unreal/tests/test_view_pk.rs @@ -0,0 +1,46 @@ +mod sdk_unreal_harness; +use sdk_unreal_harness::{make_test_with_suite, TestSuite}; + +use serial_test::serial; +use std::env; + +const SDK_TEST_SUITE: TestSuite = TestSuite { + module: "sdk-test-view-pk", + client_root: concat!(env!("CARGO_MANIFEST_DIR"), "/tests/TestViewPkClient"), + unreal_module: "TestViewPkClient", + uproject_file: "TestViewPkClient.uproject", +}; + +fn make_test(test_name: &str) -> spacetimedb_testing::sdk::Test { + make_test_with_suite(&SDK_TEST_SUITE, test_name) +} + +#[test] +#[serial(ViewPkGroup)] +fn unreal_view_pk_query_builder_direct_sources() { + make_test("ViewPkQueryBuilderDirectSourcesTest").run(); +} + +#[test] +#[serial(ViewPkGroup)] +fn unreal_view_pk_query_builder_semijoin() { + make_test("ViewPkQueryBuilderSemijoinTest").run(); +} + +#[test] +#[serial(ViewPkGroup)] +fn unreal_view_pk_subscribe_all_tables() { + make_test("ViewPkSubscribeAllTablesTest").run(); +} + +#[test] +#[serial(ViewPkGroup)] +fn unreal_view_pk_runtime_update_pairing() { + make_test("ViewPkRuntimeUpdatePairingTest").run(); +} + +#[test] +#[serial(ViewPkGroup)] +fn unreal_view_pk_blueprint_query_builder_flow() { + make_test("ViewPkBlueprintQueryBuilderFlowTest").run(); +}