1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// use crate::{Configuration, ConfigurationError};
// use clap::{Parser, Subcommand};
// use plugx_input::Input;
// use serde::{Deserialize, Serialize};
// use std::collections::HashMap;
// use url::Url;
//
// #[derive(Debug, Clone, Serialize, Deserialize)]
// #[cfg_attr(feature = "clap", derive(Subcommand))]
// pub enum ConfigurationCommand {
// AddUrl {
// url: Url,
// },
// RemoveUrl {
// url: Url,
// },
// HasUrl {
// url: Url,
// },
// AddPluginToWhitelist {
// plugin_name: String,
// },
// GetConfiguration,
// SetConfiguration {
// configuration: HashMap<String, Input>,
// },
// }
//
// impl ConfigurationCommand {
// pub fn apply_to(
// &self,
// configuration: &mut Configuration,
// ) -> Result<Option<Input>, ConfigurationError> {
// match self {
// Self::AddUrl { url } => {
// configuration.add_url(url.clone());
// Ok(None)
// }
// Self::RemoveUrl { url } => Ok(Some(
// configuration.remove_url_and_loader(url.clone()).into(),
// )),
// Self::HasUrl { url } => Ok(Some(configuration.has_url(url.clone()).into())),
// Self::AddPluginToWhitelist { plugin_name } => {
// configuration.add_to_whitelist(plugin_name);
// Ok(None)
// }
// Self::GetConfiguration => Ok(Some(configuration.configuration().clone().into())),
// Self::SetConfiguration {
// configuration: new_configuration,
// } => {
// *configuration.configuration_mut() = new_configuration.clone();
// Ok(None)
// }
// }
// }
// }