type ChangedFields<'a> = SmallVec<[&'a str; 1]>;
The field names one write actually changes, almost always just the one the caller named.
struct ChangedFields<'a> { /* private fields */ }