accepts-codegen 0.0.1

Rust toolkit for composing synchronous and asynchronous acceptor pipelines
Documentation
use syn::{Attribute, Lifetime, Receiver, Token, Type, token::SelfValue};

pub trait ReceiverConstructExt {
    fn from_parts(
        attrs: Vec<Attribute>,
        reference: Option<(Token![&], Option<Lifetime>)>,
        mutability: Option<Token![mut]>,
        self_token: Token![self],
        colon_token: Option<Token![:]>,
        ty: Box<Type>,
    ) -> Receiver;

    fn from_ref_mut_colon_ty(
        reference: Option<(Token![&], Option<Lifetime>)>,
        mutability: Option<Token![mut]>,
        colon_token: Option<Token![:]>,
        ty: Box<Type>,
    ) -> Receiver;
}

impl ReceiverConstructExt for Receiver {
    fn from_parts(
        attrs: Vec<Attribute>,
        reference: Option<(Token![&], Option<Lifetime>)>,
        mutability: Option<Token![mut]>,
        self_token: Token![self],
        colon_token: Option<Token![:]>,
        ty: Box<Type>,
    ) -> Receiver {
        Receiver {
            attrs,
            reference,
            mutability,
            self_token,
            colon_token,
            ty,
        }
    }

    fn from_ref_mut_colon_ty(
        reference: Option<(Token![&], Option<Lifetime>)>,
        mutability: Option<Token![mut]>,
        colon_token: Option<Token![:]>,
        ty: Box<Type>,
    ) -> Receiver {
        Self::from_parts(
            Vec::new(),
            reference,
            mutability,
            SelfValue::default(),
            colon_token,
            ty,
        )
    }
}