use syn::Token;
use crate::{
constructor::{constructor_arg::ConstructorArg, constructor_visibility::ConstructorVisibility},
new_from_args::NewFromArgs,
};
pub struct ConstructorStructAttrs {
pub name: String,
pub visibility: ConstructorVisibility,
}
impl NewFromArgs<ConstructorArg> for ConstructorStructAttrs {
fn new(args: syn::punctuated::Punctuated<ConstructorArg, Token![,]>) -> Self {
let mut name = String::from("new");
let mut visibility = ConstructorVisibility::Pub;
for value in args {
match value {
ConstructorArg::Name(n) => name = n,
ConstructorArg::Visibility(vis) => visibility = vis,
}
}
Self { name, visibility }
}
}