{{>copyright comment="//"}}

#ifndef {{screaming_snake_case PROJECT_PATH}}_{{screaming_snake_case PROJECT_NAME}}_H_
#define {{screaming_snake_case PROJECT_PATH}}_{{screaming_snake_case PROJECT_NAME}}_H_

#include <lib/inspect/cpp/inspect.h>

#include <ddktl/device.h>

namespace {{snake_case PROJECT_NAME}} {

class {{pascal_case PROJECT_NAME}};
using DeviceType = ddk::Device<{{pascal_case PROJECT_NAME}}, ddk::Initializable, ddk::Unbindable>;
class {{pascal_case PROJECT_NAME}} : public DeviceType {
 public:
  explicit {{pascal_case PROJECT_NAME}}(zx_device_t* parent) : DeviceType(parent) {}
  virtual ~{{pascal_case PROJECT_NAME}}() = default;

  static zx_status_t Bind(void* ctx, zx_device_t* dev);
  zx_status_t Bind();
  void DdkInit(ddk::InitTxn txn);
  void DdkUnbind(ddk::UnbindTxn txn);
  void DdkRelease();

  // For inspect test.
  zx::vmo inspect_vmo() { return inspect_.DuplicateVmo(); }

 private:
  inspect::Inspector inspect_;
  // TODO: `is_bound` is an example property. Replace this with useful properties of the device.
  inspect::BoolProperty is_bound = inspect_.GetRoot().CreateBool("is_bound", false);
};

}  // namespace {{snake_case PROJECT_NAME}}

#endif  // {{screaming_snake_case PROJECT_PATH}}_{{screaming_snake_case PROJECT_NAME}}_H_
