1 // Copyright © 2025 Cyberus Technology GmbH
2 //
3 // SPDX-License-Identifier: Apache-2.0
4 //
5
6 //! Test utilities.
7
8 use std::cmp::Ordering;
9
10 use clap::Arg;
11
12 /// Ensures that all [`Arg`]s are sorted alphabetically.
assert_args_sorted<'a, F: Fn() -> R, R: Iterator<Item = &'a Arg>>(get_base_iter: F)13 pub fn assert_args_sorted<'a, F: Fn() -> R, R: Iterator<Item = &'a Arg>>(get_base_iter: F) {
14 let iter = get_base_iter().zip(get_base_iter().skip(1));
15 for (arg, next) in iter {
16 assert_ne!(
17 arg.get_id().cmp(next.get_id()),
18 Ordering::Greater,
19 "args not alphabetically sorted: arg={}, next={}",
20 arg.get_id(),
21 next.get_id()
22 );
23 }
24 }
25