@@ -147,6 +147,8 @@ fn parse_resource_string(s: &str) -> Result<TrustResource> {
147147 }
148148}
149149
150+ // We only construct one per invocation, not worth shrinking this.
151+ #[ allow( clippy:: large_enum_variant) ]
150152#[ derive( Debug , Subcommand ) ]
151153enum Commands {
152154 /// Sub-command to configure trust store options, "trust --help for more details"
@@ -264,46 +266,44 @@ fn configure_sdk(args: &CliArgs) -> Result<()> {
264266
265267 let mut enable_trust_checks = false ;
266268
267- match & args. command {
268- Some ( Commands :: Trust {
269- trust_anchors,
270- allowed_list,
271- trust_config,
272- } ) => {
273- if let Some ( trust_list) = & trust_anchors {
274- let data = load_trust_resource ( trust_list) ?;
275- debug ! ( "Using trust anchors from {:?}" , trust_list) ;
276- let replacement_val = serde_json:: Value :: String ( data) . to_string ( ) ; // escape string
277- let setting = ta. replace ( "replacement_val" , & replacement_val) ;
278-
279- c2pa:: settings:: load_settings_from_str ( & setting, "json" ) ?;
280-
281- enable_trust_checks = true ;
282- }
269+ if let Some ( Commands :: Trust {
270+ trust_anchors,
271+ allowed_list,
272+ trust_config,
273+ } ) = & args. command
274+ {
275+ if let Some ( trust_list) = & trust_anchors {
276+ let data = load_trust_resource ( trust_list) ?;
277+ debug ! ( "Using trust anchors from {:?}" , trust_list) ;
278+ let replacement_val = serde_json:: Value :: String ( data) . to_string ( ) ; // escape string
279+ let setting = ta. replace ( "replacement_val" , & replacement_val) ;
283280
284- if let Some ( allowed_list) = & allowed_list {
285- let data = load_trust_resource ( allowed_list) ?;
286- debug ! ( "Using allowed list from {:?}" , allowed_list) ;
287- let replacement_val = serde_json:: Value :: String ( data) . to_string ( ) ; // escape string
288- let setting = al. replace ( "replacement_val" , & replacement_val) ;
281+ c2pa:: settings:: load_settings_from_str ( & setting, "json" ) ?;
289282
290- c2pa:: settings:: load_settings_from_str ( & setting, "json" ) ?;
283+ enable_trust_checks = true ;
284+ }
291285
292- enable_trust_checks = true ;
293- }
286+ if let Some ( allowed_list) = & allowed_list {
287+ let data = load_trust_resource ( allowed_list) ?;
288+ debug ! ( "Using allowed list from {:?}" , allowed_list) ;
289+ let replacement_val = serde_json:: Value :: String ( data) . to_string ( ) ; // escape string
290+ let setting = al. replace ( "replacement_val" , & replacement_val) ;
291+
292+ c2pa:: settings:: load_settings_from_str ( & setting, "json" ) ?;
294293
295- if let Some ( trust_config) = & trust_config {
296- let data = load_trust_resource ( trust_config) ?;
297- debug ! ( "Using trust config from {:?}" , trust_config) ;
298- let replacement_val = serde_json:: Value :: String ( data) . to_string ( ) ; // escape string
299- let setting = tc. replace ( "replacement_val" , & replacement_val) ;
294+ enable_trust_checks = true ;
295+ }
300296
301- c2pa:: settings:: load_settings_from_str ( & setting, "json" ) ?;
297+ if let Some ( trust_config) = & trust_config {
298+ let data = load_trust_resource ( trust_config) ?;
299+ debug ! ( "Using trust config from {:?}" , trust_config) ;
300+ let replacement_val = serde_json:: Value :: String ( data) . to_string ( ) ; // escape string
301+ let setting = tc. replace ( "replacement_val" , & replacement_val) ;
302302
303- enable_trust_checks = true ;
304- }
303+ c2pa:: settings:: load_settings_from_str ( & setting, "json" ) ?;
304+
305+ enable_trust_checks = true ;
305306 }
306- _ => { }
307307 }
308308
309309 // if any trust setting is provided enable the trust checks
@@ -327,9 +327,9 @@ fn configure_sdk(args: &CliArgs) -> Result<()> {
327327fn sign_fragmented (
328328 manifest : & mut Manifest ,
329329 signer : & dyn Signer ,
330- init_pattern : & PathBuf ,
330+ init_pattern : & Path ,
331331 frag_pattern : & PathBuf ,
332- output_path : & PathBuf ,
332+ output_path : & Path ,
333333) -> Result < ( ) > {
334334 // search folders for init segments
335335 let ip = init_pattern. to_str ( ) . ok_or ( c2pa:: Error :: OtherError (
@@ -370,7 +370,7 @@ fn sign_fragmented(
370370 Ok ( ( ) )
371371}
372372
373- fn verify_fragmented ( init_pattern : & PathBuf , frag_pattern : & PathBuf ) -> Result < Vec < ManifestStore > > {
373+ fn verify_fragmented ( init_pattern : & Path , frag_pattern : & Path ) -> Result < Vec < ManifestStore > > {
374374 let mut stores = Vec :: new ( ) ;
375375
376376 let ip = init_pattern
@@ -446,11 +446,10 @@ fn main() -> Result<()> {
446446 return Ok ( ( ) ) ;
447447 }
448448
449- let is_fragment = if let Some ( Commands :: Fragment { fragments_glob : _ } ) = & args. command {
450- true
451- } else {
452- false
453- } ;
449+ let is_fragment = matches ! (
450+ & args. command,
451+ Some ( Commands :: Fragment { fragments_glob: _ } )
452+ ) ;
454453
455454 // make sure path is not a glob when not fragmented
456455 if !args. path . is_file ( ) && !is_fragment {
@@ -666,27 +665,21 @@ fn main() -> Result<()> {
666665 "{}" ,
667666 ManifestStoreReport :: from_file( & args. path) . map_err( special_errs) ?
668667 )
669- } else {
670- if let Some ( Commands :: Fragment { fragments_glob } ) = & args. command {
671- if let Some ( fg) = & fragments_glob {
672- let stores = verify_fragmented ( & args. path , fg) ?;
673- if stores. len ( ) == 1 {
674- println ! ( "{}" , stores[ 0 ] ) ;
675- } else {
676- println ! ( "{} Init manifests validated" , stores. len( ) ) ;
677- }
678- } else {
679- println ! (
680- "{}" ,
681- ManifestStore :: from_file( & args. path) . map_err( special_errs) ?
682- )
683- }
668+ } else if let Some ( Commands :: Fragment {
669+ fragments_glob : Some ( fg) ,
670+ } ) = & args. command
671+ {
672+ let stores = verify_fragmented ( & args. path , fg) ?;
673+ if stores. len ( ) == 1 {
674+ println ! ( "{}" , stores[ 0 ] ) ;
684675 } else {
685- println ! (
686- "{}" ,
687- ManifestStore :: from_file( & args. path) . map_err( special_errs) ?
688- )
676+ println ! ( "{} Init manifests validated" , stores. len( ) ) ;
689677 }
678+ } else {
679+ println ! (
680+ "{}" ,
681+ ManifestStore :: from_file( & args. path) . map_err( special_errs) ?
682+ )
690683 }
691684
692685 Ok ( ( ) )
0 commit comments