package messages // ID forces the command IDs to always be a certain type. type ID int // ID forces all these commands to be locked in const ( ERROR ID = iota COMMIT CONNECTED REFRESH INFO PUSH PULL REVERT LOCK ) // Modifiers contains any arguments/modifiers to the command ID type Modifiers struct { ModifierID string ModifierData func() } // Command is the structure that all messages must adhere to type Command struct { CmdID ID //locked into the ID type Mods []Modifiers Body []byte }