text: #ifndef WINDOW_HPP_INCLUDED
  #define WINDOW_HPP_INCLUDED
  
  #define GLFW_INCLUDE_VULKAN
  #include <GLFW/glfw3.h>
  
  #include <string>
  #include <cstdint>
  
  struct Dimensions2D {
          Dimensions2D(void) = default;
          Dimensions2D(const Dimensions2D &) = default;
          Dimensions2D &operator=(const Dimensions2D &) = default;
  
          Dimensions2D(uint32_t x, uint32_t y);
  
          uint32_t x = 0;
          uint32_t y = 0;
  };
  
  class Surface;
  class SwapChain;
  
  class Window {
          friend Surface;
          friend SwapChain;
  public:
          Window(void) = default;
          Window(const Window &) = default;
          Window &operator=(const Window &) = default;
  
          Window(const std::string &title, Dimensions2D dims);
          ~Window(void);
  
          auto get_title(void) const noexcept -> const std::string &;
          auto get_wnd(void) const noexcept -> const GLFWwindow *;
          auto should_close(void) noexcept -> bool;
  private:
          std::string title;
          GLFWwindow *wnd;
  };
  
  #endif