mirror of
https://github.com/Start9Labs/rpc-toolkit.git
synced 2026-03-26 02:11:56 +00:00
use absolute crate paths
This commit is contained in:
@@ -35,7 +35,7 @@ fn build_app(name: LitStr, opt: &mut Options, params: &mut [ParamType]) -> Token
|
||||
return None;
|
||||
}
|
||||
let name = arg.name.clone().unwrap();
|
||||
let name_str = LitStr::new(&name.to_string(), name.span());
|
||||
let name_str = arg.rename.clone().unwrap_or_else(|| LitStr::new(&name.to_string(), name.span()));
|
||||
let help = arg.help.clone().into_iter();
|
||||
let short = arg.short.clone().into_iter();
|
||||
let long = arg.long.clone().into_iter();
|
||||
@@ -77,7 +77,7 @@ fn build_app(name: LitStr, opt: &mut Options, params: &mut [ParamType]) -> Token
|
||||
};
|
||||
Some(quote! {
|
||||
{
|
||||
let mut arg = rpc_toolkit_prelude::Arg::with_name(#name_str);
|
||||
let mut arg = ::rpc_toolkit::command_helpers::prelude::Arg::with_name(#name_str);
|
||||
#(
|
||||
arg = arg.help(#help);
|
||||
)*
|
||||
@@ -100,8 +100,8 @@ fn build_app(name: LitStr, opt: &mut Options, params: &mut [ParamType]) -> Token
|
||||
let required = LitBool::new(subcommand_required, Span::call_site());
|
||||
let alias = &opt.common().aliases;
|
||||
quote! {
|
||||
pub fn build_app() -> rpc_toolkit_prelude::App<'static, 'static> {
|
||||
let mut app = rpc_toolkit_prelude::App::new(#name);
|
||||
pub fn build_app() -> ::rpc_toolkit::command_helpers::prelude::App<'static, 'static> {
|
||||
let mut app = ::rpc_toolkit::command_helpers::prelude::App::new(#name);
|
||||
#(
|
||||
app = app.about(#about);
|
||||
)*
|
||||
@@ -115,7 +115,7 @@ fn build_app(name: LitStr, opt: &mut Options, params: &mut [ParamType]) -> Token
|
||||
app = app.subcommand(#subcommand::build_app());
|
||||
)*
|
||||
if #required {
|
||||
app = app.setting(rpc_toolkit_prelude::AppSettings::SubcommandRequired);
|
||||
app = app.setting(::rpc_toolkit::command_helpers::prelude::AppSettings::SubcommandRequired);
|
||||
}
|
||||
app
|
||||
}
|
||||
@@ -231,7 +231,10 @@ fn rpc_handler(
|
||||
match param {
|
||||
ParamType::Arg(arg) => {
|
||||
let name = arg.name.clone().unwrap();
|
||||
let rename = LitStr::new(&name.to_string(), name.span());
|
||||
let rename = arg
|
||||
.rename
|
||||
.clone()
|
||||
.unwrap_or_else(|| LitStr::new(&name.to_string(), name.span()));
|
||||
let field_name = Ident::new(&format!("arg_{}", name), name.span());
|
||||
let ty = arg.ty.clone();
|
||||
param_def.push(quote! {
|
||||
@@ -257,14 +260,14 @@ fn rpc_handler(
|
||||
let param_generics = param_generics_filter.finish();
|
||||
let (_, param_ty_generics, _) = param_generics.split_for_impl();
|
||||
let param_struct_def = quote! {
|
||||
#[derive(rpc_toolkit_prelude::Deserialize)]
|
||||
#[derive(::rpc_toolkit::command_helpers::prelude::Deserialize)]
|
||||
pub struct Params#param_ty_generics {
|
||||
#(
|
||||
#param_def
|
||||
)*
|
||||
#[serde(flatten)]
|
||||
#[serde(default)]
|
||||
rest: rpc_toolkit_prelude::Value,
|
||||
rest: ::rpc_toolkit::command_helpers::prelude::Value,
|
||||
}
|
||||
};
|
||||
let param = params.iter().map(|param| match param {
|
||||
@@ -284,10 +287,10 @@ fn rpc_handler(
|
||||
_ctx: #ctx_ty,
|
||||
method: &str,
|
||||
_args: Params#param_ty_generics,
|
||||
) -> Result<rpc_toolkit_prelude::Value, rpc_toolkit_prelude::RpcError> {
|
||||
Err(rpc_toolkit_prelude::RpcError {
|
||||
) -> Result<::rpc_toolkit::command_helpers::prelude::Value, ::rpc_toolkit::command_helpers::prelude::RpcError> {
|
||||
Err(::rpc_toolkit::command_helpers::prelude::RpcError {
|
||||
data: Some(method.into()),
|
||||
..rpc_toolkit_prelude::yajrc::METHOD_NOT_FOUND_ERROR
|
||||
..::rpc_toolkit::command_helpers::prelude::yajrc::METHOD_NOT_FOUND_ERROR
|
||||
})
|
||||
}
|
||||
},
|
||||
@@ -298,7 +301,7 @@ fn rpc_handler(
|
||||
}
|
||||
} else if opt.blocking.is_some() {
|
||||
quote! {
|
||||
rpc_toolkit_prelude::spawn_blocking(move || #fn_path(#(#param),*)).await?
|
||||
::rpc_toolkit::command_helpers::prelude::spawn_blocking(move || #fn_path(#(#param),*)).await?
|
||||
}
|
||||
} else {
|
||||
quote! {
|
||||
@@ -312,8 +315,8 @@ fn rpc_handler(
|
||||
ctx: #ctx_ty,
|
||||
method: &str,
|
||||
args: Params#param_ty_generics,
|
||||
) -> Result<rpc_toolkit_prelude::Value, rpc_toolkit_prelude::RpcError> {
|
||||
Ok(rpc_toolkit_prelude::to_value(#invocation)?)
|
||||
) -> Result<::rpc_toolkit::command_helpers::prelude::Value, ::rpc_toolkit::command_helpers::prelude::RpcError> {
|
||||
Ok(::rpc_toolkit::command_helpers::prelude::to_value(#invocation)?)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -328,7 +331,7 @@ fn rpc_handler(
|
||||
}
|
||||
} else if common.blocking.is_some() {
|
||||
quote! {
|
||||
let ctx = rpc_toolkit_prelude::spawn_blocking(move || #fn_path(#(#param),*)).await?;
|
||||
let ctx = ::rpc_toolkit::command_helpers::prelude::spawn_blocking(move || #fn_path(#(#param),*)).await?;
|
||||
}
|
||||
} else {
|
||||
quote! {
|
||||
@@ -345,7 +348,7 @@ fn rpc_handler(
|
||||
),
|
||||
};
|
||||
quote_spanned!{ subcommand.span() =>
|
||||
[#subcommand::NAME, rest] => #subcommand::#rpc_handler(ctx, rest, rpc_toolkit_prelude::from_value(args.rest)?).await
|
||||
[#subcommand::NAME, rest] => #subcommand::#rpc_handler(ctx, rest, ::rpc_toolkit::command_helpers::prelude::from_value(args.rest)?).await
|
||||
}
|
||||
});
|
||||
let subcmd_impl = quote! {
|
||||
@@ -353,9 +356,9 @@ fn rpc_handler(
|
||||
#(
|
||||
#subcmd_impl,
|
||||
)*
|
||||
_ => Err(rpc_toolkit_prelude::RpcError {
|
||||
_ => Err(::rpc_toolkit::command_helpers::prelude::RpcError {
|
||||
data: Some(method.into()),
|
||||
..rpc_toolkit_prelude::yajrc::METHOD_NOT_FOUND_ERROR
|
||||
..::rpc_toolkit::command_helpers::prelude::yajrc::METHOD_NOT_FOUND_ERROR
|
||||
})
|
||||
}
|
||||
};
|
||||
@@ -368,7 +371,7 @@ fn rpc_handler(
|
||||
}
|
||||
} else if self_impl.blocking {
|
||||
quote_spanned! { self_impl_fn.span() =>
|
||||
rpc_toolkit_prelude::spawn_blocking(move || #self_impl_fn(ctx)).await?
|
||||
::rpc_toolkit::command_helpers::prelude::spawn_blocking(move || #self_impl_fn(ctx)).await?
|
||||
}
|
||||
} else {
|
||||
quote_spanned! { self_impl_fn.span() =>
|
||||
@@ -382,11 +385,11 @@ fn rpc_handler(
|
||||
ctx: #ctx_ty,
|
||||
method: &str,
|
||||
args: Params#param_ty_generics,
|
||||
) -> Result<rpc_toolkit_prelude::Value, rpc_toolkit_prelude::RpcError> {
|
||||
) -> Result<::rpc_toolkit::command_helpers::prelude::Value, ::rpc_toolkit::command_helpers::prelude::RpcError> {
|
||||
#cmd_preprocess
|
||||
|
||||
if method.is_empty() {
|
||||
Ok(rpc_toolkit_prelude::to_value(&#self_impl)?)
|
||||
Ok(::rpc_toolkit::command_helpers::prelude::to_value(&#self_impl)?)
|
||||
} else {
|
||||
#subcmd_impl
|
||||
}
|
||||
@@ -401,7 +404,7 @@ fn rpc_handler(
|
||||
ctx: #ctx_ty,
|
||||
method: &str,
|
||||
args: Params#param_ty_generics,
|
||||
) -> Result<rpc_toolkit_prelude::Value, rpc_toolkit_prelude::RpcError> {
|
||||
) -> Result<::rpc_toolkit::command_helpers::prelude::Value, ::rpc_toolkit::command_helpers::prelude::RpcError> {
|
||||
#cmd_preprocess
|
||||
|
||||
#subcmd_impl
|
||||
@@ -430,7 +433,7 @@ fn cli_handler(
|
||||
}
|
||||
let mut generics = fn_generics.clone();
|
||||
generics.params.push(macro_try!(syn::parse2(
|
||||
quote! { ParentParams: rpc_toolkit_prelude::Serialize }
|
||||
quote! { ParentParams: ::rpc_toolkit::command_helpers::prelude::Serialize }
|
||||
)));
|
||||
if generics.lt_token.is_none() {
|
||||
generics.lt_token = Some(Default::default());
|
||||
@@ -458,7 +461,7 @@ fn cli_handler(
|
||||
}
|
||||
let mut param_generics = param_generics_filter.finish();
|
||||
param_generics.params.push(macro_try!(syn::parse2(quote! {
|
||||
ParentParams: rpc_toolkit_prelude::Serialize
|
||||
ParentParams: ::rpc_toolkit::command_helpers::prelude::Serialize
|
||||
})));
|
||||
if param_generics.lt_token.is_none() {
|
||||
generics.lt_token = Some(Default::default());
|
||||
@@ -472,7 +475,10 @@ fn cli_handler(
|
||||
match param {
|
||||
ParamType::Arg(arg) => {
|
||||
let name = arg.name.clone().unwrap();
|
||||
let rename = LitStr::new(&name.to_string(), name.span());
|
||||
let rename = arg
|
||||
.rename
|
||||
.clone()
|
||||
.unwrap_or_else(|| LitStr::new(&name.to_string(), name.span()));
|
||||
let field_name = Ident::new(&format!("arg_{}", name), name.span());
|
||||
let ty = arg.ty.clone();
|
||||
arg_def.push(quote! {
|
||||
@@ -494,7 +500,7 @@ fn cli_handler(
|
||||
})
|
||||
.map(|arg| {
|
||||
let name = arg.name.clone().unwrap();
|
||||
let arg_name = LitStr::new(&name.to_string(), name.span());
|
||||
let arg_name = arg.rename.clone().unwrap_or_else(|| LitStr::new(&name.to_string(), name.span()));
|
||||
let field_name = Ident::new(&format!("arg_{}", name), name.span());
|
||||
if arg.stdin.is_some() {
|
||||
if let Some(parse) = &arg.parse {
|
||||
@@ -503,7 +509,7 @@ fn cli_handler(
|
||||
}
|
||||
} else {
|
||||
quote! {
|
||||
#field_name: rpc_toolkit_prelude::default_stdin_parser(&mut std::io::stdin(), matches)?,
|
||||
#field_name: ::rpc_toolkit::command_helpers::prelude::default_stdin_parser(&mut std::io::stdin(), matches)?,
|
||||
}
|
||||
}
|
||||
} else if arg.check_is_present {
|
||||
@@ -521,7 +527,7 @@ fn cli_handler(
|
||||
}
|
||||
} else {
|
||||
quote! {
|
||||
rpc_toolkit_prelude::default_arg_parser(arg_val, matches)
|
||||
::rpc_toolkit::command_helpers::prelude::default_arg_parser(arg_val, matches)
|
||||
}
|
||||
};
|
||||
if arg.optional {
|
||||
@@ -547,7 +553,7 @@ fn cli_handler(
|
||||
}
|
||||
});
|
||||
let param_struct_def = quote! {
|
||||
#[derive(rpc_toolkit_prelude::Serialize)]
|
||||
#[derive(::rpc_toolkit::command_helpers::prelude::Serialize)]
|
||||
struct Params#param_ty_generics {
|
||||
#(
|
||||
#arg_def
|
||||
@@ -566,9 +572,9 @@ fn cli_handler(
|
||||
let rt_ref = if let Some(rt) = rt.as_mut() {
|
||||
&*rt
|
||||
} else {
|
||||
rt = Some(rpc_toolkit_prelude::Runtime::new().map_err(|e| rpc_toolkit_prelude::RpcError {
|
||||
rt = Some(::rpc_toolkit::command_helpers::prelude::Runtime::new().map_err(|e| ::rpc_toolkit::command_helpers::prelude::RpcError {
|
||||
data: Some(format!("{}", e).into()),
|
||||
..rpc_toolkit_prelude::yajrc::INTERNAL_ERROR
|
||||
..::rpc_toolkit::command_helpers::prelude::yajrc::INTERNAL_ERROR
|
||||
})?);
|
||||
rt.as_ref().unwrap()
|
||||
};
|
||||
@@ -576,20 +582,20 @@ fn cli_handler(
|
||||
let display = if let Some(display) = &opt.common().display {
|
||||
quote! { #display }
|
||||
} else {
|
||||
quote! { rpc_toolkit_prelude::default_display }
|
||||
quote! { ::rpc_toolkit::command_helpers::prelude::default_display }
|
||||
};
|
||||
match opt {
|
||||
Options::Leaf(opt) if matches!(opt.exec_ctx, ExecutionContext::RpcOnly(_)) => quote! {
|
||||
pub fn cli_handler#generics(
|
||||
_ctx: #ctx_ty,
|
||||
_rt: Option<rpc_toolkit_prelude::Runtime>,
|
||||
_matches: &rpc_toolkit_prelude::ArgMatches<'_>,
|
||||
method: rpc_toolkit_prelude::Cow<'_, str>,
|
||||
_rt: Option<::rpc_toolkit::command_helpers::prelude::Runtime>,
|
||||
_matches: &::rpc_toolkit::command_helpers::prelude::ArgMatches<'_>,
|
||||
method: ::rpc_toolkit::command_helpers::prelude::Cow<'_, str>,
|
||||
_parent_params: ParentParams,
|
||||
) -> Result<(), rpc_toolkit_prelude::RpcError> {
|
||||
Err(rpc_toolkit_prelude::RpcError {
|
||||
) -> Result<(), ::rpc_toolkit::command_helpers::prelude::RpcError> {
|
||||
Err(::rpc_toolkit::command_helpers::prelude::RpcError {
|
||||
data: Some(method.into()),
|
||||
..rpc_toolkit_prelude::yajrc::METHOD_NOT_FOUND_ERROR
|
||||
..::rpc_toolkit::command_helpers::prelude::yajrc::METHOD_NOT_FOUND_ERROR
|
||||
})
|
||||
}
|
||||
},
|
||||
@@ -607,23 +613,23 @@ fn cli_handler(
|
||||
quote! {
|
||||
pub fn cli_handler#generics(
|
||||
ctx: #ctx_ty,
|
||||
mut rt: Option<rpc_toolkit_prelude::Runtime>,
|
||||
matches: &rpc_toolkit_prelude::ArgMatches<'_>,
|
||||
method: rpc_toolkit_prelude::Cow<'_, str>,
|
||||
mut rt: Option<::rpc_toolkit::command_helpers::prelude::Runtime>,
|
||||
matches: &::rpc_toolkit::command_helpers::prelude::ArgMatches<'_>,
|
||||
method: ::rpc_toolkit::command_helpers::prelude::Cow<'_, str>,
|
||||
parent_params: ParentParams,
|
||||
) -> Result<(), rpc_toolkit_prelude::RpcError> {
|
||||
) -> Result<(), ::rpc_toolkit::command_helpers::prelude::RpcError> {
|
||||
#param_struct_def
|
||||
|
||||
#create_rt
|
||||
|
||||
#[allow(unreachable_code)]
|
||||
let return_ty = if true {
|
||||
rpc_toolkit_prelude::PhantomData
|
||||
::rpc_toolkit::command_helpers::prelude::PhantomData
|
||||
} else {
|
||||
rpc_toolkit_prelude::make_phantom(#invocation)
|
||||
::rpc_toolkit::command_helpers::prelude::make_phantom(#invocation)
|
||||
};
|
||||
|
||||
let res = rt_ref.block_on(rpc_toolkit_prelude::call_remote(ctx, method.as_ref(), params, return_ty))?;
|
||||
let res = rt_ref.block_on(::rpc_toolkit::command_helpers::prelude::call_remote(ctx, method.as_ref(), params, return_ty))?;
|
||||
Ok(#display(res.result?, matches))
|
||||
}
|
||||
}
|
||||
@@ -644,7 +650,7 @@ fn cli_handler(
|
||||
}
|
||||
} else {
|
||||
quote! {
|
||||
rpc_toolkit_prelude::default_display(#invocation, matches)
|
||||
::rpc_toolkit::command_helpers::prelude::default_display(#invocation, matches)
|
||||
}
|
||||
};
|
||||
let rt_action = if opt.is_async {
|
||||
@@ -657,11 +663,11 @@ fn cli_handler(
|
||||
quote! {
|
||||
pub fn cli_handler#generics(
|
||||
ctx: #ctx_ty,
|
||||
mut rt: Option<rpc_toolkit_prelude::Runtime>,
|
||||
matches: &rpc_toolkit_prelude::ArgMatches<'_>,
|
||||
_method: rpc_toolkit_prelude::Cow<'_, str>,
|
||||
mut rt: Option<::rpc_toolkit::command_helpers::prelude::Runtime>,
|
||||
matches: &::rpc_toolkit::command_helpers::prelude::ArgMatches<'_>,
|
||||
_method: ::rpc_toolkit::command_helpers::prelude::Cow<'_, str>,
|
||||
_parent_params: ParentParams
|
||||
) -> Result<(), rpc_toolkit_prelude::RpcError> {
|
||||
) -> Result<(), ::rpc_toolkit::command_helpers::prelude::RpcError> {
|
||||
#rt_action
|
||||
Ok(#display_res)
|
||||
}
|
||||
@@ -757,34 +763,34 @@ fn cli_handler(
|
||||
|
||||
#[allow(unreachable_code)]
|
||||
let return_ty = if true {
|
||||
rpc_toolkit_prelude::PhantomData
|
||||
::rpc_toolkit::command_helpers::prelude::PhantomData
|
||||
} else {
|
||||
let ctx_new = unreachable!();
|
||||
rpc_toolkit_prelude::match_types(&ctx, &ctx_new);
|
||||
::rpc_toolkit::command_helpers::prelude::match_types(&ctx, &ctx_new);
|
||||
let ctx = ctx_new;
|
||||
rpc_toolkit_prelude::make_phantom(#self_impl?)
|
||||
::rpc_toolkit::command_helpers::prelude::make_phantom(#self_impl?)
|
||||
};
|
||||
|
||||
let res = rt_ref.block_on(rpc_toolkit_prelude::call_remote(ctx, method.as_ref(), params, return_ty))?;
|
||||
let res = rt_ref.block_on(::rpc_toolkit::command_helpers::prelude::call_remote(ctx, method.as_ref(), params, return_ty))?;
|
||||
Ok(#display(res.result?, matches))
|
||||
}
|
||||
}
|
||||
}
|
||||
_ => quote! {
|
||||
Err(rpc_toolkit_prelude::RpcError {
|
||||
Err(::rpc_toolkit::command_helpers::prelude::RpcError {
|
||||
data: Some(method.into()),
|
||||
..rpc_toolkit_prelude::yajrc::METHOD_NOT_FOUND_ERROR
|
||||
..::rpc_toolkit::command_helpers::prelude::yajrc::METHOD_NOT_FOUND_ERROR
|
||||
}),
|
||||
},
|
||||
};
|
||||
quote! {
|
||||
pub fn cli_handler#generics(
|
||||
ctx: #ctx_ty,
|
||||
mut rt: Option<rpc_toolkit_prelude::Runtime>,
|
||||
matches: &rpc_toolkit_prelude::ArgMatches<'_>,
|
||||
method: rpc_toolkit_prelude::Cow<'_, str>,
|
||||
mut rt: Option<::rpc_toolkit::command_helpers::prelude::Runtime>,
|
||||
matches: &::rpc_toolkit::command_helpers::prelude::ArgMatches<'_>,
|
||||
method: ::rpc_toolkit::command_helpers::prelude::Cow<'_, str>,
|
||||
parent_params: ParentParams,
|
||||
) -> Result<(), rpc_toolkit_prelude::RpcError> {
|
||||
) -> Result<(), ::rpc_toolkit::command_helpers::prelude::RpcError> {
|
||||
#param_struct_def
|
||||
|
||||
#cmd_preprocess
|
||||
@@ -813,12 +819,11 @@ pub fn build(args: AttributeArgs, mut item: ItemFn) -> TokenStream {
|
||||
let fn_vis = &item.vis;
|
||||
let fn_name = &item.sig.ident;
|
||||
let fn_generics = &item.sig.generics;
|
||||
let command_name = opt
|
||||
let command_name_str = opt
|
||||
.common()
|
||||
.rename
|
||||
.clone()
|
||||
.unwrap_or_else(|| fn_name.clone());
|
||||
let command_name_str = LitStr::new(&command_name.to_string(), command_name.span());
|
||||
.unwrap_or_else(|| LitStr::new(&fn_name.to_string(), fn_name.span()));
|
||||
let is_async = LitBool::new(
|
||||
opt.common().is_async,
|
||||
item.sig
|
||||
@@ -834,7 +839,6 @@ pub fn build(args: AttributeArgs, mut item: ItemFn) -> TokenStream {
|
||||
#item
|
||||
#fn_vis mod #fn_name {
|
||||
use super::*;
|
||||
use rpc_toolkit::command_helpers::prelude as rpc_toolkit_prelude;
|
||||
|
||||
pub const NAME: &'static str = #command_name_str;
|
||||
pub const ASYNC: bool = #is_async;
|
||||
@@ -846,6 +850,5 @@ pub fn build(args: AttributeArgs, mut item: ItemFn) -> TokenStream {
|
||||
#cli_handler
|
||||
}
|
||||
};
|
||||
// panic!("{}", res);
|
||||
res
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ pub struct LeafOptions {
|
||||
is_async: bool,
|
||||
aliases: Vec<LitStr>,
|
||||
about: Option<LitStr>,
|
||||
rename: Option<Ident>,
|
||||
rename: Option<LitStr>,
|
||||
exec_ctx: ExecutionContext,
|
||||
display: Option<Path>,
|
||||
}
|
||||
@@ -74,7 +74,7 @@ pub struct ArgOptions {
|
||||
check_is_present: bool,
|
||||
help: Option<LitStr>,
|
||||
name: Option<Ident>,
|
||||
rename: Option<Ident>,
|
||||
rename: Option<LitStr>,
|
||||
short: Option<LitStr>,
|
||||
long: Option<LitStr>,
|
||||
parse: Option<Path>,
|
||||
|
||||
@@ -291,10 +291,7 @@ pub fn parse_command_attr(args: AttributeArgs) -> Result<Options> {
|
||||
if opt.common().rename.is_some() {
|
||||
return Err(Error::new(rename.span(), "duplicate argument `rename`"));
|
||||
}
|
||||
opt.common().rename = Some(
|
||||
syn::parse_str(&rename.value())
|
||||
.map_err(|e| Error::new(rename.span(), format!("{}", e)))?,
|
||||
);
|
||||
opt.common().rename = Some(rename);
|
||||
} else {
|
||||
return Err(Error::new(nv.lit.span(), "`rename` must be a string"));
|
||||
}
|
||||
@@ -519,10 +516,7 @@ pub fn parse_arg_attr(attr: Attribute, arg: PatType) -> Result<ArgOptions> {
|
||||
"duplicate argument `rename`",
|
||||
));
|
||||
}
|
||||
opt.rename = Some(
|
||||
syn::parse_str(&rename.value())
|
||||
.map_err(|e| Error::new(rename.span(), format!("{}", e)))?,
|
||||
);
|
||||
opt.rename = Some(rename);
|
||||
} else {
|
||||
return Err(Error::new(nv.lit.span(), "`rename` must be a string"));
|
||||
}
|
||||
@@ -601,7 +595,6 @@ pub fn parse_arg_attr(attr: Attribute, arg: PatType) -> Result<ArgOptions> {
|
||||
Meta::Path(_) => (),
|
||||
Meta::NameValue(nv) => return Err(Error::new(nv.span(), "`arg` cannot be assigned to")),
|
||||
}
|
||||
opt.name = opt.name.or(opt.rename.clone());
|
||||
if opt.name.is_none() {
|
||||
return Err(Error::new(
|
||||
arg_span,
|
||||
|
||||
@@ -15,29 +15,29 @@ pub fn build(args: RpcServerArgs) -> TokenStream {
|
||||
arguments,
|
||||
});
|
||||
let ctx = args.ctx;
|
||||
let status_fn = args
|
||||
.status_fn
|
||||
.unwrap_or_else(|| syn::parse2(quote! { |_| rpc_toolkit::hyper::StatusCode::OK }).unwrap());
|
||||
let status_fn = args.status_fn.unwrap_or_else(|| {
|
||||
syn::parse2(quote! { |_| ::rpc_toolkit::hyper::StatusCode::OK }).unwrap()
|
||||
});
|
||||
quote! {
|
||||
{
|
||||
let ctx = #ctx;
|
||||
let status_fn = #status_fn;
|
||||
let builder = rpc_toolkit::rpc_server_helpers::make_builder(&ctx);
|
||||
let make_svc = rpc_toolkit::hyper::service::make_service_fn(move |_| {
|
||||
let builder = ::rpc_toolkit::rpc_server_helpers::make_builder(&ctx);
|
||||
let make_svc = ::rpc_toolkit::hyper::service::make_service_fn(move |_| {
|
||||
let ctx = ctx.clone();
|
||||
async move {
|
||||
Ok::<_, rpc_toolkit::hyper::Error>(rpc_toolkit::hyper::service::service_fn(move |mut req| {
|
||||
Ok::<_, ::rpc_toolkit::hyper::Error>(::rpc_toolkit::hyper::service::service_fn(move |mut req| {
|
||||
let ctx = ctx.clone();
|
||||
async move {
|
||||
let rpc_req = rpc_toolkit::rpc_server_helpers::make_request(&mut req).await;
|
||||
rpc_toolkit::rpc_server_helpers::to_response(
|
||||
let rpc_req = ::rpc_toolkit::rpc_server_helpers::make_request(&mut req).await;
|
||||
::rpc_toolkit::rpc_server_helpers::to_response(
|
||||
&req,
|
||||
match rpc_req {
|
||||
Ok(rpc_req) => Ok((
|
||||
rpc_req.id,
|
||||
#command(
|
||||
ctx,
|
||||
rpc_toolkit::yajrc::RpcMethod::as_str(&rpc_req.method),
|
||||
::rpc_toolkit::yajrc::RpcMethod::as_str(&rpc_req.method),
|
||||
rpc_req.params,
|
||||
)
|
||||
.await,
|
||||
|
||||
@@ -46,6 +46,3 @@ pub use crate::context::Context;
|
||||
pub mod command_helpers;
|
||||
mod context;
|
||||
pub mod rpc_server_helpers;
|
||||
|
||||
#[cfg(test)]
|
||||
mod test;
|
||||
|
||||
@@ -2,14 +2,11 @@ use std::fmt::Display;
|
||||
use std::str::FromStr;
|
||||
use std::sync::Arc;
|
||||
|
||||
use clap::Arg;
|
||||
use rpc_toolkit_macro::run_cli;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use url::Host;
|
||||
use yajrc::RpcError;
|
||||
|
||||
pub use crate as rpc_toolkit;
|
||||
use crate::{command, rpc_server, Context};
|
||||
use rpc_toolkit::clap::Arg;
|
||||
use rpc_toolkit::serde::{Deserialize, Serialize};
|
||||
use rpc_toolkit::url::Host;
|
||||
use rpc_toolkit::yajrc::RpcError;
|
||||
use rpc_toolkit::{command, rpc_server, run_cli, Context};
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct AppState<T, U> {
|
||||
@@ -91,8 +88,6 @@ fn dothething2<U: Serialize + for<'a> Deserialize<'a> + FromStr<Err = E>, E: Dis
|
||||
async fn test() {
|
||||
use tokio::io::AsyncWriteExt;
|
||||
|
||||
use crate as rpc_toolkit;
|
||||
|
||||
let seed = Arc::new(ConfigSeed {
|
||||
host: Host::parse("localhost").unwrap(),
|
||||
port: 8000,
|
||||
@@ -103,9 +98,10 @@ async fn test() {
|
||||
.arg("test")
|
||||
.arg("--package")
|
||||
.arg("rpc-toolkit")
|
||||
.arg("--lib")
|
||||
.arg("--test")
|
||||
.arg("test")
|
||||
.arg("--")
|
||||
.arg("test::cli_test")
|
||||
.arg("cli_test")
|
||||
.arg("--exact")
|
||||
.arg("--nocapture")
|
||||
.arg("--")
|
||||
Reference in New Issue
Block a user