ai_code_buddy/core/
credits.rs

1/// Information about a library dependency
2#[derive(Debug, Clone)]
3pub struct LibraryInfo {
4    pub name: &'static str,
5    pub version: &'static str,
6    pub license: &'static str,
7    pub description: &'static str,
8    pub repository: &'static str,
9    pub contributors: Vec<&'static str>,
10}
11
12/// Project contributor information
13#[derive(Debug, Clone)]
14pub struct Contributor {
15    pub name: &'static str,
16    pub email: &'static str,
17    pub contributions: u32,
18}
19
20/// Get all project contributors from git history
21pub fn get_project_contributors() -> Vec<Contributor> {
22    vec![
23        Contributor {
24            name: "Edgar Sanchez",
25            email: "esanchez@m2iab.com",
26            contributions: 99,
27        },
28        Contributor {
29            name: "Edgar H Sanchez",
30            email: "esanchez@m2iab.com",
31            contributions: 15,
32        },
33    ]
34}
35
36/// Get all library dependencies with their information
37pub fn get_library_dependencies() -> Vec<LibraryInfo> {
38    vec![
39        LibraryInfo {
40            name: "anyhow",
41            version: "1.0.95",
42            license: "MIT OR Apache-2.0",
43            description: "Flexible concrete Error type built on std::error::Error",
44            repository: "https://github.com/dtolnay/anyhow",
45            contributors: vec!["David Tolnay", "And 50+ contributors"],
46        },
47        LibraryInfo {
48            name: "bevy",
49            version: "0.15",
50            license: "MIT OR Apache-2.0",
51            description: "A refreshingly simple data-driven game engine built in Rust",
52            repository: "https://github.com/bevyengine/bevy",
53            contributors: vec!["Carter Anderson", "Alice Cecile", "And 300+ contributors"],
54        },
55        LibraryInfo {
56            name: "bevy_ratatui",
57            version: "0.7.0",
58            license: "MIT OR Apache-2.0",
59            description: "A Bevy plugin for Ratatui (terminal UI library)",
60            repository: "https://github.com/bevy-ratatui/bevy_ratatui",
61            contributors: vec!["Johan Klokkhammer Helsing", "And 10+ contributors"],
62        },
63        LibraryInfo {
64            name: "bevy-tokio-tasks",
65            version: "0.15.0",
66            license: "Unknown",
67            description: "Rust library dependency",
68            repository: "https://crates.io/crates/bevy-tokio-tasks",
69            contributors: vec!["Various contributors"],
70        },
71        LibraryInfo {
72            name: "clap",
73            version: "4.0",
74            license: "MIT OR Apache-2.0",
75            description: "A full featured, fast Command Line Argument Parser for Rust",
76            repository: "https://github.com/clap-rs/clap",
77            contributors: vec!["Kevin K. <kbknapp@gmail.com>", "And 200+ contributors"],
78        },
79        LibraryInfo {
80            name: "color-eyre",
81            version: "0.6.3",
82            license: "MIT OR Apache-2.0",
83            description: "An error report handler for panics and eyre::Report",
84            repository: "https://github.com/eyre-rs/color-eyre",
85            contributors: vec!["Jane Lusby", "And 20+ contributors"],
86        },
87        LibraryInfo {
88            name: "crossterm",
89            version: "0.28.1",
90            license: "MIT",
91            description: "Cross-platform terminal manipulation library",
92            repository: "https://github.com/crossterm-rs/crossterm",
93            contributors: vec!["T. Postma", "And 50+ contributors"],
94        },
95        LibraryInfo {
96            name: "futures",
97            version: "0.3.31",
98            license: "MIT OR Apache-2.0",
99            description: "An implementation of futures and streams featuring zero allocations",
100            repository: "https://github.com/rust-lang/futures-rs",
101            contributors: vec!["Alex Crichton", "And 100+ contributors"],
102        },
103        LibraryInfo {
104            name: "git2",
105            version: "0.19",
106            license: "MIT OR Apache-2.0",
107            description: "Rust bindings to libgit2 for interoperating with git repositories",
108            repository: "https://github.com/rust-lang/git2-rs",
109            contributors: vec!["Alex Crichton", "And 50+ contributors"],
110        },
111        LibraryInfo {
112            name: "insta",
113            version: "1.40.0",
114            license: "Unknown",
115            description: "Rust library dependency",
116            repository: "https://crates.io/crates/insta",
117            contributors: vec!["Various contributors"],
118        },
119        LibraryInfo {
120            name: "kalosm",
121            version: "0.4.0",
122            license: "MIT OR Apache-2.0",
123            description: "A user-friendly interface for pre-trained large language models",
124            repository: "https://github.com/floneum/kalosm",
125            contributors: vec!["Evan Almloff", "And 10+ contributors"],
126        },
127        LibraryInfo {
128            name: "mockall",
129            version: "0.13.0",
130            license: "Unknown",
131            description: "Rust library dependency",
132            repository: "https://crates.io/crates/mockall",
133            contributors: vec!["Various contributors"],
134        },
135        LibraryInfo {
136            name: "num_cpus",
137            version: "1.16",
138            license: "Unknown",
139            description: "Rust library dependency",
140            repository: "https://crates.io/crates/num_cpus",
141            contributors: vec!["Various contributors"],
142        },
143        LibraryInfo {
144            name: "pretty_assertions",
145            version: "1.4.1",
146            license: "Unknown",
147            description: "Rust library dependency",
148            repository: "https://crates.io/crates/pretty_assertions",
149            contributors: vec!["Various contributors"],
150        },
151        LibraryInfo {
152            name: "proptest",
153            version: "1.5.0",
154            license: "Unknown",
155            description: "Rust library dependency",
156            repository: "https://crates.io/crates/proptest",
157            contributors: vec!["Various contributors"],
158        },
159        LibraryInfo {
160            name: "rat-cursor",
161            version: "1.2.0",
162            license: "Unknown",
163            description: "Rust library dependency",
164            repository: "https://crates.io/crates/rat-cursor",
165            contributors: vec!["Various contributors"],
166        },
167        LibraryInfo {
168            name: "rat-event",
169            version: "1.1.0",
170            license: "Unknown",
171            description: "Rust library dependency",
172            repository: "https://crates.io/crates/rat-event",
173            contributors: vec!["Various contributors"],
174        },
175        LibraryInfo {
176            name: "rat-focus",
177            version: "0.31.0",
178            license: "Unknown",
179            description: "Rust library dependency",
180            repository: "https://crates.io/crates/rat-focus",
181            contributors: vec!["Various contributors"],
182        },
183        LibraryInfo {
184            name: "ratatui",
185            version: "0.29.0",
186            license: "MIT",
187            description: "A Rust library to build rich terminal user interfaces",
188            repository: "https://github.com/ratatui/ratatui",
189            contributors: vec!["Florian Dehau", "Joshka", "And 100+ contributors"],
190        },
191        LibraryInfo {
192            name: "rayon",
193            version: "1.8",
194            license: "Unknown",
195            description: "Rust library dependency",
196            repository: "https://crates.io/crates/rayon",
197            contributors: vec!["Various contributors"],
198        },
199        LibraryInfo {
200            name: "regex",
201            version: "1.11.1",
202            license: "MIT OR Apache-2.0",
203            description: "An implementation of regular expressions for Rust",
204            repository: "https://github.com/rust-lang/regex",
205            contributors: vec!["Andrew Gallant", "And 50+ contributors"],
206        },
207        LibraryInfo {
208            name: "rstest",
209            version: "0.23.0",
210            license: "Unknown",
211            description: "Rust library dependency",
212            repository: "https://crates.io/crates/rstest",
213            contributors: vec!["Various contributors"],
214        },
215        LibraryInfo {
216            name: "serde",
217            version: "1.0",
218            license: "MIT OR Apache-2.0",
219            description: "A generic serialization/deserialization framework",
220            repository: "https://github.com/serde-rs/serde",
221            contributors: vec!["David Tolnay", "And 100+ contributors"],
222        },
223        LibraryInfo {
224            name: "serde_json",
225            version: "1.0",
226            license: "Unknown",
227            description: "Rust library dependency",
228            repository: "https://crates.io/crates/serde_json",
229            contributors: vec!["Various contributors"],
230        },
231        LibraryInfo {
232            name: "serial_test",
233            version: "3.1.1",
234            license: "Unknown",
235            description: "Rust library dependency",
236            repository: "https://crates.io/crates/serial_test",
237            contributors: vec!["Various contributors"],
238        },
239        LibraryInfo {
240            name: "tempfile",
241            version: "3.13.0",
242            license: "Unknown",
243            description: "Rust library dependency",
244            repository: "https://crates.io/crates/tempfile",
245            contributors: vec!["Various contributors"],
246        },
247        LibraryInfo {
248            name: "tokio",
249            version: "1.47.0",
250            license: "MIT",
251            description: "An event-driven, non-blocking I/O platform for writing async I/O",
252            repository: "https://github.com/tokio-rs/tokio",
253            contributors: vec!["Carl Lerche", "Sean McArthur", "And 200+ contributors"],
254        },
255        LibraryInfo {
256            name: "tokio-test",
257            version: "0.4.4",
258            license: "Unknown",
259            description: "Rust library dependency",
260            repository: "https://crates.io/crates/tokio-test",
261            contributors: vec!["Various contributors"],
262        },
263        LibraryInfo {
264            name: "uuid",
265            version: "1.11.0",
266            license: "Apache-2.0 OR MIT",
267            description: "A library to generate and parse UUIDs",
268            repository: "https://github.com/uuid-rs/uuid",
269            contributors: vec!["Ashley Mannix", "And 50+ contributors"],
270        },
271    ]
272}
273
274/// Display comprehensive credits information
275pub fn display_comprehensive_credits() {
276    println!("🎉 AI Code Buddy - Comprehensive Credits & Acknowledgments");
277    println!("==========================================================");
278    println!();
279
280    // Project Information
281    println!("📚 About AI Code Buddy:");
282    println!("An intelligent code analysis tool with elegant Bevy-powered TUI");
283    println!("that provides comprehensive code reviews with AI assistance.");
284    println!("Repository: https://github.com/edgarhsanchez/ai_code_buddy");
285    println!();
286
287    // Project Contributors
288    println!("👥 Project Contributors:");
289    println!("------------------------");
290    let contributors = get_project_contributors();
291    for contributor in contributors {
292        println!(
293            "  • {} <{}> ({} commits)",
294            contributor.name, contributor.email, contributor.contributions
295        );
296    }
297    println!();
298
299    // Library Dependencies
300    println!("📦 Library Dependencies & Licenses:");
301    println!("-----------------------------------");
302    let libraries = get_library_dependencies();
303
304    for library in libraries {
305        println!("🔧 {} v{}", library.name, library.version);
306        println!("   📄 License: {}", library.license);
307        println!("   📖 Description: {}", library.description);
308        println!("   🔗 Repository: {}", library.repository);
309        println!("   👥 Key Contributors:");
310
311        for contributor in &library.contributors {
312            println!("     • {contributor}");
313        }
314        println!();
315    }
316
317    // Special Thanks
318    println!("🙏 Special Thanks:");
319    println!("------------------");
320    println!("  • The Rust Programming Language team");
321    println!("  • All open source contributors");
322    println!("  • The Bevy game engine community");
323    println!("  • The broader Rust ecosystem");
324    println!();
325
326    // Call to Action
327    println!("💡 Want to contribute? Visit: https://github.com/edgarhsanchez/ai_code_buddy");
328    println!("🐛 Found a bug? Report it: https://github.com/edgarhsanchez/ai_code_buddy/issues");
329}