Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(net-client-gen): fix default Value & improve params encoding #674

Merged
merged 1 commit into from
Nov 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 3 additions & 16 deletions net/rs/client-gen/src/ctor_generators.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,19 +63,9 @@ impl<'a> Visitor<'a> for CtorFactoryGenerator<'a> {
self.interface_tokens.push();

let route_bytes = &path_bytes(func.name()).0;
let args = &encoded_fn_args(func.params());
let args = &encoded_fn_args_comma_prefixed(func.params());
let args_with_type = &self.type_generator.fn_params_with_types(func.params());

let type_decls = func
.params()
.iter()
.map(|p| p.type_decl())
.collect::<Vec<_>>();
let tuple_arg_type = if type_decls.is_empty() {
primitive_type_to_dotnet(PrimitiveType::Null).to_string()
} else {
self.type_generator.generate_types_as_tuple(type_decls)
};
let void_type = primitive_type_to_dotnet(PrimitiveType::Null);

let activation = &csharp::import("global::Sails.Remoting.Abstractions", "IActivation");
let action = &csharp::import("global::Sails.Remoting", "RemotingAction");
Expand All @@ -88,10 +78,7 @@ impl<'a> Visitor<'a> for CtorFactoryGenerator<'a> {
$(inheritdoc())
public $activation $func_name_pascal($args_with_type)
{
return new $action<$(&tuple_arg_type)>(
this.remoting,
[$route_bytes],
new $(&tuple_arg_type)($args));
return new $action<$(void_type)>(this.remoting, [$route_bytes]$args);
}
$['\n']
};
Expand Down
11 changes: 8 additions & 3 deletions net/rs/client-gen/src/helpers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,17 @@ pub(crate) fn path_bytes(path: &str) -> (String, usize) {
}
}

