pub trait PathSegmentExt {
// Required methods
fn first_generic(&self) -> Option<&GenericArgument>;
fn first_generic_mut(&mut self) -> Option<&mut GenericArgument>;
fn last_generic(&self) -> Option<&GenericArgument>;
fn last_generic_mut(&mut self) -> Option<&mut GenericArgument>;
fn first_two_generics(&self) -> Option<(&GenericArgument, &GenericArgument)>;
fn generic_args(&self) -> Option<&Punctuated<GenericArgument, Comma>>;
fn generic_args_mut(
&mut self,
) -> Option<&mut Punctuated<GenericArgument, Comma>>;
}