diff --git a/.clang-format b/.clang-format index 6eaf544..47e1248 100644 --- a/.clang-format +++ b/.clang-format @@ -10,3 +10,16 @@ FixNamespaceComments: true # IndentPPDirectives: AfterHash MacroBlockBegin: "^CONTINUABLE_BLOCK_.*_BEGIN$" MacroBlockEnd: "^CONTINUABLE_BLOCK_.*_END$" +IncludeCategories: + - Regex: '^<+[a-z_]+>' + Priority: 1 + - Regex: '^' + Priority: 2 + - Regex: '^<(gtest|function2)/.*\.(h|hpp)>' + Priority: 3 + - Regex: '^' + Priority: 4 + - Regex: '^<.*' + Priority: 5 + - Regex: '.*' + Priority: 6 diff --git a/include/continuable/continuable-base.hpp b/include/continuable/continuable-base.hpp index 4914e86..ff5afd4 100644 --- a/include/continuable/continuable-base.hpp +++ b/include/continuable/continuable-base.hpp @@ -35,20 +35,19 @@ #include #include #include - -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include +#include +#include #ifdef CONTINUABLE_HAS_EXPERIMENTAL_COROUTINE -#include #include +#include #endif // CONTINUABLE_HAS_EXPERIMENTAL_COROUTINE namespace cti { diff --git a/include/continuable/continuable-connections.hpp b/include/continuable/continuable-connections.hpp index c8957c9..1a3c21f 100644 --- a/include/continuable/continuable-connections.hpp +++ b/include/continuable/continuable-connections.hpp @@ -35,12 +35,11 @@ #include #include #include - -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include namespace cti { /// \defgroup Connections Connections diff --git a/include/continuable/continuable-coroutine.hpp b/include/continuable/continuable-coroutine.hpp index a6be454..d08d709 100644 --- a/include/continuable/continuable-coroutine.hpp +++ b/include/continuable/continuable-coroutine.hpp @@ -32,15 +32,15 @@ #include #include +#include #include -#include #if defined(CONTINUABLE_HAS_EXCEPTIONS) #include #endif // CONTINUABLE_HAS_EXCEPTIONS #ifdef CONTINUABLE_HAS_EXPERIMENTAL_COROUTINE -#include +#include #endif // CONTINUABLE_HAS_EXPERIMENTAL_COROUTINE /// \cond false diff --git a/include/continuable/continuable-promise-base.hpp b/include/continuable/continuable-promise-base.hpp index cada7ef..ce8401e 100644 --- a/include/continuable/continuable-promise-base.hpp +++ b/include/continuable/continuable-promise-base.hpp @@ -33,10 +33,9 @@ #include #include - -#include -#include -#include +#include +#include +#include namespace cti { /// \defgroup Base Base diff --git a/include/continuable/continuable-promisify.hpp b/include/continuable/continuable-promisify.hpp index e52cb26..dfa31b3 100644 --- a/include/continuable/continuable-promisify.hpp +++ b/include/continuable/continuable-promisify.hpp @@ -33,8 +33,7 @@ #include #include - -#include +#include namespace cti { /// \defgroup Promisify Promisify diff --git a/include/continuable/continuable-testing.hpp b/include/continuable/continuable-testing.hpp index 861fce8..d96d0c6 100644 --- a/include/continuable/continuable-testing.hpp +++ b/include/continuable/continuable-testing.hpp @@ -31,8 +31,8 @@ #ifndef CONTINUABLE_TESTING_HPP_INCLUDED #define CONTINUABLE_TESTING_HPP_INCLUDED -#include -#include +#include +#include /// \defgroup Testing Testing /// provides macro shortcuts for testing asynchronous continuations through diff --git a/include/continuable/continuable-trait.hpp b/include/continuable/continuable-trait.hpp index 1777535..c104115 100644 --- a/include/continuable/continuable-trait.hpp +++ b/include/continuable/continuable-trait.hpp @@ -32,11 +32,10 @@ #define CONTINUABLE_TRAIT_HPP_INCLUDED #include - #include #include -#include -#include +#include +#include namespace cti { /// \defgroup Types Types diff --git a/include/continuable/continuable-transforms.hpp b/include/continuable/continuable-transforms.hpp index db841cb..777f195 100644 --- a/include/continuable/continuable-transforms.hpp +++ b/include/continuable/continuable-transforms.hpp @@ -31,8 +31,8 @@ #ifndef CONTINUABLE_TRANSFORMS_HPP_INCLUDED #define CONTINUABLE_TRANSFORMS_HPP_INCLUDED -#include -#include +#include +#include namespace cti { /// \defgroup Transforms Transforms diff --git a/include/continuable/continuable-traverse-async.hpp b/include/continuable/continuable-traverse-async.hpp index 42ff8e5..b23d226 100644 --- a/include/continuable/continuable-traverse-async.hpp +++ b/include/continuable/continuable-traverse-async.hpp @@ -32,8 +32,7 @@ #define CONTINUABLE_TRAVERSE_ASYNC_HPP_INCLUDED #include - -#include +#include namespace cti { /// \defgroup Traversal Traversal diff --git a/include/continuable/continuable-traverse.hpp b/include/continuable/continuable-traverse.hpp index 457e6a4..4a3b3be 100644 --- a/include/continuable/continuable-traverse.hpp +++ b/include/continuable/continuable-traverse.hpp @@ -34,8 +34,7 @@ #include #include #include - -#include +#include namespace cti { /// \defgroup Traversal Traversal diff --git a/include/continuable/continuable-types.hpp b/include/continuable/continuable-types.hpp index 1686d89..52e13c1 100644 --- a/include/continuable/continuable-types.hpp +++ b/include/continuable/continuable-types.hpp @@ -32,9 +32,7 @@ #define CONTINUABLE_TYPES_HPP_INCLUDED #include - #include - #include namespace cti { diff --git a/include/continuable/detail/connection-aggregated.hpp b/include/continuable/detail/connection/connection-aggregated.hpp similarity index 97% rename from include/continuable/detail/connection-aggregated.hpp rename to include/continuable/detail/connection/connection-aggregated.hpp index 7a9584a..96838cc 100644 --- a/include/continuable/detail/connection-aggregated.hpp +++ b/include/continuable/detail/connection/connection-aggregated.hpp @@ -35,11 +35,10 @@ #include #include #include - #include -#include -#include -#include +#include +#include +#include namespace cti { namespace detail { @@ -211,7 +210,7 @@ constexpr auto finalize_impl(traits::identity>, Callback&& callback, Data&& data) { // Call the final callback with the cleaned result return traits::unpack(std::forward(callback), - unbox_continuables(std::forward(data))); + unbox_continuables(std::forward(data))); } struct hint_mapper { diff --git a/include/continuable/detail/connection-all.hpp b/include/continuable/detail/connection/connection-all.hpp similarity index 95% rename from include/continuable/detail/connection-all.hpp rename to include/continuable/detail/connection/connection-all.hpp index b18daf5..6f01208 100644 --- a/include/continuable/detail/connection-all.hpp +++ b/include/continuable/detail/connection/connection-all.hpp @@ -37,13 +37,12 @@ #include #include #include - -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include namespace cti { namespace detail { diff --git a/include/continuable/detail/connection-any.hpp b/include/continuable/detail/connection/connection-any.hpp similarity index 96% rename from include/continuable/detail/connection-any.hpp rename to include/continuable/detail/connection/connection-any.hpp index 122c83e..f1dc45c 100644 --- a/include/continuable/detail/connection-any.hpp +++ b/include/continuable/detail/connection/connection-any.hpp @@ -37,14 +37,13 @@ #include #include #include - #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include namespace cti { namespace detail { diff --git a/include/continuable/detail/connection-seq.hpp b/include/continuable/detail/connection/connection-seq.hpp similarity index 96% rename from include/continuable/detail/connection-seq.hpp rename to include/continuable/detail/connection/connection-seq.hpp index 718a0bc..867a96b 100644 --- a/include/continuable/detail/connection-seq.hpp +++ b/include/continuable/detail/connection/connection-seq.hpp @@ -36,12 +36,11 @@ #include #include #include - #include -#include -#include -#include -#include +#include +#include +#include +#include namespace cti { namespace detail { diff --git a/include/continuable/detail/connection.hpp b/include/continuable/detail/connection/connection.hpp similarity index 97% rename from include/continuable/detail/connection.hpp rename to include/continuable/detail/connection/connection.hpp index 395d92e..cf7bf55 100644 --- a/include/continuable/detail/connection.hpp +++ b/include/continuable/detail/connection/connection.hpp @@ -35,12 +35,11 @@ #include #include #include - #include -#include -#include -#include -#include +#include +#include +#include +#include namespace cti { namespace detail { diff --git a/include/continuable/detail/base.hpp b/include/continuable/detail/core/base.hpp similarity index 99% rename from include/continuable/detail/base.hpp rename to include/continuable/detail/core/base.hpp index d431a37..de82462 100644 --- a/include/continuable/detail/base.hpp +++ b/include/continuable/detail/core/base.hpp @@ -34,12 +34,11 @@ #include #include #include - +#include +#include #include -#include -#include -#include -#include +#include +#include #if defined(CONTINUABLE_HAS_EXCEPTIONS) #include diff --git a/include/continuable/detail/hints.hpp b/include/continuable/detail/core/hints.hpp similarity index 96% rename from include/continuable/detail/hints.hpp rename to include/continuable/detail/core/hints.hpp index 25079c3..4f9b580 100644 --- a/include/continuable/detail/hints.hpp +++ b/include/continuable/detail/core/hints.hpp @@ -32,9 +32,8 @@ #define CONTINUABLE_DETAIL_HINTS_HPP_INCLUDED #include - -#include -#include +#include +#include namespace cti { namespace detail { diff --git a/include/continuable/detail/types.hpp b/include/continuable/detail/core/types.hpp similarity index 99% rename from include/continuable/detail/types.hpp rename to include/continuable/detail/core/types.hpp index 795ef56..eac8405 100644 --- a/include/continuable/detail/types.hpp +++ b/include/continuable/detail/core/types.hpp @@ -32,7 +32,6 @@ #define CONTINUABLE_DETAIL_TYPES_HPP_INCLUDED #include - #include #ifndef CONTINUABLE_WITH_CUSTOM_ERROR_TYPE diff --git a/include/continuable/detail/awaiting.hpp b/include/continuable/detail/other/coroutines.hpp similarity index 95% rename from include/continuable/detail/awaiting.hpp rename to include/continuable/detail/other/coroutines.hpp index 0742db4..cda24c0 100644 --- a/include/continuable/detail/awaiting.hpp +++ b/include/continuable/detail/other/coroutines.hpp @@ -33,15 +33,14 @@ #define CONTINUABLE_DETAIL_AWAITING_HPP_INCLUDED #include -#include #include - -#include +#include +#include +#include #include -#include -#include -#include -#include +#include +#include +#include #if defined(CONTINUABLE_HAS_EXCEPTIONS) #include @@ -172,8 +171,7 @@ struct promise_resolver_base> { }; template -struct promise_type - : promise_resolver_base> { +struct promise_type : promise_resolver_base> { coroutine_handle<> handle_; Promise promise_; diff --git a/include/continuable/detail/promisify.hpp b/include/continuable/detail/other/promisify.hpp similarity index 96% rename from include/continuable/detail/promisify.hpp rename to include/continuable/detail/other/promisify.hpp index 960d66e..b654117 100644 --- a/include/continuable/detail/promisify.hpp +++ b/include/continuable/detail/other/promisify.hpp @@ -32,15 +32,15 @@ #define CONTINUABLE_DETAIL_PROMISIFY_HPP_INCLUDED #include +#include +#include +#include +#include #if defined(CONTINUABLE_HAS_EXCEPTIONS) #include #endif // CONTINUABLE_HAS_EXCEPTIONS -#include -#include -#include - namespace cti { namespace detail { namespace convert { diff --git a/include/continuable/detail/testing.hpp b/include/continuable/detail/other/testing.hpp similarity index 97% rename from include/continuable/detail/testing.hpp rename to include/continuable/detail/other/testing.hpp index 6852eeb..0c8077e 100644 --- a/include/continuable/detail/testing.hpp +++ b/include/continuable/detail/other/testing.hpp @@ -33,13 +33,11 @@ #include #include - #include - +#include #include -#include -#include -#include +#include +#include namespace cti { namespace detail { diff --git a/include/continuable/detail/transforms.hpp b/include/continuable/detail/other/transforms.hpp similarity index 96% rename from include/continuable/detail/transforms.hpp rename to include/continuable/detail/other/transforms.hpp index eeb6c05..2b19106 100644 --- a/include/continuable/detail/transforms.hpp +++ b/include/continuable/detail/other/transforms.hpp @@ -32,12 +32,11 @@ #define CONTINUABLE_DETAIL_TRANSFORMS_HPP_INCLUDED #include - -#include +#include +#include +#include #include -#include -#include -#include +#include namespace cti { namespace detail { diff --git a/include/continuable/detail/container-category.hpp b/include/continuable/detail/traversal/container-category.hpp similarity index 98% rename from include/continuable/detail/container-category.hpp rename to include/continuable/detail/traversal/container-category.hpp index 7bdbdee..8b8be94 100644 --- a/include/continuable/detail/container-category.hpp +++ b/include/continuable/detail/traversal/container-category.hpp @@ -33,8 +33,7 @@ #include #include - -#include +#include namespace cti { namespace detail { diff --git a/include/continuable/detail/range.hpp b/include/continuable/detail/traversal/range.hpp similarity index 98% rename from include/continuable/detail/range.hpp rename to include/continuable/detail/traversal/range.hpp index 36a9014..8168621 100644 --- a/include/continuable/detail/range.hpp +++ b/include/continuable/detail/traversal/range.hpp @@ -35,8 +35,7 @@ #include #include #include - -#include +#include namespace cti { namespace detail { diff --git a/include/continuable/detail/traverse-async.hpp b/include/continuable/detail/traversal/traverse-async.hpp similarity index 99% rename from include/continuable/detail/traverse-async.hpp rename to include/continuable/detail/traversal/traverse-async.hpp index 07a7326..bc67c43 100644 --- a/include/continuable/detail/traverse-async.hpp +++ b/include/continuable/detail/traversal/traverse-async.hpp @@ -39,9 +39,8 @@ #include #include #include - -#include -#include +#include +#include namespace cti { namespace detail { diff --git a/include/continuable/detail/traverse.hpp b/include/continuable/detail/traversal/traverse.hpp similarity index 99% rename from include/continuable/detail/traverse.hpp rename to include/continuable/detail/traversal/traverse.hpp index a94eccc..e58dbb1 100644 --- a/include/continuable/detail/traverse.hpp +++ b/include/continuable/detail/traversal/traverse.hpp @@ -37,9 +37,8 @@ #include #include #include - -#include -#include +#include +#include namespace cti { namespace detail { @@ -193,9 +192,9 @@ template constexpr auto apply_spread_impl(std::true_type, C&& callable, T&&... args) -> decltype( traits::unpack(std::forward(callable), - std::tuple_cat(undecorate(std::forward(args))...))) { + std::tuple_cat(undecorate(std::forward(args))...))) { return traits::unpack(std::forward(callable), - std::tuple_cat(undecorate(std::forward(args))...)); + std::tuple_cat(undecorate(std::forward(args))...)); } /// Use the linear instantiation for variadic packs which don't diff --git a/include/continuable/detail/expected.hpp b/include/continuable/detail/utility/expected.hpp similarity index 97% rename from include/continuable/detail/expected.hpp rename to include/continuable/detail/utility/expected.hpp index 5ebe083..bf5ff86 100644 --- a/include/continuable/detail/expected.hpp +++ b/include/continuable/detail/utility/expected.hpp @@ -33,10 +33,9 @@ #include #include - -#include -#include -#include +#include +#include +#include namespace cti { namespace detail { diff --git a/include/continuable/detail/flat-variant.hpp b/include/continuable/detail/utility/flat-variant.hpp similarity index 99% rename from include/continuable/detail/flat-variant.hpp rename to include/continuable/detail/utility/flat-variant.hpp index 8fe4756..edb3a64 100644 --- a/include/continuable/detail/flat-variant.hpp +++ b/include/continuable/detail/utility/flat-variant.hpp @@ -38,8 +38,7 @@ #include #include #include - -#include +#include namespace cti { namespace detail { diff --git a/include/continuable/detail/traits.hpp b/include/continuable/detail/utility/traits.hpp similarity index 99% rename from include/continuable/detail/traits.hpp rename to include/continuable/detail/utility/traits.hpp index f52e43a..a9e2736 100644 --- a/include/continuable/detail/traits.hpp +++ b/include/continuable/detail/utility/traits.hpp @@ -35,7 +35,6 @@ #include #include #include - #include namespace cti { diff --git a/include/continuable/detail/util.hpp b/include/continuable/detail/utility/util.hpp similarity index 99% rename from include/continuable/detail/util.hpp rename to include/continuable/detail/utility/util.hpp index 2ba04c0..0eacf66 100644 --- a/include/continuable/detail/util.hpp +++ b/include/continuable/detail/utility/util.hpp @@ -35,9 +35,8 @@ #include #include #include - #include -#include +#include namespace cti { namespace detail { diff --git a/test/playground/CMakeLists.txt b/test/playground/CMakeLists.txt index 6aa61fa..027b3ed 100644 --- a/test/playground/CMakeLists.txt +++ b/test/playground/CMakeLists.txt @@ -1,7 +1,12 @@ set(INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include/continuable) -file(GLOB LIB_SOURCES ${INCLUDE_DIR}/*.hpp) -file(GLOB_RECURSE LIB_SOURCES_DETAIL ${INCLUDE_DIR}/detail/*.hpp) +file(GLOB LIB_SOURCES CONFIGURE_DEPENDS ${INCLUDE_DIR}/*.hpp) +file(GLOB LIB_SOURCES_DETAIL CONFIGURE_DEPENDS ${INCLUDE_DIR}/detail/*.hpp) +file(GLOB LIB_SOURCES_DETAIL_CONNECTIONS CONFIGURE_DEPENDS ${INCLUDE_DIR}/detail/connection/*.hpp) +file(GLOB LIB_SOURCES_DETAIL_CORE CONFIGURE_DEPENDS ${INCLUDE_DIR}/detail/core/*.hpp) +file(GLOB LIB_SOURCES_DETAIL_OTHER CONFIGURE_DEPENDS ${INCLUDE_DIR}/detail/other/*.hpp) +file(GLOB LIB_SOURCES_DETAIL_TRAVERSAL CONFIGURE_DEPENDS ${INCLUDE_DIR}/detail/traversal/*.hpp) +file(GLOB LIB_SOURCES_DETAIL_UTILITY CONFIGURE_DEPENDS ${INCLUDE_DIR}/detail/utility/*.hpp) set(TEST ${CMAKE_CURRENT_LIST_DIR}/test-playground.cpp) @@ -9,10 +14,20 @@ set(TEST add_executable(test-playground ${LIB_SOURCES} ${LIB_SOURCES_DETAIL} + ${LIB_SOURCES_DETAIL_CONNECTIONS} + ${LIB_SOURCES_DETAIL_CORE} + ${LIB_SOURCES_DETAIL_OTHER} + ${LIB_SOURCES_DETAIL_TRAVERSAL} + ${LIB_SOURCES_DETAIL_UTILITY} ${TEST}) source_group(continuable FILES ${LIB_SOURCES}) source_group(continuable\\detail FILES ${LIB_SOURCES_DETAIL}) +source_group(continuable\\detail\\connections FILES ${LIB_SOURCES_DETAIL_CONNECTIONS}) +source_group(continuable\\detail\\core FILES ${LIB_SOURCES_DETAIL_CORE}) +source_group(continuable\\detail\\other FILES ${LIB_SOURCES_DETAIL_OTHER}) +source_group(continuable\\detail\\traversal FILES ${LIB_SOURCES_DETAIL_TRAVERSAL}) +source_group(continuable\\detail\\utility FILES ${LIB_SOURCES_DETAIL_UTILITY}) source_group(test FILES ${TEST}) target_link_libraries(test-playground