@@ -15,7 +15,8 @@ pub struct FileStats {
1515}
1616
1717impl FileStats {
18- pub fn new (
18+ #[ must_use]
19+ pub const fn new (
1920 path : String ,
2021 total_lines : u64 ,
2122 code_lines : u64 ,
@@ -27,31 +28,38 @@ impl FileStats {
2728 Self { path, total_lines, code_lines, comment_lines, blank_lines, shebang_lines, size }
2829 }
2930
31+ #[ must_use]
3032 pub fn path ( & self ) -> & str {
3133 & self . path
3234 }
3335
34- pub fn total_lines ( & self ) -> u64 {
36+ #[ must_use]
37+ pub const fn total_lines ( & self ) -> u64 {
3538 self . total_lines
3639 }
3740
38- pub fn code_lines ( & self ) -> u64 {
41+ #[ must_use]
42+ pub const fn code_lines ( & self ) -> u64 {
3943 self . code_lines
4044 }
4145
42- pub fn comment_lines ( & self ) -> u64 {
46+ #[ must_use]
47+ pub const fn comment_lines ( & self ) -> u64 {
4348 self . comment_lines
4449 }
4550
46- pub fn blank_lines ( & self ) -> u64 {
51+ #[ must_use]
52+ pub const fn blank_lines ( & self ) -> u64 {
4753 self . blank_lines
4854 }
4955
50- pub fn shebang_lines ( & self ) -> u64 {
56+ #[ must_use]
57+ pub const fn shebang_lines ( & self ) -> u64 {
5158 self . shebang_lines
5259 }
5360
54- pub fn size ( & self ) -> u64 {
61+ #[ must_use]
62+ pub const fn size ( & self ) -> u64 {
5563 self . size
5664 }
5765}
@@ -81,50 +89,62 @@ impl LanguageStats {
8189 self . file_list . push ( file_stats) ;
8290 }
8391
84- pub fn files ( & self ) -> u64 {
92+ #[ must_use]
93+ pub const fn files ( & self ) -> u64 {
8594 self . files
8695 }
8796
88- pub fn lines ( & self ) -> u64 {
97+ #[ must_use]
98+ pub const fn lines ( & self ) -> u64 {
8999 self . lines
90100 }
91101
92- pub fn code_lines ( & self ) -> u64 {
102+ #[ must_use]
103+ pub const fn code_lines ( & self ) -> u64 {
93104 self . code_lines
94105 }
95106
96- pub fn comment_lines ( & self ) -> u64 {
107+ #[ must_use]
108+ pub const fn comment_lines ( & self ) -> u64 {
97109 self . comment_lines
98110 }
99111
100- pub fn blank_lines ( & self ) -> u64 {
112+ #[ must_use]
113+ pub const fn blank_lines ( & self ) -> u64 {
101114 self . blank_lines
102115 }
103116
104- pub fn shebang_lines ( & self ) -> u64 {
117+ #[ must_use]
118+ pub const fn shebang_lines ( & self ) -> u64 {
105119 self . shebang_lines
106120 }
107121
108- pub fn size ( & self ) -> u64 {
122+ #[ must_use]
123+ pub const fn size ( & self ) -> u64 {
109124 self . size
110125 }
111126
127+ #[ must_use]
112128 pub fn files_list ( & self ) -> & [ FileStats ] {
113129 & self . file_list
114130 }
115131
132+ #[ must_use]
116133 pub fn code_percentage ( & self ) -> f64 {
117134 utils:: percentage ( self . code_lines , self . lines )
118135 }
119136
137+ #[ must_use]
120138 pub fn comment_percentage ( & self ) -> f64 {
121139 utils:: percentage ( self . comment_lines , self . lines )
122140 }
123141
142+ #[ must_use]
124143 pub fn blank_percentage ( & self ) -> f64 {
125144 utils:: percentage ( self . blank_lines , self . lines )
126145 }
127146
147+ #[ must_use]
128148 pub fn shebang_percentage ( & self ) -> f64 {
129149 utils:: percentage ( self . shebang_lines , self . lines )
130150 }
@@ -155,56 +175,69 @@ impl AnalysisResults {
155175 self . language_stats . entry ( language) . or_default ( ) . add_file ( file_stats) ;
156176 }
157177
158- pub fn total_files ( & self ) -> u64 {
178+ #[ must_use]
179+ pub const fn total_files ( & self ) -> u64 {
159180 self . total_files
160181 }
161182
162- pub fn total_lines ( & self ) -> u64 {
183+ #[ must_use]
184+ pub const fn total_lines ( & self ) -> u64 {
163185 self . total_lines
164186 }
165187
166- pub fn total_code_lines ( & self ) -> u64 {
188+ #[ must_use]
189+ pub const fn total_code_lines ( & self ) -> u64 {
167190 self . total_code_lines
168191 }
169192
170- pub fn total_comment_lines ( & self ) -> u64 {
193+ #[ must_use]
194+ pub const fn total_comment_lines ( & self ) -> u64 {
171195 self . total_comment_lines
172196 }
173197
174- pub fn total_blank_lines ( & self ) -> u64 {
198+ #[ must_use]
199+ pub const fn total_blank_lines ( & self ) -> u64 {
175200 self . total_blank_lines
176201 }
177202
178- pub fn total_shebang_lines ( & self ) -> u64 {
203+ #[ must_use]
204+ pub const fn total_shebang_lines ( & self ) -> u64 {
179205 self . total_shebang_lines
180206 }
181207
182- pub fn total_size ( & self ) -> u64 {
208+ #[ must_use]
209+ pub const fn total_size ( & self ) -> u64 {
183210 self . total_size
184211 }
185212
186- pub fn language_stats ( & self ) -> & HashMap < String , LanguageStats > {
213+ #[ must_use]
214+ pub const fn language_stats ( & self ) -> & HashMap < String , LanguageStats > {
187215 & self . language_stats
188216 }
189217
218+ #[ must_use]
190219 pub fn languages_by_lines ( & self ) -> Vec < ( & String , & LanguageStats ) > {
191220 let mut stats_vec: Vec < _ > = self . language_stats . iter ( ) . collect ( ) ;
192221 stats_vec. sort_by_key ( |( _, lang_stats) | std:: cmp:: Reverse ( lang_stats. lines ) ) ;
193222 stats_vec
194223 }
195224
225+ #[ must_use]
196226 pub fn code_percentage ( & self ) -> f64 {
197227 utils:: percentage ( self . total_code_lines , self . total_lines )
198228 }
199229
230+ #[ must_use]
200231 pub fn comment_percentage ( & self ) -> f64 {
201232 utils:: percentage ( self . total_comment_lines , self . total_lines )
202233 }
203234
235+ #[ must_use]
204236 pub fn blank_percentage ( & self ) -> f64 {
205237 utils:: percentage ( self . total_blank_lines , self . total_lines )
206238 }
207239
240+ #[ must_use]
208241 pub fn shebang_percentage ( & self ) -> f64 {
209242 utils:: percentage ( self . total_shebang_lines , self . total_lines )
210243 }
0 commit comments