Porting an init function in a protocol extension produces errors

Hullo, I wanted to turn a class in a struct and move intelligence in a protocol extension, but when I try to call inits in the extension I get

'self' used before 'self.init' call or assignment to 'self'

How do I call self.init or assign to self before updating the values? Of course init does no accept mutating.

Porting an init function in a protocol extension produces errors
 
 
Q