typle 0.13.0

Generic tuple bounds and transformations
Documentation
use syn::{Attribute, Block, ImplItemFn, ItemFn, Signature, Visibility};

pub struct GeneralFunction {
    pub attrs: Vec<Attribute>,
    pub vis: Visibility,
    pub sig: Signature,
    pub block: Block,
}

impl From<ItemFn> for GeneralFunction {
    fn from(source: ItemFn) -> Self {
        GeneralFunction {
            attrs: source.attrs,
            vis: source.vis,
            sig: source.sig,
            block: *source.block,
        }
    }
}

impl From<GeneralFunction> for ItemFn {
    fn from(source: GeneralFunction) -> Self {
        ItemFn {
            attrs: source.attrs,
            vis: source.vis,
            sig: source.sig,
            block: Box::new(source.block),
        }
    }
}

impl From<ImplItemFn> for GeneralFunction {
    fn from(source: ImplItemFn) -> Self {
        GeneralFunction {
            attrs: source.attrs,
            vis: source.vis,
            sig: source.sig,
            block: source.block,
        }
    }
}

impl From<GeneralFunction> for ImplItemFn {
    fn from(source: GeneralFunction) -> Self {
        ImplItemFn {
            attrs: source.attrs,
            vis: source.vis,
            defaultness: None,
            sig: source.sig,
            block: source.block,
        }
    }
}