1 // This file is part of Desktop App Toolkit, 2 // a set of libraries for developing nice desktop applications. 3 // 4 // For license and copyright information please follow this link: 5 // https://github.com/desktop-app/legal/blob/master/LEGAL 6 // 7 #pragma once 8 9 #include "base/build_config.h" 10 #include "base/ordered_set.h" 11 #include "base/unique_function.h" 12 #include "base/functors.h" 13 #include "base/required.h" 14 15 #include <QtGlobal> 16 #include <QtCore/QByteArray> 17 #include <QtCore/QString> 18 19 #include <string> 20 #include <exception> 21 #include <memory> 22 #include <ctime> 23 #include <functional> 24 #include <gsl/gsl> 25 26 namespace func = base::functors; 27 28 using gsl::not_null; 29 using index_type = gsl::index; 30 using size_type = gsl::index; 31 using base::required; 32 33 template <typename Signature> 34 using Fn = std::function<Signature>; 35 36 template <typename Signature> 37 using FnMut = base::unique_function<Signature>; 38 39 //using uchar = unsigned char; // Qt has uchar 40 using int8 = qint8; 41 using uint8 = quint8; 42 using int16 = qint16; 43 using uint16 = quint16; 44 using int32 = qint32; 45 using uint32 = quint32; 46 using int64 = qint64; 47 using uint64 = quint64; 48 using float32 = float; 49 using float64 = double; 50 51 using TimeId = int32; 52 53 [[nodiscard]] inline QByteArray operator""_q( 54 const char *data, 55 std::size_t size) { 56 return QByteArray::fromRawData(data, size); 57 } 58 59 [[nodiscard]] inline QString operator""_q( 60 const char16_t *data, 61 std::size_t size) { 62 return QString::fromRawData( 63 reinterpret_cast<const QChar*>(data), 64 size); 65 } 66