diff --git a/example/example.cpp b/example/example.cpp
index dd7c486..2ab0bd3 100644
--- a/example/example.cpp
+++ b/example/example.cpp
@@ -41,7 +41,7 @@
     return false;
 }
 
-bool ExampleBlobHandler::stat(const std::string& path, struct BlobMeta* meta)
+bool ExampleBlobHandler::stat(const std::string& path, BlobMeta* meta)
 {
     return false;
 }
@@ -149,7 +149,7 @@
     return true;
 }
 
-bool ExampleBlobHandler::stat(uint16_t session, struct BlobMeta* meta)
+bool ExampleBlobHandler::stat(uint16_t session, BlobMeta* meta)
 {
     ExampleBlob* sess = getSession(session);
     if (!sess)
diff --git a/example/example.hpp b/example/example.hpp
index 335eade..a53d6c0 100644
--- a/example/example.hpp
+++ b/example/example.hpp
@@ -66,7 +66,7 @@
     bool canHandleBlob(const std::string& path) override;
     std::vector<std::string> getBlobIds() override;
     bool deleteBlob(const std::string& path) override;
-    bool stat(const std::string& path, struct BlobMeta* meta) override;
+    bool stat(const std::string& path, BlobMeta* meta) override;
     bool open(uint16_t session, uint16_t flags,
               const std::string& path) override;
     std::vector<uint8_t> read(uint16_t session, uint32_t offset,
@@ -77,7 +77,7 @@
                    const std::vector<uint8_t>& data) override;
     bool commit(uint16_t session, const std::vector<uint8_t>& data) override;
     bool close(uint16_t session) override;
-    bool stat(uint16_t session, struct BlobMeta* meta) override;
+    bool stat(uint16_t session, BlobMeta* meta) override;
     bool expire(uint16_t session) override;
 
     constexpr static char supportedPath[] = "/dev/fake/command";
