The implementations in packet.rs are wrapped in a macro whose only function is to "find/replace" all the lifetime annotations. However these macros are then only called once with the <'a> lifetime. This makes the code harder to read (both by me and the LSP) and does seem to add any functionality.