@@ -29,8 +29,8 @@ pub struct ListAttributes {
2929 pub is_above_shannon_line : bool ,
3030 pub shortest_edit_distance : Option < usize > ,
3131 pub mean_edit_distance : Option < f64 > ,
32- pub longest_shared_prefix : usize ,
33- pub unique_character_prefix : usize ,
32+ pub longest_shared_prefix : Option < usize > ,
33+ pub unique_character_prefix : Option < usize > ,
3434 pub mcmillan : bool ,
3535}
3636
@@ -64,8 +64,8 @@ fn make_attributes(list: &[String], level: u8) -> ListAttributes {
6464 is_uniquely_decodable : None ,
6565 shortest_edit_distance : None ,
6666 mean_edit_distance : None ,
67- longest_shared_prefix : find_longest_shared_prefix ( list ) ,
68- unique_character_prefix : find_longest_shared_prefix ( list ) + 1 ,
67+ longest_shared_prefix : None ,
68+ unique_character_prefix : None ,
6969 mcmillan : satisfies_mcmillan ( list) ,
7070 }
7171 } else if level == 2 {
@@ -86,8 +86,8 @@ fn make_attributes(list: &[String], level: u8) -> ListAttributes {
8686 is_uniquely_decodable : Some ( is_uniquely_decodable ( list) ) ,
8787 shortest_edit_distance : None ,
8888 mean_edit_distance : None ,
89- longest_shared_prefix : find_longest_shared_prefix ( list ) ,
90- unique_character_prefix : find_longest_shared_prefix ( list ) + 1 ,
89+ longest_shared_prefix : None ,
90+ unique_character_prefix : None ,
9191 mcmillan : satisfies_mcmillan ( list) ,
9292 }
9393 } else {
@@ -108,8 +108,8 @@ fn make_attributes(list: &[String], level: u8) -> ListAttributes {
108108 is_uniquely_decodable : Some ( is_uniquely_decodable ( list) ) ,
109109 shortest_edit_distance : Some ( find_shortest_edit_distance ( list) ) ,
110110 mean_edit_distance : Some ( find_mean_edit_distance ( list) ) ,
111- longest_shared_prefix : find_longest_shared_prefix ( list) ,
112- unique_character_prefix : find_longest_shared_prefix ( list) + 1 ,
111+ longest_shared_prefix : Some ( find_longest_shared_prefix ( list) ) ,
112+ unique_character_prefix : Some ( find_longest_shared_prefix ( list) + 1 ) ,
113113 mcmillan : satisfies_mcmillan ( list) ,
114114 }
115115 }
@@ -218,20 +218,20 @@ pub fn display_list_information(
218218
219219 if let Some ( shortest_edit_distance) = list_attributes. shortest_edit_distance {
220220 eprintln ! ( "Shortest edit distance : {}" , shortest_edit_distance)
221- } ;
221+ }
222222 if let Some ( mean_edit_distance) = list_attributes. mean_edit_distance {
223223 eprintln ! ( "Mean edit distance : {:.3}" , mean_edit_distance)
224224 }
225- eprintln ! (
226- "Longest shared prefix : {}" ,
227- list_attributes . longest_shared_prefix
228- ) ;
225+
226+ if let Some ( longest_shared_prefix ) = list_attributes . longest_shared_prefix {
227+ eprintln ! ( "Longest shared prefix : {}" , longest_shared_prefix)
228+ }
229229 // Numbers of characters required to definitely get to a unique
230230 // prefix
231- eprintln ! (
232- "Unique character prefix : {}" ,
233- list_attributes . unique_character_prefix
234- ) ;
231+ if let Some ( unique_character_prefix ) = list_attributes . unique_character_prefix {
232+ eprintln ! ( "Unique character prefix : {}" , unique_character_prefix )
233+ }
234+
235235 if level >= 4 {
236236 let mcmillan = if list_attributes. mcmillan {
237237 "satisfied"
0 commit comments