mockiato-codegen 0.9.6

Internally used by mockiato for code generation. This crate should never be used directly
Documentation
use std::fmt::Debug;

use proc_macro2::Span;
use syn::punctuated::Punctuated;
use syn::{Generics, Ident, ItemTrait, Token, TypeParamBound, Visibility};

use crate::parse::method_decl::MethodDecl;
use crate::result::Result;

#[derive(Clone)]
#[cfg_attr(feature = "debug-impls", derive(Debug))]
pub(crate) struct TraitDecl {
    pub(crate) visibility: Visibility,
    pub(crate) span: Span,
    pub(crate) ident: Ident,
    pub(crate) generics: Generics,
    pub(crate) unsafety: Option<Token![unsafe]>,
    pub(crate) supertraits: Punctuated<TypeParamBound, Token![+]>,
    pub(crate) methods: Vec<MethodDecl>,
}

#[cfg_attr(test, mockiato::mockable)]
pub(crate) trait TraitDeclParser: Debug {
    fn parse(&self, item: ItemTrait) -> Result<TraitDecl>;
}