TIL Struct matching in Guards
Not so much a TIL but I always get confused with the proper syntax. You can pattern match on a struct and use it in a guard to only let through the structs you want: @spec address_formater(BillAddress.t() | ShipAddress.t()) :: String.t() def address_formatter(%struct{} = address) when