aboutsummaryrefslogtreecommitdiff
path: root/CruUI/base.h
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2018-09-25 13:08:40 +0800
committercrupest <crupest@outlook.com>2018-09-25 13:08:40 +0800
commit4b86554a0354d78efeb40e551eaccaac0fecd1d1 (patch)
treec8a73d848401f523ff91fe8ed1b0887aa88bbfb8 /CruUI/base.h
parentcea138417c54d6cf8043b6334c22e3af957d26f8 (diff)
downloadcru-4b86554a0354d78efeb40e551eaccaac0fecd1d1.tar.gz
cru-4b86554a0354d78efeb40e551eaccaac0fecd1d1.tar.bz2
cru-4b86554a0354d78efeb40e551eaccaac0fecd1d1.zip
Change the structure of project.
Diffstat (limited to 'CruUI/base.h')
-rw-r--r--CruUI/base.h107
1 files changed, 0 insertions, 107 deletions
diff --git a/CruUI/base.h b/CruUI/base.h
deleted file mode 100644
index 7ef78014..00000000
--- a/CruUI/base.h
+++ /dev/null
@@ -1,107 +0,0 @@
-#pragma once
-
-// ReSharper disable once CppUnusedIncludeDirective
-#include "global_macros.h"
-
-
-#ifdef CRU_DEBUG
-#include <string>
-#include <vector>
-#else
-#include <folly/String.h>
-#include <folly/FBVector.h>
-#endif
-
-#include <folly/Function.h>
-
-#include <utility>
-#include <type_traits>
-#include <stdexcept>
-#include <memory>
-#include <string_view>
-#include <chrono>
-
-namespace cru
-{
- template<typename T> struct is_shared_ptr : std::false_type {};
- template<typename T> struct is_shared_ptr<std::shared_ptr<T>> : std::true_type {};
- template<typename T> constexpr bool is_shared_ptr_v = is_shared_ptr<T>::value;
-
- enum class FlowControl
- {
- Continue,
- Break
- };
-
-#ifdef CRU_DEBUG
- using String = std::wstring;
- using MultiByteString = std::string;
-#else
- using String = folly::basic_fbstring<wchar_t>;
- using MultiByteString = folly::fbstring;
-#endif
-
- using StringView = std::wstring_view;
- using MultiByteStringView = std::string_view;
-
- template<typename FunctionType>
- using Function = folly::Function<FunctionType>;
-
- template<typename FunctionType>
- using FunctionPtr = std::shared_ptr<Function<FunctionType>>;
-
- using Action = Function<void()>;
- using ActionPtr = FunctionPtr<void()>;
-
- template<typename Type, typename... Args>
- Type CreatePtr(Args&&... args)
- {
- static_assert(is_shared_ptr_v<Type>);
- return std::make_shared<typename Type::element_type>(std::forward<Args>(args)...);
- }
-
- inline ActionPtr CreateActionPtr(Action&& action)
- {
- return std::make_shared<Action>(std::move(action));
- }
-
-#ifdef CRU_DEBUG
- template<typename T>
- using Vector = std::vector<T>;
-#else
- template<typename T>
- using Vector = folly::fbvector<T>;
-#endif
-
- using FloatSecond = std::chrono::duration<double, std::chrono::seconds::period>;
-
- class Object
- {
- public:
- Object() = default;
- Object(const Object&) = default;
- Object& operator = (const Object&) = default;
- Object(Object&&) = default;
- Object& operator = (Object&&) = default;
- virtual ~Object() = default;
- };
-
- struct Interface
- {
- virtual ~Interface() = default;
- };
-
- [[noreturn]] inline void UnreachableCode()
- {
- throw std::logic_error("Unreachable code.");
- }
-
- struct ICancelable : virtual Interface
- {
- virtual void Cancel() = 0;
- };
-
- using CancelablePtr = std::shared_ptr<ICancelable>;
-
- MultiByteString ToUtf8String(const StringView& string);
-}