Skip to content

Commit 6bd65b3

Browse files
committed
format
1 parent 33caecc commit 6bd65b3

18 files changed

+12773
-122
lines changed

code_gen/src/code_gen.rs

+20-96
Original file line numberDiff line numberDiff line change
@@ -37,34 +37,13 @@ struct Ctx<'a> {
3737
}
3838

3939
fn init<'a>(max: usize, t: &'a Ident, u: &'a Ident) -> Ctx<'a> {
40-
let size_lits = (0..max + 1)
41-
.into_iter()
42-
.map(|i| LitInt::new(i.to_string().as_str(), Span::call_site()))
43-
.collect::<Vec<_>>();
40+
let size_lits = (0..max + 1).into_iter().map(|i| LitInt::new(i.to_string().as_str(), Span::call_site())).collect::<Vec<_>>();
4441
let ts = (0..max + 1).into_iter().map(|_| t).collect::<Vec<_>>();
4542
let us = (0..max + 1).into_iter().map(|_| u).collect::<Vec<_>>();
46-
let nts = (0..max + 1)
47-
.into_iter()
48-
.map(|i| format_ident!("T{}", i))
49-
.collect::<Vec<_>>();
50-
let nvs = (0..max + 1)
51-
.into_iter()
52-
.map(|i| format_ident!("v{}", i))
53-
.collect::<Vec<_>>();
54-
let ants = nts[0..max + 1]
55-
.iter()
56-
.map(|i| quote! { #i: 'a })
57-
.collect::<Vec<_>>();
58-
let ctx = Ctx {
59-
t,
60-
u,
61-
size_lits,
62-
ts,
63-
us,
64-
nts,
65-
nvs,
66-
ants,
67-
};
43+
let nts = (0..max + 1).into_iter().map(|i| format_ident!("T{}", i)).collect::<Vec<_>>();
44+
let nvs = (0..max + 1).into_iter().map(|i| format_ident!("v{}", i)).collect::<Vec<_>>();
45+
let ants = nts[0..max + 1].iter().map(|i| quote! { #i: 'a }).collect::<Vec<_>>();
46+
let ctx = Ctx { t, u, size_lits, ts, us, nts, nvs, ants };
6847
ctx
6948
}
7049

@@ -94,13 +73,8 @@ fn gen_tuple_impl_size(ctx: &Ctx, size: usize) -> TokenStream {
9473
}
9574

9675
fn gen_tuple_n_impl(ctx: &Ctx, out_dir: &Path) {
97-
let item_names = (0..34usize)
98-
.into_iter()
99-
.map(|i| format_ident!("Item{}", i))
100-
.collect::<Vec<_>>();
101-
let items = (2..33usize)
102-
.into_iter()
103-
.map(|i| gen_tuple_n_impl_size(ctx, i, &item_names[0..i]));
76+
let item_names = (0..34usize).into_iter().map(|i| format_ident!("Item{}", i)).collect::<Vec<_>>();
77+
let items = (2..33usize).into_iter().map(|i| gen_tuple_n_impl_size(ctx, i, &item_names[0..i]));
10478
let tks = quote! { #(#items)* };
10579
let code = tks.to_string();
10680
let dest_path = Path::new(out_dir).join("tuple_n.rs");
@@ -224,10 +198,7 @@ fn gen_tuple_alias_macro_size(ctx: &Ctx, size: usize) -> TokenStream {
224198
let ty = quote! { $t };
225199
let tys = (0..size).into_iter().map(|_| &ty).collect::<Vec<_>>();
226200

227-
let ntys = (0..size + 1)
228-
.map(|i| format_ident!("t{}", i))
229-
.map(|i| quote! { $#i })
230-
.collect::<Vec<_>>();
201+
let ntys = (0..size + 1).map(|i| format_ident!("t{}", i)).map(|i| quote! { $#i }).collect::<Vec<_>>();
231202

232203
let items = (0..size + 1).map(|i| gen_tuple_alias_macro_size_n(ctx, size, i, &ntys));
233204

@@ -239,20 +210,12 @@ fn gen_tuple_alias_macro_size(ctx: &Ctx, size: usize) -> TokenStream {
239210
tks
240211
}
241212

242-
fn gen_tuple_alias_macro_size_n(
243-
ctx: &Ctx,
244-
size: usize,
245-
n: usize,
246-
ntys: &[TokenStream],
247-
) -> TokenStream {
213+
fn gen_tuple_alias_macro_size_n(ctx: &Ctx, size: usize, n: usize, ntys: &[TokenStream]) -> TokenStream {
248214
let size_lit = &ctx.size_lits[size];
249215

250216
let u = quote! { _ };
251217
let nntys = &ntys[0..n];
252-
let tys = ntys[0..size]
253-
.iter()
254-
.enumerate()
255-
.map(|(i, l)| if i < n { l } else { &u });
218+
let tys = ntys[0..size].iter().enumerate().map(|(i, l)| if i < n { l } else { &u });
256219

257220
let tks = quote! {
258221
{ #size_lit; #(#nntys:ty),* } => { (#(#tys),*) };
@@ -441,13 +404,7 @@ fn gen_tuple_map(ctx: &Ctx, out_dir: &Path) {
441404
}
442405

443406
fn gen_tuple_map_size(ctx: &Ctx, size: usize) -> TokenStream {
444-
let items = if size > 16 {
445-
vec![]
446-
} else {
447-
(0..size)
448-
.map(|n| gen_tuple_map_n_size(ctx, size, n))
449-
.collect()
450-
};
407+
let items = if size > 16 { vec![] } else { (0..size).map(|n| gen_tuple_map_n_size(ctx, size, n)).collect() };
451408

452409
let map_name = format_ident!("Tuple{}Map", size);
453410

@@ -480,11 +437,7 @@ fn gen_tuple_map_n_size(ctx: &Ctx, size: usize, n: usize) -> TokenStream {
480437
let map_n = format_ident!("map{}", n);
481438

482439
let rts = &ctx.nts[0..size];
483-
let ts = ctx.nts[0..size]
484-
.iter()
485-
.enumerate()
486-
.map(|(i, l)| if i == n { ctx.u } else { l })
487-
.collect::<Vec<_>>();
440+
let ts = ctx.nts[0..size].iter().enumerate().map(|(i, l)| if i == n { ctx.u } else { l }).collect::<Vec<_>>();
488441

489442
let impls = ctx.size_lits[0..size].iter().enumerate().map(|(i, l)| {
490443
if i == n {
@@ -512,16 +465,8 @@ fn gen_tuple_map_n_size(ctx: &Ctx, size: usize, n: usize) -> TokenStream {
512465
}
513466

514467
fn gen_combin(ctx: &Ctx, out_dir: &Path) {
515-
let self_impl = ctx
516-
.size_lits
517-
.iter()
518-
.map(|i| quote! { self.#i })
519-
.collect::<Vec<_>>();
520-
let target_impl = ctx
521-
.size_lits
522-
.iter()
523-
.map(|i| quote! { target.#i })
524-
.collect::<Vec<_>>();
468+
let self_impl = ctx.size_lits.iter().map(|i| quote! { self.#i }).collect::<Vec<_>>();
469+
let target_impl = ctx.size_lits.iter().map(|i| quote! { target.#i }).collect::<Vec<_>>();
525470
let items = (2..33usize).map(|i| gen_combin_size(ctx, i));
526471
let concats = (0..17usize).flat_map(|a| {
527472
let self_impl = &self_impl;
@@ -560,22 +505,14 @@ fn gen_combin_size(ctx: &Ctx, size: usize) -> TokenStream {
560505
tks
561506
}
562507

563-
fn gen_combin_concat_size(
564-
ctx: &Ctx,
565-
sizea: usize,
566-
sizeb: usize,
567-
self_impl: &[TokenStream],
568-
target_impl: &[TokenStream],
569-
) -> TokenStream {
508+
fn gen_combin_concat_size(ctx: &Ctx, sizea: usize, sizeb: usize, self_impl: &[TokenStream], target_impl: &[TokenStream]) -> TokenStream {
570509
let ants = &ctx.nts[0..sizea];
571510
let bnts = &ctx.nts[sizea..sizea + sizeb];
572511
let gnts = &ctx.nts[0..sizea + sizeb];
573512
let atc = tif! { ants.len() == 1 => quote! { , } ; quote! { } };
574513
let btc = tif! { bnts.len() == 1 => quote! { , } ; quote! { } };
575514
let gtc = tif! { gnts.len() == 1 => quote! { , } ; quote! { } };
576-
let impls = self_impl[0..sizea]
577-
.iter()
578-
.chain(target_impl[0..sizeb].iter());
515+
let impls = self_impl[0..sizea].iter().chain(target_impl[0..sizeb].iter());
579516
let tks = quote! {
580517
impl<#(#gnts),*> CombinConcat<(#(#bnts),*#btc)> for (#(#ants),*#atc) {
581518
type Out = (#(#gnts),*#gtc);
@@ -590,11 +527,7 @@ fn gen_combin_concat_size(
590527
}
591528

592529
fn gen_transpose(ctx: &Ctx, out_dir: &Path) {
593-
let none_impl = ctx
594-
.size_lits
595-
.iter()
596-
.map(|_| quote! { None })
597-
.collect::<Vec<_>>();
530+
let none_impl = ctx.size_lits.iter().map(|_| quote! { None }).collect::<Vec<_>>();
598531
let items_1 = (2..33usize).map(|i| gen_transpose_size_option_1(ctx, i, &none_impl[0..i]));
599532
let items_2 = (2..33usize).map(|i| gen_transpose_size_option_2(ctx, i));
600533
let items_3 = (2..33usize).map(|i| gen_transpose_size_result(ctx, i));
@@ -643,9 +576,7 @@ fn gen_transpose_size_option_2(ctx: &Ctx, size: usize) -> TokenStream {
643576

644577
fn gen_transpose_size_result(ctx: &Ctx, size: usize) -> TokenStream {
645578
let nts = &ctx.nts[0..size];
646-
let ents = (0..size)
647-
.map(|i| format_ident!("E{}", i))
648-
.collect::<Vec<_>>();
579+
let ents = (0..size).map(|i| format_ident!("E{}", i)).collect::<Vec<_>>();
649580
let nvs = &ctx.nvs[0..size];
650581
let tks = quote! {
651582
impl<Eo: #(From<#ents>)+*, #(#ents, #nts),*> TupleTransposeResult<Eo> for (#(Result<#nts, #ents>),*) {
@@ -702,15 +633,8 @@ fn gen_flatten_size(ctx: &Ctx, size: usize) -> TokenStream {
702633
fn gen_flatten_size_n(ctx: &Ctx, size: usize, n: usize) -> TokenStream {
703634
let nct = tif! { n == 1 => quote! { , } ; quote! {} };
704635
let nts = &ctx.nts[0..size * n];
705-
let nnts = (0..size * n)
706-
.step_by(n)
707-
.map(|i| &nts[i..i + n])
708-
.map(|nts| quote! { (#(#nts),*#nct) });
709-
let nnimpl = ctx.size_lits[0..size].iter().flat_map(|i| {
710-
ctx.size_lits[0..n]
711-
.iter()
712-
.map(move |n| quote! { (self.#i).#n })
713-
});
636+
let nnts = (0..size * n).step_by(n).map(|i| &nts[i..i + n]).map(|nts| quote! { (#(#nts),*#nct) });
637+
let nnimpl = ctx.size_lits[0..size].iter().flat_map(|i| ctx.size_lits[0..n].iter().map(move |n| quote! { (self.#i).#n }));
714638
let tks = quote! {
715639
impl<#(#nts),*> TupleFlatten for (#(#nnts),*) {
716640
type OutTuple = (#(#nts),*);

gen_code.ps1

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,15 @@
11
Set-Location .\code_gen\
22
cargo build --release
33
Set-Location ..
4-
.\target\release\code_gen.exe
4+
.\target\release\code_gen.exe
5+
6+
rustfmt .\tuples\src\gen\cloned.rs
7+
rustfmt .\tuples\src\gen\combin.rs
8+
rustfmt .\tuples\src\gen\flatten.rs
9+
rustfmt .\tuples\src\gen\transpose.rs
10+
rustfmt .\tuples\src\gen\tuple_alias.rs
11+
rustfmt .\tuples\src\gen\tuple_as.rs
12+
rustfmt .\tuples\src\gen\tuple_impl.rs
13+
rustfmt .\tuples\src\gen\tuple_iter.rs
14+
rustfmt .\tuples\src\gen\tuple_map.rs
15+
rustfmt .\tuples\src\gen\tuple_n.rs

gen_code.sh

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,15 @@
11
cd ./code_gen/
22
cargo build --release
33
cd ..
4-
./target/release/code_gen
4+
./target/release/code_gen
5+
6+
rustfmt ./tuples/src/gen/cloned.rs
7+
rustfmt ./tuples/src/gen/combin.rs
8+
rustfmt ./tuples/src/gen/flatten.rs
9+
rustfmt ./tuples/src/gen/transpose.rs
10+
rustfmt ./tuples/src/gen/tuple_alias.rs
11+
rustfmt ./tuples/src/gen/tuple_as.rs
12+
rustfmt ./tuples/src/gen/tuple_impl.rs
13+
rustfmt ./tuples/src/gen/tuple_iter.rs
14+
rustfmt ./tuples/src/gen/tuple_map.rs
15+
rustfmt ./tuples/src/gen/tuple_n.rs

rustfmt.toml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
max_width = 10000

tuples/src/gen/cloned.rs

+744-1
Large diffs are not rendered by default.

tuples/src/gen/combin.rs

+2,395-1
Large diffs are not rendered by default.

tuples/src/gen/flatten.rs

+708-1
Large diffs are not rendered by default.

tuples/src/gen/transpose.rs

+775-1
Large diffs are not rendered by default.

tuples/src/gen/tuple_alias.rs

+3-1
Large diffs are not rendered by default.

tuples/src/gen/tuple_as.rs

+1,364-1
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)