Trait LanguageSet

Source
pub trait LanguageSet<'config> {
    type LanguageMetas: 'static;

    // Required methods
    fn compute_language_metas() -> Result<Self::LanguageMetas>;
    fn add_lang_argument(command: Command) -> Command;
    fn add_language_specific_arguments(
        command: Command,
        metas: &Self::LanguageMetas,
    ) -> Command;
    fn execute_typeshare_for_language(
        language: &str,
        config: &'config Config,
        args: &'config ArgMatches,
        metas: &Self::LanguageMetas,
        data: HashMap<Option<CrateName>, ParsedData>,
        destination: &OutputLocation<'_>,
    ) -> Result<()>;
}

Required Associated Types§

Source

type LanguageMetas: 'static

Required Methods§

Source

fn compute_language_metas() -> Result<Self::LanguageMetas>

Each language has a set of configuration metadata, describing all of its configuration parameters. This metadata is used to populate the clap command with language specific parameters for each language, and to load a fully configured language. It is computed based on the serde serialization of a config.

Source

fn add_lang_argument(command: Command) -> Command

Add the --language argument to the command, such that all of the languages in this set are possible values for that argument

Source

fn add_language_specific_arguments( command: Command, metas: &Self::LanguageMetas, ) -> Command

Add all of the language-specific arguments to the clap command.

Source

fn execute_typeshare_for_language( language: &str, config: &'config Config, args: &'config ArgMatches, metas: &Self::LanguageMetas, data: HashMap<Option<CrateName>, ParsedData>, destination: &OutputLocation<'_>, ) -> Result<()>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'config, A> LanguageSet<'config> for (A,)
where A: Language<'config>,

Source§

impl<'config, A, B> LanguageSet<'config> for (A, B)
where A: Language<'config>, B: Language<'config>,

Source§

impl<'config, A, B, C> LanguageSet<'config> for (A, B, C)
where A: Language<'config>, B: Language<'config>, C: Language<'config>,

Source§

impl<'config, A, B, C, D> LanguageSet<'config> for (A, B, C, D)
where A: Language<'config>, B: Language<'config>, C: Language<'config>, D: Language<'config>,

Source§

impl<'config, A, B, C, D, E> LanguageSet<'config> for (A, B, C, D, E)
where A: Language<'config>, B: Language<'config>, C: Language<'config>, D: Language<'config>, E: Language<'config>,

Source§

impl<'config, A, B, C, D, E, F> LanguageSet<'config> for (A, B, C, D, E, F)
where A: Language<'config>, B: Language<'config>, C: Language<'config>, D: Language<'config>, E: Language<'config>, F: Language<'config>,

Source§

impl<'config, A, B, C, D, E, F, G> LanguageSet<'config> for (A, B, C, D, E, F, G)
where A: Language<'config>, B: Language<'config>, C: Language<'config>, D: Language<'config>, E: Language<'config>, F: Language<'config>, G: Language<'config>,

Source§

impl<'config, A, B, C, D, E, F, G, H> LanguageSet<'config> for (A, B, C, D, E, F, G, H)
where A: Language<'config>, B: Language<'config>, C: Language<'config>, D: Language<'config>, E: Language<'config>, F: Language<'config>, G: Language<'config>, H: Language<'config>,

Source§

impl<'config, A, B, C, D, E, F, G, H, I> LanguageSet<'config> for (A, B, C, D, E, F, G, H, I)
where A: Language<'config>, B: Language<'config>, C: Language<'config>, D: Language<'config>, E: Language<'config>, F: Language<'config>, G: Language<'config>, H: Language<'config>, I: Language<'config>,

Source§

impl<'config, A, B, C, D, E, F, G, H, I, J> LanguageSet<'config> for (A, B, C, D, E, F, G, H, I, J)
where A: Language<'config>, B: Language<'config>, C: Language<'config>, D: Language<'config>, E: Language<'config>, F: Language<'config>, G: Language<'config>, H: Language<'config>, I: Language<'config>, J: Language<'config>,

Source§

impl<'config, A, B, C, D, E, F, G, H, I, J, K> LanguageSet<'config> for (A, B, C, D, E, F, G, H, I, J, K)
where A: Language<'config>, B: Language<'config>, C: Language<'config>, D: Language<'config>, E: Language<'config>, F: Language<'config>, G: Language<'config>, H: Language<'config>, I: Language<'config>, J: Language<'config>, K: Language<'config>,

Source§

impl<'config, A, B, C, D, E, F, G, H, I, J, K, L> LanguageSet<'config> for (A, B, C, D, E, F, G, H, I, J, K, L)
where A: Language<'config>, B: Language<'config>, C: Language<'config>, D: Language<'config>, E: Language<'config>, F: Language<'config>, G: Language<'config>, H: Language<'config>, I: Language<'config>, J: Language<'config>, K: Language<'config>, L: Language<'config>,

Source§

impl<'config, A, B, C, D, E, F, G, H, I, J, K, L, M> LanguageSet<'config> for (A, B, C, D, E, F, G, H, I, J, K, L, M)
where A: Language<'config>, B: Language<'config>, C: Language<'config>, D: Language<'config>, E: Language<'config>, F: Language<'config>, G: Language<'config>, H: Language<'config>, I: Language<'config>, J: Language<'config>, K: Language<'config>, L: Language<'config>, M: Language<'config>,

Source§

impl<'config, A, B, C, D, E, F, G, H, I, J, K, L, M, N> LanguageSet<'config> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)
where A: Language<'config>, B: Language<'config>, C: Language<'config>, D: Language<'config>, E: Language<'config>, F: Language<'config>, G: Language<'config>, H: Language<'config>, I: Language<'config>, J: Language<'config>, K: Language<'config>, L: Language<'config>, M: Language<'config>, N: Language<'config>,

Source§

impl<'config, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> LanguageSet<'config> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)
where A: Language<'config>, B: Language<'config>, C: Language<'config>, D: Language<'config>, E: Language<'config>, F: Language<'config>, G: Language<'config>, H: Language<'config>, I: Language<'config>, J: Language<'config>, K: Language<'config>, L: Language<'config>, M: Language<'config>, N: Language<'config>, O: Language<'config>,

Source§

impl<'config, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> LanguageSet<'config> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)
where A: Language<'config>, B: Language<'config>, C: Language<'config>, D: Language<'config>, E: Language<'config>, F: Language<'config>, G: Language<'config>, H: Language<'config>, I: Language<'config>, J: Language<'config>, K: Language<'config>, L: Language<'config>, M: Language<'config>, N: Language<'config>, O: Language<'config>, P: Language<'config>,

Implementors§