Trait genco::tokens::Register

source ·
pub trait Register<L>
where L: Lang,
{ // Required method fn register(self, tokens: &mut Tokens<L>); }
Expand description

Helper trait to convert something into a stream of registrations.

Thanks to this, we can provide a flexible number of arguments to register(), like a tuple.

This is trait is very similar to FormatInto, except that it constrains the types that can be “registered” to only language items. An implementation of register must not be used as a substitute for FormatInto.

§Examples

use genco::prelude::*;

let mut tokens = rust::Tokens::new();

let hash_map = rust::import("std::collections", "HashMap");
let btree_map = rust::import("std::collections", "BTreeMap");

tokens.register((hash_map, btree_map));

assert_eq!(
    vec![
        "use std::collections::{BTreeMap, HashMap};",
    ],
    tokens.to_file_vec()?,
);

Required Methods§

source

fn register(self, tokens: &mut Tokens<L>)

Convert the type into tokens.

Implementations on Foreign Types§

source§

impl<L, T1> Register<L> for (T1,)
where T1: Register<L>, L: Lang,

source§

fn register(self, tokens: &mut Tokens<L>)

source§

impl<L, T1, T2> Register<L> for (T1, T2)
where T1: Register<L>, T2: Register<L>, L: Lang,

source§

fn register(self, tokens: &mut Tokens<L>)

source§

impl<L, T1, T2, T3> Register<L> for (T1, T2, T3)
where T1: Register<L>, T2: Register<L>, T3: Register<L>, L: Lang,

source§

fn register(self, tokens: &mut Tokens<L>)

source§

impl<L, T1, T2, T3, T4> Register<L> for (T1, T2, T3, T4)
where T1: Register<L>, T2: Register<L>, T3: Register<L>, T4: Register<L>, L: Lang,

source§

fn register(self, tokens: &mut Tokens<L>)

source§

impl<L, T1, T2, T3, T4, T5> Register<L> for (T1, T2, T3, T4, T5)
where T1: Register<L>, T2: Register<L>, T3: Register<L>, T4: Register<L>, T5: Register<L>, L: Lang,

source§

fn register(self, tokens: &mut Tokens<L>)

source§

impl<L, T1, T2, T3, T4, T5, T6> Register<L> for (T1, T2, T3, T4, T5, T6)
where T1: Register<L>, T2: Register<L>, T3: Register<L>, T4: Register<L>, T5: Register<L>, T6: Register<L>, L: Lang,

source§

fn register(self, tokens: &mut Tokens<L>)

source§

impl<L, T1, T2, T3, T4, T5, T6, T7> Register<L> for (T1, T2, T3, T4, T5, T6, T7)
where T1: Register<L>, T2: Register<L>, T3: Register<L>, T4: Register<L>, T5: Register<L>, T6: Register<L>, T7: Register<L>, L: Lang,

source§

fn register(self, tokens: &mut Tokens<L>)

source§

impl<L, T1, T2, T3, T4, T5, T6, T7, T8> Register<L> for (T1, T2, T3, T4, T5, T6, T7, T8)
where T1: Register<L>, T2: Register<L>, T3: Register<L>, T4: Register<L>, T5: Register<L>, T6: Register<L>, T7: Register<L>, T8: Register<L>, L: Lang,

source§

fn register(self, tokens: &mut Tokens<L>)

Implementors§

source§

impl Register<C> for genco::lang::c::Import

source§

impl Register<Csharp> for genco::lang::csharp::Import

source§

impl Register<Dart> for genco::lang::dart::Import

source§

impl Register<Go> for genco::lang::go::Import

source§

impl Register<Java> for genco::lang::java::Import

source§

impl Register<JavaScript> for genco::lang::js::Import

source§

impl Register<Nix> for genco::lang::nix::Import

source§

impl Register<Python> for genco::lang::python::Import

source§

impl Register<Python> for ImportModule

source§

impl Register<Rust> for genco::lang::rust::Import

source§

impl Register<Swift> for genco::lang::swift::Import

source§

impl<'a> Register<C> for &'a genco::lang::c::Import

source§

impl<'a> Register<Csharp> for &'a genco::lang::csharp::Import

source§

impl<'a> Register<Dart> for &'a genco::lang::dart::Import

source§

impl<'a> Register<Go> for &'a genco::lang::go::Import

source§

impl<'a> Register<Java> for &'a genco::lang::java::Import

source§

impl<'a> Register<JavaScript> for &'a genco::lang::js::Import

source§

impl<'a> Register<Nix> for &'a genco::lang::nix::Import

source§

impl<'a> Register<Python> for &'a genco::lang::python::Import

source§

impl<'a> Register<Python> for &'a ImportModule

source§

impl<'a> Register<Rust> for &'a genco::lang::rust::Import

source§

impl<'a> Register<Swift> for &'a genco::lang::swift::Import