pre_commit_sort/
declare_hook.rs

1//! ref. <https://pre-commit.com/#creating-new-hooks>
2
3#[serde_with::skip_serializing_none]
4#[derive(serde::Serialize, serde::Deserialize, Debug, Eq, Ord, PartialEq, PartialOrd, Clone)]
5pub struct DeclareHook {
6    id: String,
7    name: String,
8    entry: String,
9    language: String,
10    files: Option<String>,
11    exclude: Option<String>,
12    types: Option<Vec<String>>,
13    types_or: Option<Vec<String>>,
14    exclude_types: Option<String>,
15    always_run: Option<bool>,
16    fail_fast: Option<bool>,
17    verbose: Option<bool>,
18    pass_filenames: Option<bool>,
19    require_serial: Option<bool>,
20    description: Option<String>,
21    language_version: Option<String>,
22    minimum_pre_commit_version: Option<String>,
23    args: Option<Vec<String>>,
24    stages: Option<Vec<String>>,
25}
26
27impl DeclareHook {
28    #[must_use]
29    pub const fn new(id: String, name: String, entry: String, language: String) -> Self {
30        Self {
31            id,
32            name,
33            entry,
34            language,
35            files: None,
36            exclude: None,
37            types: None,
38            types_or: None,
39            exclude_types: None,
40            always_run: None,
41            fail_fast: None,
42            verbose: None,
43            pass_filenames: None,
44            require_serial: None,
45            description: None,
46            language_version: None,
47            minimum_pre_commit_version: None,
48            args: None,
49            stages: None,
50        }
51    }
52}