Skip to main content

LanguageSet

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".

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§