ct_regex_internal/codegen/convert_hir/
groups.rs

1use std::collections::HashMap;
2
3#[derive(#[automatically_derived]
impl ::core::fmt::Debug for Group {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        ::core::fmt::Formatter::debug_struct_field2_finish(f, "Group", "name",
            &self.name, "required", &&self.required)
    }
}Debug)]
4pub struct Group {
5    pub name: Option<Box<str>>,
6    pub required: bool,
7}
8
9#[derive(#[automatically_derived]
impl ::core::fmt::Debug for Groups {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        ::core::fmt::Formatter::debug_struct_field2_finish(f, "Groups", "map",
            &self.map, "required", &&self.required)
    }
}Debug, #[automatically_derived]
impl ::core::default::Default for Groups {
    #[inline]
    fn default() -> Groups {
        Groups {
            map: ::core::default::Default::default(),
            required: ::core::default::Default::default(),
        }
    }
}Default)]
10pub struct Groups {
11    pub map: HashMap<u32, Group>,
12    pub required: bool,
13}
14
15impl Groups {
16    pub fn new() -> Groups {
17        let mut map = HashMap::new();
18        map.insert(0, Group {
19            name: Some("whole_match".into()),
20            required: true,
21        });
22        Groups {
23            map,
24            required: true
25        }
26    }
27
28    pub fn insert(&mut self, index: u32, name: Option<Box<str>>) {
29        self.map.insert(index, Group {
30            name,
31            required: self.required,
32        });
33    }
34
35    pub fn into_vec(self) -> Vec<Group> {
36        let mut items: Vec<_> = self.map.into_iter().collect();
37        items.sort_by_key(|(i, _)| *i);
38
39        if items.iter().enumerate().any(|(num, (index, _))| num != *index as usize) {
40            { ::core::panicking::panic_fmt(format_args!("missing a capture group")); };panic!("missing a capture group");
41        }
42
43        items.into_iter().map(|(_, item)| item).collect()
44    }
45}