Skip to content

Commit 6494156

Browse files
committed
fixing format_tools
1 parent 67616d2 commit 6494156

File tree

2 files changed

+358
-91
lines changed

2 files changed

+358
-91
lines changed
Lines changed: 291 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,291 @@
1+
// #[ allow( unused_imports ) ]
2+
// use super::*;
3+
//
4+
// use the_module::
5+
// {
6+
// AsTable,
7+
// Cells,
8+
// TableRows,
9+
// TableHeader,
10+
// WithRef,
11+
// };
12+
//
13+
// use std::
14+
// {
15+
// borrow::Cow,
16+
// };
17+
//
18+
// //
19+
//
20+
// #[ test ]
21+
// fn basic()
22+
// // where
23+
// // for< 'a > AsTable< 'a, Vec< test_object::TestObject >, usize, test_object::TestObject, &'static str, String, &'static str > : TableFormatter< 'a >,
24+
// {
25+
// let test_objects = test_object::test_objects_gen();
26+
//
27+
// let cells = Cells::< str>::cells( &test_objects[ 0 ] );
28+
// assert_eq!( cells.len(), 4 );
29+
// let cells = Cells::< str>::cells( &test_objects[ 1 ] );
30+
// assert_eq!( cells.len(), 4 );
31+
// drop( cells );
32+
//
33+
// let as_table : AsTable< '_, Vec< test_object::TestObject >, usize, test_object::TestObject, str> = AsTable::new( &test_objects );
34+
// // let mcells = TableSize::mcells( &as_table );
35+
// // assert_eq!( mcells, [ 4, 3 ] );
36+
// let rows = TableRows::rows( &as_table );
37+
// assert_eq!( rows.len(), 2 );
38+
// dbg!( rows.collect::< Vec< _ > >() );
39+
// let header = TableHeader::header( &as_table );
40+
// assert!( header.is_some() );
41+
// let header = header.unwrap();
42+
// assert_eq!( header.len(), 4 );
43+
// assert_eq!( header.clone().collect::< Vec< _ > >(), vec!
44+
// [
45+
// ( "id", "id" ),
46+
// ( "created_at", "created_at" ),
47+
// ( "file_ids", "file_ids" ),
48+
// ( "tools", "tools" ),
49+
// ]);
50+
// dbg!( header.collect::< Vec< _ > >() );
51+
//
52+
// }
53+
//
54+
// //
55+
//
56+
// #[ test ]
57+
// fn iterator_over_optional_cow()
58+
// {
59+
// // use test_object::TestObject2 as TestObject2;
60+
// use the_module::
61+
// {
62+
// Fields,
63+
// IteratorTrait,
64+
// TableWithFields,
65+
// WithRef,
66+
// OptionalCow,
67+
// };
68+
//
69+
// /// Struct representing a test object with various fields.
70+
// #[ derive( Clone, Debug, PartialEq, Eq ) ]
71+
// pub struct TestObject2
72+
// {
73+
// pub id : String,
74+
// pub created_at : i64,
75+
// pub file_ids : Vec< String >,
76+
// pub tools : Option< Vec< HashMap< String, String > > >,
77+
// }
78+
//
79+
// impl TableWithFields for TestObject2 {}
80+
//
81+
// impl Fields< &'_ str, Option< Cow< '_, str > > >
82+
// for TestObject2
83+
// {
84+
// type Key< 'k > = &'k str;
85+
// type Val< 'v > = Option< Cow< 'v, str > >;
86+
//
87+
// fn fields( &self ) -> impl IteratorTrait< Item = ( &'_ str, Option< Cow< '_, str > > ) >
88+
// {
89+
// use format_tools::ref_or_display_or_debug_multiline::field;
90+
// // use format_tools::ref_or_display_or_debug::field;
91+
// let mut dst : Vec< ( &'_ str, Option< Cow< '_, str > > ) > = Vec::new();
92+
//
93+
// dst.push( field!( &self.id ) );
94+
// dst.push( field!( &self.created_at ) );
95+
// dst.push( field!( &self.file_ids ) );
96+
//
97+
// if let Some( tools ) = &self.tools
98+
// {
99+
// dst.push( field!( tools ) );
100+
// }
101+
// else
102+
// {
103+
// dst.push( ( "tools", Option::None ) );
104+
// }
105+
//
106+
// dst.into_iter()
107+
// }
108+
//
109+
// }
110+
//
111+
// let data : collection_tools::Vec< TestObject2 > = dlist!
112+
// {
113+
// TestObject2
114+
// {
115+
// id : "1".to_string(),
116+
// created_at : 1627845583,
117+
// file_ids : vec![ "file1".to_string(), "file2".to_string() ],
118+
// tools : None
119+
// },
120+
// TestObject2
121+
// {
122+
// id : "2".to_string(),
123+
// created_at : 13,
124+
// file_ids : vec![ "file3".to_string(), "file4\nmore details".to_string() ],
125+
// tools : Some
126+
// (
127+
// vec!
128+
// [
129+
// {
130+
// let mut map = HashMap::new();
131+
// map.insert( "tool1".to_string(), "value1".to_string() );
132+
// map
133+
// },
134+
// {
135+
// let mut map = HashMap::new();
136+
// map.insert( "tool2".to_string(), "value2".to_string() );
137+
// map
138+
// }
139+
// ]
140+
// ),
141+
// },
142+
// };
143+
//
144+
// use the_module::TableFormatter;
145+
// let _as_table : AsTable< '_, Vec< TestObject2 >, &str, TestObject2, str> = AsTable::new( &data );
146+
// let as_table = AsTable::new( &data );
147+
//
148+
// let rows = TableRows::rows( &as_table );
149+
// assert_eq!( rows.len(), 2 );
150+
//
151+
// let mut output = String::new();
152+
// let mut context = the_module::print::Context::new( &mut output, Default::default() );
153+
// let _got = the_module::TableFormatter::fmt( &as_table, &mut context );
154+
// let got = as_table.table_to_string();
155+
// assert!( got.contains( "│ id │ created_at │ file_ids │ tools │" ) );
156+
// assert!( got.contains( "│ 13 │ [ │ [ │" ) );
157+
// assert!( got.contains( "│ 1627845583 │ [ │ │" ) );
158+
//
159+
// let got = AsTable::new( &data ).table_to_string();
160+
// assert!( got.contains( "│ id │ created_at │ file_ids │ tools │" ) );
161+
// assert!( got.contains( "│ 13 │ [ │ [ │" ) );
162+
// assert!( got.contains( "│ 1627845583 │ [ │ │" ) );
163+
//
164+
// }
165+
//
166+
// //
167+
//
168+
// #[ test ]
169+
// fn iterator_over_strings()
170+
// {
171+
//
172+
// fn to_owned< 'a, T1, T2 : Copy >( src : ( T1, Option< Cow< 'a, str, T2 > > ) ) -> ( T1, String )
173+
// {
174+
// ( src.0, src.1.into_owned() )
175+
// }
176+
//
177+
// // fn into< 'a, T1, T2 : Copy >( src : ( T1, OptionalCow< 'a, str, T2 > ) ) -> ( T1, Option< Cow< 'a, str > > )
178+
// // {
179+
// // ( src.0, src.1.into() )
180+
// // }
181+
//
182+
// // use test_object::TestObject as TestObject3;
183+
// use the_module::
184+
// {
185+
// Fields,
186+
// IteratorTrait,
187+
// TableWithFields,
188+
// WithRef,
189+
// OptionalCow,
190+
// };
191+
//
192+
// use std::borrow::Cow;
193+
//
194+
// /// Struct representing a test object with various fields.
195+
// #[ derive( Clone, Debug, PartialEq, Eq ) ]
196+
// pub struct TestObject3
197+
// {
198+
// pub id : String,
199+
// pub created_at : i64,
200+
// pub file_ids : Vec< String >,
201+
// pub tools : Option< Vec< HashMap< String, String > > >,
202+
// }
203+
//
204+
// impl TableWithFields for TestObject3 {}
205+
//
206+
// impl Fields< &'_ str, String >
207+
// for TestObject3
208+
// {
209+
// type Key< 'k > = &'k str;
210+
// type Val< 'v > = String;
211+
//
212+
// fn fields( &self ) -> impl IteratorTrait< Item = ( &'_ str, String ) >
213+
// {
214+
// use format_tools::ref_or_display_or_debug_multiline::field;
215+
// // use format_tools::ref_or_display_or_debug::field;
216+
// let mut dst : Vec< ( &'_ str, String ) > = Vec::new();
217+
//
218+
// dst.push( field!( &self.id ) );
219+
//
220+
// // dst.push( into( field!( &self.id ) ) );
221+
// // dst.push( field!( &self.created_at ) );
222+
// // dst.push( field!( &self.file_ids ) );
223+
// //
224+
// // if let Some( tools ) = &self.tools
225+
// // {
226+
// // dst.push( field!( tools ) );
227+
// // }
228+
// // else
229+
// // {
230+
// // dst.push( ( "tools", OptionalCow::none() ) );
231+
// // }
232+
//
233+
// dst.into_iter()
234+
// }
235+
//
236+
// }
237+
//
238+
// let data : collection_tools::Vec< TestObject3 > = dlist!
239+
// {
240+
// TestObject3
241+
// {
242+
// id : "1".to_string(),
243+
// created_at : 1627845583,
244+
// file_ids : vec![ "file1".to_string(), "file2".to_string() ],
245+
// tools : None
246+
// },
247+
// TestObject3
248+
// {
249+
// id : "2".to_string(),
250+
// created_at : 13,
251+
// file_ids : vec![ "file3".to_string(), "file4\nmore details".to_string() ],
252+
// tools : Some
253+
// (
254+
// vec!
255+
// [
256+
// {
257+
// let mut map = HashMap::new();
258+
// map.insert( "tool1".to_string(), "value1".to_string() );
259+
// map
260+
// },
261+
// {
262+
// let mut map = HashMap::new();
263+
// map.insert( "tool2".to_string(), "value2".to_string() );
264+
// map
265+
// }
266+
// ]
267+
// ),
268+
// },
269+
// };
270+
//
271+
// use the_module::TableFormatter;
272+
// let _as_table : AsTable< '_, Vec< TestObject3 >, &str, TestObject3, str> = AsTable::new( &data );
273+
// let as_table = AsTable::new( &data );
274+
//
275+
// let rows = TableRows::rows( &as_table );
276+
// assert_eq!( rows.len(), 2 );
277+
//
278+
// let mut output = String::new();
279+
// let mut context = the_module::print::Context::new( &mut output, Default::default() );
280+
// let _got = the_module::TableFormatter::fmt( &as_table, &mut context );
281+
// let got = as_table.table_to_string();
282+
// assert!( got.contains( "│ id │ created_at │ file_ids │ tools │" ) );
283+
// assert!( got.contains( "│ 13 │ [ │ [ │" ) );
284+
// assert!( got.contains( "│ 1627845583 │ [ │ │" ) );
285+
//
286+
// // let got = AsTable::new( &data ).table_to_string();
287+
// // assert!( got.contains( "│ id │ created_at │ file_ids │ tools │" ) );
288+
// // assert!( got.contains( "│ 13 │ [ │ [ │" ) );
289+
// // assert!( got.contains( "│ 1627845583 │ [ │ │" ) );
290+
//
291+
// }

0 commit comments

Comments
 (0)