pub(crate) fn encoded_fn_args(params: &[FuncParam]) -> String {
pub(crate) fn encoded_fn_args_comma_prefixed(params: &[FuncParam]) -> String {
params
.iter()
.map(|p| escape_keywords(p.name().to_case(convert_case::Case::Camel)))
.map(|p| {
format!(
", {}",
escape_keywords(p.name().to_case(convert_case::Case::Camel))
)
})
.collect::<Vec<_>>()
.join(", ")
.join("")
}

pub fn summary_comment<T>(comment: T) -> SummaryComment<T>
Expand Down
2 changes: 2 additions & 0 deletions net/rs/client-gen/src/root_generator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ impl<'a> RootGenerator<'a> {
external_types: HashMap<&'a str, &'a str>,
) -> Self {
let mut tokens = Tokens::new();
tokens.append(ItemStr::Static("#nullable disable"));
tokens.line();
tokens.append(ItemStr::Static(
"#pragma warning disable RCS0056 // A line is too long",
));
Expand Down
10 changes: 2 additions & 8 deletions net/rs/client-gen/src/service_generators.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ use csharp::Tokens;
use genco::prelude::*;
use sails_idl_parser::{ast::visitor, ast::visitor::Visitor, ast::*};

const BASE_TUPLE_RUST: &str = "global::Substrate.NetApi.Model.Types.Base.BaseTupleRust";

/// Generates a client that implements service trait
pub(crate) struct ServiceClientGenerator<'a> {
service_name: String,
Expand Down Expand Up @@ -63,7 +61,7 @@ impl<'a> Visitor<'a> for ServiceClientGenerator<'a> {
let func_route_bytes = path_bytes(func.name()).0;
let route_bytes = [service_route_bytes, func_route_bytes].join(", ");

let args = encoded_fn_args(func.params());
let args = &encoded_fn_args_comma_prefixed(func.params());
let args_with_type = &self.type_generator.fn_params_with_types(func.params());
let func_return_type = &self.type_generator.generate_type_decl(func.output());

Expand All @@ -80,11 +78,7 @@ impl<'a> Visitor<'a> for ServiceClientGenerator<'a> {
$(inheritdoc())
public $return_type<$func_return_type> $func_name_pascal($args_with_type)
{
return new $action<$func_return_type>(
this.remoting,
[$(&route_bytes)],
new $(BASE_TUPLE_RUST)($(&args))
);
return new $action<$func_return_type>(this.remoting, [$(&route_bytes)]$args);
}
};
}
Expand Down
19 changes: 4 additions & 15 deletions net/rs/client-gen/src/type_generators.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,10 @@ macro_rules! client_base {

macro_rules! client_primitive {
($t: expr) => {
concat!("global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.", $t)
concat!(
"global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.",
$t
)
};
}

Expand Down Expand Up @@ -142,7 +145,6 @@ impl<'a> StructDefGenerator<'a> {
}
let value_type = self.type_generator.generate_struct_def(struct_def);
quote_in! { self.props_tokens =>
[System.Diagnostics.CodeAnalysis.AllowNull]$['\r']
public $(&value_type) Value { get; set; }$['\r']
};
quote_in! { self.encode_tokens =>
Expand Down Expand Up @@ -183,7 +185,6 @@ impl<'a> Visitor<'a> for StructDefGenerator<'a> {
if let Some(field_name) = struct_field.name() {
let field_name_pascal = field_name.to_case(Case::Pascal);
quote_in! { self.props_tokens =>
[System.Diagnostics.CodeAnalysis.AllowNull]$['\r']
public $(&type_decl_code) $(&field_name_pascal) { get; set; }$['\r']
};
quote_in! { self.encode_tokens =>
Expand Down Expand Up @@ -275,18 +276,6 @@ impl<'a> TypeDeclGenerator<'a> {
std::mem::take(&mut self.code)
}

pub(crate) fn generate_types_as_tuple(&mut self, type_decls: Vec<&'a TypeDecl>) -> String {
if type_decls.is_empty() {
} else if type_decls.len() == 1 {
visitor::accept_type_decl(type_decls[0], self);
} else {
self.code.push_str(base!("BaseTuple<"));
self.join_type_decls(type_decls, ", ");
self.code.push('>');
}
std::mem::take(&mut self.code)
}

fn join_type_decls<I: IntoIterator<Item = &'a TypeDecl>>(
&mut self,
type_decls: I,
Expand Down
15 changes: 7 additions & 8 deletions net/rs/client-gen/tests/snapshots/generator__basic_works.snap
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ using global::Sails.Remoting.Abstractions.Core;
using global::System;
using global::System.Collections.Generic;

#nullable disable

#pragma warning disable RCS0056 // A line is too long

namespace Basic.Client;
Expand All @@ -23,17 +25,14 @@ ICall<global::Substrate.NetApi.Model.Types.Primitive.U8> DoThat(global::Substrat
public Basic(IRemoting remoting) { this.remoting = remoting; }

/// <inheritdoc/>
public ICall<global::Substrate.NetApi.Model.Types.Primitive.U16> DoThis(global::Substrate.NetApi.Model.Types.Primitive.U32 p1, MyParam p2) { return new RemotingAction<global::Substrate.NetApi.Model.Types.Primitive.U16>( this.remoting, [20, 66, 97, 115, 105, 99, 24, 68, 111, 84, 104, 105, 115], new global::Substrate.NetApi.Model.Types.Base.BaseTupleRust(p1, p2) ); }
public ICall<global::Substrate.NetApi.Model.Types.Primitive.U16> DoThis(global::Substrate.NetApi.Model.Types.Primitive.U32 p1, MyParam p2) { return new RemotingAction<global::Substrate.NetApi.Model.Types.Primitive.U16>(this.remoting, [20, 66, 97, 115, 105, 99, 24, 68, 111, 84, 104, 105, 115], p1, p2); }
/// <inheritdoc/>
public ICall<global::Substrate.NetApi.Model.Types.Primitive.U8> DoThat(global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.NetApi.Model.Types.Primitive.U8, global::Substrate.NetApi.Model.Types.Primitive.U32> p1) { return new RemotingAction<global::Substrate.NetApi.Model.Types.Primitive.U8>( this.remoting, [20, 66, 97, 115, 105, 99, 24, 68, 111, 84, 104, 97, 116], new global::Substrate.NetApi.Model.Types.Base.BaseTupleRust(p1) ); } }
public ICall<global::Substrate.NetApi.Model.Types.Primitive.U8> DoThat(global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.NetApi.Model.Types.Primitive.U8, global::Substrate.NetApi.Model.Types.Primitive.U32> p1) { return new RemotingAction<global::Substrate.NetApi.Model.Types.Primitive.U8>(this.remoting, [20, 66, 97, 115, 105, 99, 24, 68, 111, 84, 104, 97, 116], p1); } }

public sealed partial class MyParam : global::Substrate.NetApi.Model.Types.Base.BaseType {
[System.Diagnostics.CodeAnalysis.AllowNull]
public global::Substrate.NetApi.Model.Types.Primitive.U32 F1 { get; set; }
[System.Diagnostics.CodeAnalysis.AllowNull]
public global::Substrate.NetApi.Model.Types.Base.BaseVec<global::Substrate.NetApi.Model.Types.Primitive.Str> F2 { get; set; }
[System.Diagnostics.CodeAnalysis.AllowNull]
public global::Substrate.NetApi.Model.Types.Base.BaseOpt<global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.NetApi.Model.Types.Primitive.U8, global::Substrate.NetApi.Model.Types.Primitive.U32>> F3 { get; set; }
public global::Substrate.NetApi.Model.Types.Primitive.U32 F1 { get; set; }
public global::Substrate.NetApi.Model.Types.Base.BaseVec<global::Substrate.NetApi.Model.Types.Primitive.Str> F2 { get; set; }
public global::Substrate.NetApi.Model.Types.Base.BaseOpt<global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.NetApi.Model.Types.Primitive.U8, global::Substrate.NetApi.Model.Types.Primitive.U32>> F3 { get; set; }
/// <inheritdoc/>
public override string TypeName() => "MyParam";
/// <inheritdoc/>
Expand Down
13 changes: 6 additions & 7 deletions net/rs/client-gen/tests/snapshots/generator__events_works.snap
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ using global::Sails.Remoting.Abstractions.Core;
using global::System;
using global::System.Collections.Generic;

#nullable disable

#pragma warning disable RCS0056 // A line is too long

namespace ServiceWithEvents.Client;
Expand All @@ -22,7 +24,7 @@ public interface IServiceWithEvents
public ServiceWithEvents(IRemoting remoting) { this.remoting = remoting; }

/// <inheritdoc/>
public ICall<global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.NonZeroU64> DoThis(global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.NonZeroU256 p1, MyParam p2) { return new RemotingAction<global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.NonZeroU64>( this.remoting, [68, 83, 101, 114, 118, 105, 99, 101, 87, 105, 116, 104, 69, 118, 101, 110, 116, 115, 24, 68, 111, 84, 104, 105, 115], new global::Substrate.NetApi.Model.Types.Base.BaseTupleRust(p1, p2) ); } }
public ICall<global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.NonZeroU64> DoThis(global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.NonZeroU256 p1, MyParam p2) { return new RemotingAction<global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.NonZeroU64>(this.remoting, [68, 83, 101, 114, 118, 105, 99, 101, 87, 105, 116, 104, 69, 118, 101, 110, 116, 115, 24, 68, 111, 84, 104, 105, 115], p1, p2); } }

public enum ServiceWithEventsEvents { One,
Two,
Expand All @@ -45,12 +47,9 @@ this.AddTypeDecoder<global::Substrate.NetApi.Model.Types.Base.BaseVoid>(ServiceW
public async global::System.Collections.Generic.IAsyncEnumerable<EnumServiceWithEventsEvents> ListenAsync([global::System.Runtime.CompilerServices.EnumeratorCancellation] global::System.Threading.CancellationToken cancellationToken = default) { await foreach (var bytes in this.remoting.ListenAsync(cancellationToken)) { byte idx = 0; foreach (var route in EventRoutes) { if (route.Length > bytes.Length) { continue; } if (route.AsSpan().SequenceEqual(bytes.AsSpan()[..route.Length])) { var bytesLength = bytes.Length - route.Length + 1; var data = new byte[bytesLength]; data[0] = idx; Buffer.BlockCopy(bytes, route.Length, data, 1, bytes.Length - route.Length); var p = 0; EnumServiceWithEventsEvents ev = new(); ev.Decode(bytes, ref p); yield return ev; } idx++; } } } }

public sealed partial class MyParam : global::Substrate.NetApi.Model.Types.Base.BaseType {
[System.Diagnostics.CodeAnalysis.AllowNull]
public global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.NonZeroU256 F1 { get; set; }
[System.Diagnostics.CodeAnalysis.AllowNull]
public global::Substrate.NetApi.Model.Types.Base.BaseVec<global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.NonZeroU8> F2 { get; set; }
[System.Diagnostics.CodeAnalysis.AllowNull]
public global::Substrate.NetApi.Model.Types.Base.BaseOpt<global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.NonZeroU64, global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.NonZeroU256>> F3 { get; set; }
public global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.NonZeroU256 F1 { get; set; }
public global::Substrate.NetApi.Model.Types.Base.BaseVec<global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.NonZeroU8> F2 { get; set; }
public global::Substrate.NetApi.Model.Types.Base.BaseOpt<global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.NonZeroU64, global::Substrate.Gear.Client.NetApi.Model.Types.Primitive.NonZeroU256>> F3 { get; set; }
/// <inheritdoc/>
public override string TypeName() => "MyParam";
/// <inheritdoc/>
Expand Down
24 changes: 11 additions & 13 deletions net/rs/client-gen/tests/snapshots/generator__full.snap
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ using global::Sails.Remoting.Abstractions.Core;
using global::System;
using global::System.Collections.Generic;

#nullable disable

#pragma warning disable RCS0056 // A line is too long

namespace Service.Client;
Expand All @@ -29,7 +31,7 @@ IActivation New(global::Substrate.NetApi.Model.Types.Primitive.U32 a);
{ this.remoting = remoting; }

/// <inheritdoc/>
public IActivation New(global::Substrate.NetApi.Model.Types.Primitive.U32 a) { return new RemotingAction<global::Substrate.NetApi.Model.Types.Primitive.U32>( this.remoting, [12, 78, 101, 119], new global::Substrate.NetApi.Model.Types.Primitive.U32(a)); }
public IActivation New(global::Substrate.NetApi.Model.Types.Primitive.U32 a) { return new RemotingAction<global::Substrate.NetApi.Model.Types.Base.BaseVoid>(this.remoting, [12, 78, 101, 119], a); }

}

Expand All @@ -46,13 +48,13 @@ IQuery<global::Substrate.Gear.Client.NetApi.Model.Types.Base.BaseResult<global::
public Service(IRemoting remoting) { this.remoting = remoting; }

/// <inheritdoc/>
public ICall<global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.NetApi.Model.Types.Primitive.Str, global::Substrate.NetApi.Model.Types.Primitive.U32>> DoThis(global::Substrate.NetApi.Model.Types.Primitive.U32 p1, global::Substrate.NetApi.Model.Types.Primitive.Str p2, global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.NetApi.Model.Types.Base.BaseOpt<global::Substrate.NetApi.Model.Types.Primitive.Str>, global::Substrate.NetApi.Model.Types.Primitive.U8> p3, ThisThatSvcAppTupleStruct p4) { return new RemotingAction<global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.NetApi.Model.Types.Primitive.Str, global::Substrate.NetApi.Model.Types.Primitive.U32>>( this.remoting, [28, 83, 101, 114, 118, 105, 99, 101, 24, 68, 111, 84, 104, 105, 115], new global::Substrate.NetApi.Model.Types.Base.BaseTupleRust(p1, p2, p3, p4) ); }
public ICall<global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.NetApi.Model.Types.Primitive.Str, global::Substrate.NetApi.Model.Types.Primitive.U32>> DoThis(global::Substrate.NetApi.Model.Types.Primitive.U32 p1, global::Substrate.NetApi.Model.Types.Primitive.Str p2, global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.NetApi.Model.Types.Base.BaseOpt<global::Substrate.NetApi.Model.Types.Primitive.Str>, global::Substrate.NetApi.Model.Types.Primitive.U8> p3, ThisThatSvcAppTupleStruct p4) { return new RemotingAction<global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.NetApi.Model.Types.Primitive.Str, global::Substrate.NetApi.Model.Types.Primitive.U32>>(this.remoting, [28, 83, 101, 114, 118, 105, 99, 101, 24, 68, 111, 84, 104, 105, 115], p1, p2, p3, p4); }
/// <inheritdoc/>
public ICall<global::Substrate.Gear.Client.NetApi.Model.Types.Base.BaseResult<global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.NetApi.Model.Types.Primitive.Str, global::Substrate.NetApi.Model.Types.Primitive.U32>, global::Substrate.NetApi.Model.Types.Primitive.Str>> DoThat(ThisThatSvcAppDoThatParam param) { return new RemotingAction<global::Substrate.Gear.Client.NetApi.Model.Types.Base.BaseResult<global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.NetApi.Model.Types.Primitive.Str, global::Substrate.NetApi.Model.Types.Primitive.U32>, global::Substrate.NetApi.Model.Types.Primitive.Str>>( this.remoting, [28, 83, 101, 114, 118, 105, 99, 101, 24, 68, 111, 84, 104, 97, 116], new global::Substrate.NetApi.Model.Types.Base.BaseTupleRust(param) ); }
public ICall<global::Substrate.Gear.Client.NetApi.Model.Types.Base.BaseResult<global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.NetApi.Model.Types.Primitive.Str, global::Substrate.NetApi.Model.Types.Primitive.U32>, global::Substrate.NetApi.Model.Types.Primitive.Str>> DoThat(ThisThatSvcAppDoThatParam param) { return new RemotingAction<global::Substrate.Gear.Client.NetApi.Model.Types.Base.BaseResult<global::Substrate.NetApi.Model.Types.Base.BaseTuple<global::Substrate.NetApi.Model.Types.Primitive.Str, global::Substrate.NetApi.Model.Types.Primitive.U32>, global::Substrate.NetApi.Model.Types.Primitive.Str>>(this.remoting, [28, 83, 101, 114, 118, 105, 99, 101, 24, 68, 111, 84, 104, 97, 116], param); }
/// <inheritdoc/>
public IQuery<global::Substrate.NetApi.Model.Types.Primitive.U32> This(global::Substrate.NetApi.Model.Types.Base.BaseVec<global::Substrate.NetApi.Model.Types.Primitive.U16> v1) { return new RemotingAction<global::Substrate.NetApi.Model.Types.Primitive.U32>( this.remoting, [28, 83, 101, 114, 118, 105, 99, 101, 16, 84, 104, 105, 115], new global::Substrate.NetApi.Model.Types.Base.BaseTupleRust(v1) ); }
public IQuery<global::Substrate.NetApi.Model.Types.Primitive.U32> This(global::Substrate.NetApi.Model.Types.Base.BaseVec<global::Substrate.NetApi.Model.Types.Primitive.U16> v1) { return new RemotingAction<global::Substrate.NetApi.Model.Types.Primitive.U32>(this.remoting, [28, 83, 101, 114, 118, 105, 99, 101, 16, 84, 104, 105, 115], v1); }
/// <inheritdoc/>
public IQuery<global::Substrate.Gear.Client.NetApi.Model.Types.Base.BaseResult<global::Substrate.NetApi.Model.Types.Primitive.Str, global::Substrate.NetApi.Model.Types.Primitive.Str>> That(global::Substrate.NetApi.Model.Types.Base.BaseVoid v1) { return new RemotingAction<global::Substrate.Gear.Client.NetApi.Model.Types.Base.BaseResult<global::Substrate.NetApi.Model.Types.Primitive.Str, global::Substrate.NetApi.Model.Types.Primitive.Str>>( this.remoting, [28, 83, 101, 114, 118, 105, 99, 101, 16, 84, 104, 97, 116], new global::Substrate.NetApi.Model.Types.Base.BaseTupleRust(v1) ); } }
public IQuery<global::Substrate.Gear.Client.NetApi.Model.Types.Base.BaseResult<global::Substrate.NetApi.Model.Types.Primitive.Str, global::Substrate.NetApi.Model.Types.Primitive.Str>> That(global::Substrate.NetApi.Model.Types.Base.BaseVoid v1) { return new RemotingAction<global::Substrate.Gear.Client.NetApi.Model.Types.Base.BaseResult<global::Substrate.NetApi.Model.Types.Primitive.Str, global::Substrate.NetApi.Model.Types.Primitive.Str>>(this.remoting, [28, 83, 101, 114, 118, 105, 99, 101, 16, 84, 104, 97, 116], v1); } }

public enum ServiceEvents {
/// <summary>
Expand Down Expand Up @@ -80,8 +82,7 @@ this.AddTypeDecoder<global::Substrate.NetApi.Model.Types.Primitive.Str>(ServiceE
/// <summary>
/// ThisThatSvcAppTupleStruct docs
/// </summary>
public sealed partial class ThisThatSvcAppTupleStruct : global::Substrate.NetApi.Model.Types.Base.BaseType { [System.Diagnostics.CodeAnalysis.AllowNull]
public global::Substrate.NetApi.Model.Types.Primitive.Bool Value { get; set; }
public sealed partial class ThisThatSvcAppTupleStruct : global::Substrate.NetApi.Model.Types.Base.BaseType { public global::Substrate.NetApi.Model.Types.Primitive.Bool Value { get; set; }
/// <inheritdoc/>
public override string TypeName() => "ThisThatSvcAppTupleStruct";
/// <inheritdoc/>
Expand All @@ -99,18 +100,15 @@ public sealed partial class ThisThatSvcAppDoThatParam : global::Substrate.NetApi
/// <summary>
/// field `query`
/// </summary>
[System.Diagnostics.CodeAnalysis.AllowNull]
public global::Substrate.NetApi.Model.Types.Primitive.U32 Query { get; set; }
public global::Substrate.NetApi.Model.Types.Primitive.U32 Query { get; set; }
/// <summary>
/// field `result`
/// </summary>
[System.Diagnostics.CodeAnalysis.AllowNull]
public global::Substrate.NetApi.Model.Types.Primitive.Str Result { get; set; }
public global::Substrate.NetApi.Model.Types.Primitive.Str Result { get; set; }
/// <summary>
/// field `p3`
/// </summary>
[System.Diagnostics.CodeAnalysis.AllowNull]
public EnumThisThatSvcAppManyVariants P3 { get; set; }
public EnumThisThatSvcAppManyVariants P3 { get; set; }
/// <inheritdoc/>
public override string TypeName() => "ThisThatSvcAppDoThatParam";
/// <inheritdoc/>
Expand Down
Loading