/* SPDX-FileCopyrightText: 2020 Vlad Zahorodnii SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL */ #pragma once #include #include struct wl_resource; namespace KWin { template T resource_cast(::wl_resource *resource) { using ObjectType = std::remove_pointer_t>; if (auto resourceContainer = ObjectType::Resource::fromResource(resource)) { return static_cast(resourceContainer->object()); } return T(); } } // namespace KWin