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}