derive_more_impl/as/mut.rs
1//! Implementation of an [`AsMut`] derive macro.
2
3use proc_macro2::TokenStream;
4use quote::format_ident;
5use syn::Token;
6
7/// Expands an [`AsMut`] derive macro.
8pub(crate) fn expand(
9 input: &syn::DeriveInput,
10 trait_name: &'static str,
11) -> syn::Result<TokenStream> {
12 let trait_ident = format_ident!("{trait_name}");
13 let method_ident = format_ident!("as_mut");
14 let mutability = <Token![mut]>::default();
15
16 super::expand(input, (&trait_ident, &method_ident, Some(&mutability)))
17}