diff --git a/endian.hpp b/endian.hpp
index 3c0c622..446e879 100644
--- a/endian.hpp
+++ b/endian.hpp
@@ -16,39 +16,69 @@
     static T from_network(T) = delete;
 };
 
-template<> struct convert<uint16_t>
+template <>
+struct convert<uint16_t>
 {
-    static uint16_t to_ipmi(uint16_t i) { return htole16(i); };
-    static uint16_t from_ipmi(uint16_t i) { return le16toh(i); };
-    static uint16_t to_network(uint16_t i) { return htobe16(i); };
-    static uint16_t from_network(uint16_t i) { return be16toh(i); };
+    static uint16_t to_ipmi(uint16_t i)
+    {
+        return htole16(i);
+    };
+    static uint16_t from_ipmi(uint16_t i)
+    {
+        return le16toh(i);
+    };
+    static uint16_t to_network(uint16_t i)
+    {
+        return htobe16(i);
+    };
+    static uint16_t from_network(uint16_t i)
+    {
+        return be16toh(i);
+    };
 };
 
-template<> struct convert<uint32_t>
+template <>
+struct convert<uint32_t>
 {
-    static uint32_t to_ipmi(uint32_t i) { return htole32(i); };
-    static uint32_t from_ipmi(uint32_t i) { return le32toh(i); };
-    static uint32_t to_network(uint32_t i) { return htobe32(i); };
-    static uint32_t from_network(uint32_t i) { return be32toh(i); };
+    static uint32_t to_ipmi(uint32_t i)
+    {
+        return htole32(i);
+    };
+    static uint32_t from_ipmi(uint32_t i)
+    {
+        return le32toh(i);
+    };
+    static uint32_t to_network(uint32_t i)
+    {
+        return htobe32(i);
+    };
+    static uint32_t from_network(uint32_t i)
+    {
+        return be32toh(i);
+    };
 };
-}
+} // namespace details
 
-template<typename T> T to_ipmi(T i)
+template <typename T>
+T to_ipmi(T i)
 {
     return details::convert<T>::to_ipmi(i);
 }
 
-template<typename T> T from_ipmi(T i)
+template <typename T>
+T from_ipmi(T i)
 {
     return details::convert<T>::from_ipmi(i);
 }
 
-template<typename T> T to_network(T i)
+template <typename T>
+T to_network(T i)
 {
     return details::convert<T>::to_network(i);
 }
-template<typename T> T from_network(T i)
+template <typename T>
+T from_network(T i)
 {
     return details::convert<T>::from_network(i);
 }
-}
+} // namespace endian
