5 Adds a new `#[derive()]` clause to a struct or enum.
22 ## `add_explicit_type`
24 Specify type for a let binding
40 Adds a new inherent impl for a type
44 struct Ctx<T: Clone> {
49 struct Ctx<T: Clone> {
53 impl<T: Clone> Ctx<T> {
58 ## `add_impl_default_members`
60 Adds scaffold for overriding default impl members
91 ## `add_impl_missing_members`
93 Adds scaffold for required impl members
115 fn foo(&self) { unimplemented!() }
122 Apply [De Morgan's law](https://en.wikipedia.org/wiki/De_Morgan%27s_laws).
123 This transforms expressions of the form `!l || !r` into `!(l && r)`.
124 This also works with `&&`. This assist can only be applied with the cursor
125 on either `||` or `&&`, with both operands being a negation of some kind.
126 This means something of the form `!x` or `x != y`.
131 if x != 4 ||<|> !y {}
140 ## `change_visibility`
142 Adds or changes existing visibility specifier.
146 fn<|> frobnicate() {}
149 pub(crate) fn frobnicate() {}
152 ## `convert_to_guarded_return`
154 Replace a large conditional with a guarded return.
177 Adds missing clauses to a `match` expression.
181 enum Action { Move { distance: u32 }, Stop }
183 fn handle(action: Action) {
190 enum Action { Move { distance: u32 }, Stop }
192 fn handle(action: Action) {
194 Action::Move{ distance } => (),