mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 09:21:04 +00:00
Run cargo fmt on the whole code base (#9394)
* Run cargo fmt on the whole code base * Second run * Add CI check * Fix compilation * More unnecessary braces * Handle weights * Use --all * Use correct attributes... * Fix UI tests * AHHHHHHHHH * 🤦 * Docs * Fix compilation * 🤷 * Please stop * 🤦 x 2 * More * make rustfmt.toml consistent with polkadot Co-authored-by: André Silva <andrerfosilva@gmail.com>
This commit is contained in:
@@ -46,25 +46,29 @@ pub(crate) fn from_impl(count: usize) -> TokenStream2 {
|
||||
),)
|
||||
};
|
||||
|
||||
let from_impl_rest = (3..=count).map(|c| {
|
||||
let inner = (0..c-1).map(|i|
|
||||
quote!((index_of_target(&distribution[#i].0).or_invalid_index()?, distribution[#i].1),)
|
||||
).collect::<TokenStream2>();
|
||||
|
||||
let field_name = field_name_for(c);
|
||||
let last_index = c - 1;
|
||||
let last = quote!(index_of_target(&distribution[#last_index].0).or_invalid_index()?);
|
||||
|
||||
quote!(
|
||||
#c => compact.#field_name.push(
|
||||
(
|
||||
index_of_voter(&who).or_invalid_index()?,
|
||||
[#inner],
|
||||
#last,
|
||||
let from_impl_rest = (3..=count)
|
||||
.map(|c| {
|
||||
let inner = (0..c - 1)
|
||||
.map(
|
||||
|i| quote!((index_of_target(&distribution[#i].0).or_invalid_index()?, distribution[#i].1),),
|
||||
)
|
||||
),
|
||||
)
|
||||
}).collect::<TokenStream2>();
|
||||
.collect::<TokenStream2>();
|
||||
|
||||
let field_name = field_name_for(c);
|
||||
let last_index = c - 1;
|
||||
let last = quote!(index_of_target(&distribution[#last_index].0).or_invalid_index()?);
|
||||
|
||||
quote!(
|
||||
#c => compact.#field_name.push(
|
||||
(
|
||||
index_of_voter(&who).or_invalid_index()?,
|
||||
[#inner],
|
||||
#last,
|
||||
)
|
||||
),
|
||||
)
|
||||
})
|
||||
.collect::<TokenStream2>();
|
||||
|
||||
quote!(
|
||||
#from_impl_single
|
||||
@@ -113,39 +117,41 @@ pub(crate) fn into_impl(count: usize, per_thing: syn::Type) -> TokenStream2 {
|
||||
)
|
||||
};
|
||||
|
||||
let into_impl_rest = (3..=count).map(|c| {
|
||||
let name = field_name_for(c);
|
||||
quote!(
|
||||
for (voter_index, inners, t_last_idx) in self.#name {
|
||||
let mut sum = #per_thing::zero();
|
||||
let mut inners_parsed = inners
|
||||
.iter()
|
||||
.map(|(ref t_idx, p)| {
|
||||
sum = _npos::sp_arithmetic::traits::Saturating::saturating_add(sum, *p);
|
||||
let target = target_at(*t_idx).or_invalid_index()?;
|
||||
Ok((target, *p))
|
||||
})
|
||||
.collect::<Result<_npos::sp_std::prelude::Vec<(A, #per_thing)>, _npos::Error>>()?;
|
||||
let into_impl_rest = (3..=count)
|
||||
.map(|c| {
|
||||
let name = field_name_for(c);
|
||||
quote!(
|
||||
for (voter_index, inners, t_last_idx) in self.#name {
|
||||
let mut sum = #per_thing::zero();
|
||||
let mut inners_parsed = inners
|
||||
.iter()
|
||||
.map(|(ref t_idx, p)| {
|
||||
sum = _npos::sp_arithmetic::traits::Saturating::saturating_add(sum, *p);
|
||||
let target = target_at(*t_idx).or_invalid_index()?;
|
||||
Ok((target, *p))
|
||||
})
|
||||
.collect::<Result<_npos::sp_std::prelude::Vec<(A, #per_thing)>, _npos::Error>>()?;
|
||||
|
||||
if sum >= #per_thing::one() {
|
||||
return Err(_npos::Error::CompactStakeOverflow);
|
||||
if sum >= #per_thing::one() {
|
||||
return Err(_npos::Error::CompactStakeOverflow);
|
||||
}
|
||||
|
||||
// defensive only. Since Percent doesn't have `Sub`.
|
||||
let p_last = _npos::sp_arithmetic::traits::Saturating::saturating_sub(
|
||||
#per_thing::one(),
|
||||
sum,
|
||||
);
|
||||
|
||||
inners_parsed.push((target_at(t_last_idx).or_invalid_index()?, p_last));
|
||||
|
||||
assignments.push(_npos::Assignment {
|
||||
who: voter_at(voter_index).or_invalid_index()?,
|
||||
distribution: inners_parsed,
|
||||
});
|
||||
}
|
||||
|
||||
// defensive only. Since Percent doesn't have `Sub`.
|
||||
let p_last = _npos::sp_arithmetic::traits::Saturating::saturating_sub(
|
||||
#per_thing::one(),
|
||||
sum,
|
||||
);
|
||||
|
||||
inners_parsed.push((target_at(t_last_idx).or_invalid_index()?, p_last));
|
||||
|
||||
assignments.push(_npos::Assignment {
|
||||
who: voter_at(voter_index).or_invalid_index()?,
|
||||
distribution: inners_parsed,
|
||||
});
|
||||
}
|
||||
)
|
||||
}).collect::<TokenStream2>();
|
||||
)
|
||||
})
|
||||
.collect::<TokenStream2>();
|
||||
|
||||
quote!(
|
||||
#into_impl_single
|
||||
|
||||
@@ -80,39 +80,42 @@ fn decode_impl(
|
||||
}
|
||||
};
|
||||
|
||||
let decode_impl_rest = (3..=count).map(|c| {
|
||||
let name = field_name_for(c);
|
||||
let decode_impl_rest = (3..=count)
|
||||
.map(|c| {
|
||||
let name = field_name_for(c);
|
||||
|
||||
let inner_impl = (0..c-1).map(|i|
|
||||
quote! { ( (inner[#i].0).0, (inner[#i].1).0 ), }
|
||||
).collect::<TokenStream2>();
|
||||
let inner_impl = (0..c - 1)
|
||||
.map(|i| quote! { ( (inner[#i].0).0, (inner[#i].1).0 ), })
|
||||
.collect::<TokenStream2>();
|
||||
|
||||
quote! {
|
||||
let #name =
|
||||
<
|
||||
_npos::sp_std::prelude::Vec<(
|
||||
_npos::codec::Compact<#voter_type>,
|
||||
[(_npos::codec::Compact<#target_type>, _npos::codec::Compact<#weight_type>); #c-1],
|
||||
_npos::codec::Compact<#target_type>,
|
||||
)>
|
||||
as _npos::codec::Decode
|
||||
>::decode(value)?;
|
||||
let #name = #name
|
||||
.into_iter()
|
||||
.map(|(v, inner, t_last)| (
|
||||
v.0,
|
||||
[ #inner_impl ],
|
||||
t_last.0,
|
||||
))
|
||||
.collect::<_npos::sp_std::prelude::Vec<_>>();
|
||||
}
|
||||
}).collect::<TokenStream2>();
|
||||
quote! {
|
||||
let #name =
|
||||
<
|
||||
_npos::sp_std::prelude::Vec<(
|
||||
_npos::codec::Compact<#voter_type>,
|
||||
[(_npos::codec::Compact<#target_type>, _npos::codec::Compact<#weight_type>); #c-1],
|
||||
_npos::codec::Compact<#target_type>,
|
||||
)>
|
||||
as _npos::codec::Decode
|
||||
>::decode(value)?;
|
||||
let #name = #name
|
||||
.into_iter()
|
||||
.map(|(v, inner, t_last)| (
|
||||
v.0,
|
||||
[ #inner_impl ],
|
||||
t_last.0,
|
||||
))
|
||||
.collect::<_npos::sp_std::prelude::Vec<_>>();
|
||||
}
|
||||
})
|
||||
.collect::<TokenStream2>();
|
||||
|
||||
|
||||
let all_field_names = (1..=count).map(|c| {
|
||||
let name = field_name_for(c);
|
||||
quote! { #name, }
|
||||
}).collect::<TokenStream2>();
|
||||
let all_field_names = (1..=count)
|
||||
.map(|c| {
|
||||
let name = field_name_for(c);
|
||||
quote! { #name, }
|
||||
})
|
||||
.collect::<TokenStream2>();
|
||||
|
||||
quote!(
|
||||
impl _npos::codec::Decode for #ident {
|
||||
@@ -165,29 +168,33 @@ fn encode_impl(ident: syn::Ident, count: usize) -> TokenStream2 {
|
||||
}
|
||||
};
|
||||
|
||||
let encode_impl_rest = (3..=count).map(|c| {
|
||||
let name = field_name_for(c);
|
||||
let encode_impl_rest = (3..=count)
|
||||
.map(|c| {
|
||||
let name = field_name_for(c);
|
||||
|
||||
// we use the knowledge of the length to avoid copy_from_slice.
|
||||
let inners_compact_array = (0..c-1).map(|i|
|
||||
quote!{(
|
||||
_npos::codec::Compact(inner[#i].0.clone()),
|
||||
_npos::codec::Compact(inner[#i].1.clone()),
|
||||
),}
|
||||
).collect::<TokenStream2>();
|
||||
// we use the knowledge of the length to avoid copy_from_slice.
|
||||
let inners_compact_array = (0..c - 1)
|
||||
.map(|i| {
|
||||
quote! {(
|
||||
_npos::codec::Compact(inner[#i].0.clone()),
|
||||
_npos::codec::Compact(inner[#i].1.clone()),
|
||||
),}
|
||||
})
|
||||
.collect::<TokenStream2>();
|
||||
|
||||
quote! {
|
||||
let #name = self.#name
|
||||
.iter()
|
||||
.map(|(v, inner, t_last)| (
|
||||
_npos::codec::Compact(v.clone()),
|
||||
[ #inners_compact_array ],
|
||||
_npos::codec::Compact(t_last.clone()),
|
||||
))
|
||||
.collect::<_npos::sp_std::prelude::Vec<_>>();
|
||||
#name.encode_to(&mut r);
|
||||
}
|
||||
}).collect::<TokenStream2>();
|
||||
quote! {
|
||||
let #name = self.#name
|
||||
.iter()
|
||||
.map(|(v, inner, t_last)| (
|
||||
_npos::codec::Compact(v.clone()),
|
||||
[ #inners_compact_array ],
|
||||
_npos::codec::Compact(t_last.clone()),
|
||||
))
|
||||
.collect::<_npos::sp_std::prelude::Vec<_>>();
|
||||
#name.encode_to(&mut r);
|
||||
}
|
||||
})
|
||||
.collect::<TokenStream2>();
|
||||
|
||||
quote!(
|
||||
impl _npos::codec::Encode for #ident {
|
||||
|
||||
@@ -65,7 +65,7 @@ pub(crate) fn from_impl(count: usize) -> TokenStream2 {
|
||||
)
|
||||
),
|
||||
)
|
||||
})
|
||||
})
|
||||
.collect::<TokenStream2>();
|
||||
|
||||
quote!(
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
//! Proc macro for a npos compact assignment.
|
||||
|
||||
use proc_macro::TokenStream;
|
||||
use proc_macro2::{TokenStream as TokenStream2, Span, Ident};
|
||||
use proc_macro2::{Ident, Span, TokenStream as TokenStream2};
|
||||
use proc_macro_crate::{crate_name, FoundCrate};
|
||||
use quote::quote;
|
||||
use syn::parse::{Parse, ParseStream, Result};
|
||||
@@ -82,15 +82,8 @@ pub(crate) fn syn_err(message: &'static str) -> syn::Error {
|
||||
/// ```
|
||||
#[proc_macro]
|
||||
pub fn generate_solution_type(item: TokenStream) -> TokenStream {
|
||||
let SolutionDef {
|
||||
vis,
|
||||
ident,
|
||||
count,
|
||||
voter_type,
|
||||
target_type,
|
||||
weight_type,
|
||||
compact_encoding,
|
||||
} = syn::parse_macro_input!(item as SolutionDef);
|
||||
let SolutionDef { vis, ident, count, voter_type, target_type, weight_type, compact_encoding } =
|
||||
syn::parse_macro_input!(item as SolutionDef);
|
||||
|
||||
let imports = imports().unwrap_or_else(|e| e.to_compile_error());
|
||||
|
||||
@@ -102,7 +95,8 @@ pub fn generate_solution_type(item: TokenStream) -> TokenStream {
|
||||
target_type.clone(),
|
||||
weight_type.clone(),
|
||||
compact_encoding,
|
||||
).unwrap_or_else(|e| e.to_compile_error());
|
||||
)
|
||||
.unwrap_or_else(|e| e.to_compile_error());
|
||||
|
||||
quote!(
|
||||
#imports
|
||||
@@ -167,7 +161,7 @@ fn struct_def(
|
||||
weight_type.clone(),
|
||||
count,
|
||||
);
|
||||
quote!{
|
||||
quote! {
|
||||
#compact_impl
|
||||
#[derive(Default, PartialEq, Eq, Clone, Debug, PartialOrd, Ord)]
|
||||
}
|
||||
@@ -321,23 +315,27 @@ fn remove_voter_impl(count: usize) -> TokenStream2 {
|
||||
}
|
||||
|
||||
fn len_impl(count: usize) -> TokenStream2 {
|
||||
(1..=count).map(|c| {
|
||||
let field_name = field_name_for(c);
|
||||
quote!(
|
||||
all_len = all_len.saturating_add(self.#field_name.len());
|
||||
)
|
||||
}).collect::<TokenStream2>()
|
||||
(1..=count)
|
||||
.map(|c| {
|
||||
let field_name = field_name_for(c);
|
||||
quote!(
|
||||
all_len = all_len.saturating_add(self.#field_name.len());
|
||||
)
|
||||
})
|
||||
.collect::<TokenStream2>()
|
||||
}
|
||||
|
||||
fn edge_count_impl(count: usize) -> TokenStream2 {
|
||||
(1..=count).map(|c| {
|
||||
let field_name = field_name_for(c);
|
||||
quote!(
|
||||
all_edges = all_edges.saturating_add(
|
||||
self.#field_name.len().saturating_mul(#c as usize)
|
||||
);
|
||||
)
|
||||
}).collect::<TokenStream2>()
|
||||
(1..=count)
|
||||
.map(|c| {
|
||||
let field_name = field_name_for(c);
|
||||
quote!(
|
||||
all_edges = all_edges.saturating_add(
|
||||
self.#field_name.len().saturating_mul(#c as usize)
|
||||
);
|
||||
)
|
||||
})
|
||||
.collect::<TokenStream2>()
|
||||
}
|
||||
|
||||
fn unique_targets_impl(count: usize) -> TokenStream2 {
|
||||
@@ -360,17 +358,19 @@ fn unique_targets_impl(count: usize) -> TokenStream2 {
|
||||
}
|
||||
};
|
||||
|
||||
let unique_targets_impl_rest = (3..=count).map(|c| {
|
||||
let field_name = field_name_for(c);
|
||||
quote! {
|
||||
self.#field_name.iter().for_each(|(_, inners, t_last)| {
|
||||
inners.iter().for_each(|(t, _)| {
|
||||
maybe_insert_target(*t);
|
||||
let unique_targets_impl_rest = (3..=count)
|
||||
.map(|c| {
|
||||
let field_name = field_name_for(c);
|
||||
quote! {
|
||||
self.#field_name.iter().for_each(|(_, inners, t_last)| {
|
||||
inners.iter().for_each(|(t, _)| {
|
||||
maybe_insert_target(*t);
|
||||
});
|
||||
maybe_insert_target(*t_last);
|
||||
});
|
||||
maybe_insert_target(*t_last);
|
||||
});
|
||||
}
|
||||
}).collect::<TokenStream2>();
|
||||
}
|
||||
})
|
||||
.collect::<TokenStream2>();
|
||||
|
||||
quote! {
|
||||
#unique_targets_impl_single
|
||||
@@ -440,23 +440,29 @@ impl Parse for SolutionDef {
|
||||
|
||||
let expected_types = ["VoterIndex", "TargetIndex", "Accuracy"];
|
||||
|
||||
let mut types: Vec<syn::Type> = generics.args.iter().zip(expected_types.iter()).map(|(t, expected)|
|
||||
match t {
|
||||
let mut types: Vec<syn::Type> = generics
|
||||
.args
|
||||
.iter()
|
||||
.zip(expected_types.iter())
|
||||
.map(|(t, expected)| match t {
|
||||
syn::GenericArgument::Type(ty) => {
|
||||
// this is now an error
|
||||
Err(syn::Error::new_spanned(ty, format!("Expected binding: `{} = ...`", expected)))
|
||||
Err(syn::Error::new_spanned(
|
||||
ty,
|
||||
format!("Expected binding: `{} = ...`", expected),
|
||||
))
|
||||
},
|
||||
syn::GenericArgument::Binding(syn::Binding{ident, ty, ..}) => {
|
||||
syn::GenericArgument::Binding(syn::Binding { ident, ty, .. }) => {
|
||||
// check that we have the right keyword for this position in the argument list
|
||||
if ident == expected {
|
||||
Ok(ty.clone())
|
||||
} else {
|
||||
Err(syn::Error::new_spanned(ident, format!("Expected `{}`", expected)))
|
||||
}
|
||||
}
|
||||
},
|
||||
_ => Err(syn_err("Wrong type of generic provided. Must be a `type`.")),
|
||||
}
|
||||
).collect::<Result<_>>()?;
|
||||
})
|
||||
.collect::<Result<_>>()?;
|
||||
|
||||
let weight_type = types.pop().expect("Vector of length 3 can be popped; qed");
|
||||
let target_type = types.pop().expect("Vector of length 2 can be popped; qed");
|
||||
@@ -467,15 +473,15 @@ impl Parse for SolutionDef {
|
||||
let expr = count_expr.expr;
|
||||
let expr_lit = match *expr {
|
||||
syn::Expr::Lit(count_lit) => count_lit.lit,
|
||||
_ => return Err(syn_err("Count must be literal."))
|
||||
_ => return Err(syn_err("Count must be literal.")),
|
||||
};
|
||||
let int_lit = match expr_lit {
|
||||
syn::Lit::Int(int_lit) => int_lit,
|
||||
_ => return Err(syn_err("Count must be int literal."))
|
||||
_ => return Err(syn_err("Count must be int literal.")),
|
||||
};
|
||||
let count = int_lit.base10_parse::<usize>()?;
|
||||
|
||||
Ok(Self { vis, ident, voter_type, target_type, weight_type, count, compact_encoding } )
|
||||
Ok(Self { vis, ident, voter_type, target_type, weight_type, count, compact_encoding })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user