mirror of
https://github.com/Naios/continuable.git
synced 2026-01-01 03:12:12 +08:00
Adds documentation to all_of and any_of.
This commit is contained in:
parent
6edce3bcaa
commit
7ae1aedfbb
@ -680,7 +680,7 @@ SHOW_FILES = YES
|
||||
# Folder Tree View (if specified).
|
||||
# The default value is: YES.
|
||||
|
||||
SHOW_NAMESPACES = YES
|
||||
SHOW_NAMESPACES = NO
|
||||
|
||||
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
|
||||
# doxygen should invoke to get the current version for each file (typically from
|
||||
@ -790,7 +790,8 @@ WARN_LOGFILE =
|
||||
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
|
||||
# Note: If this tag is empty the current directory is searched.
|
||||
|
||||
INPUT = ../include
|
||||
INPUT = ../include \
|
||||
Index.md
|
||||
|
||||
# This tag can be used to specify the character encoding of the source files
|
||||
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
|
||||
@ -983,7 +984,7 @@ FILTER_SOURCE_PATTERNS =
|
||||
# (index.html). This can be useful if you have a project on for instance GitHub
|
||||
# and want to reuse the introduction page also for the doxygen output.
|
||||
|
||||
USE_MDFILE_AS_MAINPAGE =
|
||||
USE_MDFILE_AS_MAINPAGE = Index.md
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to source browsing
|
||||
|
||||
15
doc/Index.md
Normal file
15
doc/Index.md
Normal file
@ -0,0 +1,15 @@
|
||||
# Documentation of continuable
|
||||
|
||||
This documentation covers the continuable library in detail
|
||||
|
||||
## Content
|
||||
|
||||
- Class cti::continuable_base - main class for continuation chaining
|
||||
- \link cti::continuable_base::then then\endlink - adds a callback to the chain
|
||||
- \link cti::continuable_base::operator && operator&&\endlink - connects another continuable with an *all* logic.
|
||||
- \link cti::continuable_base::operator|| operator||\endlink - connects another continuable with an *any* logic.
|
||||
- Helper functions
|
||||
- \link cti::make_continuable make_continuable\endlink - creates a continuable_base from a callback tanking function.
|
||||
- \link cti::all_of all_of\endlink - connects all given continuables with an *all* logic.
|
||||
- \link cti::any_of any_of\endlink - connects all given continuables with an *any* logic.
|
||||
|
||||
@ -34,7 +34,9 @@
|
||||
#include <utility>
|
||||
|
||||
namespace cti {
|
||||
/// \cond false
|
||||
inline namespace abi_v1 {
|
||||
/// \endcond
|
||||
/// A wrapper class to mark a functional class as continuation
|
||||
/// Such a wrapper class is required to decorate the result of a callback
|
||||
/// correctly.
|
||||
@ -1405,6 +1407,8 @@ private:
|
||||
///
|
||||
/// \returns A \ref continuable_base with unknown template parameters which
|
||||
/// wraps the given continuation.
|
||||
/// In order to convert the \ref continuable_base to a known type
|
||||
/// you need to apply type erasure.
|
||||
///
|
||||
/// \note You should always turn the callback into a r-value if possible
|
||||
/// (`std::move` or `std::forward`) for qualifier correct invokation.
|
||||
@ -1420,18 +1424,36 @@ auto make_continuable(Continuation&& continuation) {
|
||||
std::forward<Continuation>(continuation), hint);
|
||||
}
|
||||
|
||||
template <typename First, typename Second, typename... Rest>
|
||||
auto all_of(First&& first, Second&& second, Rest&&... rest) {
|
||||
return detail::util::fold(
|
||||
detail::util::and_folding(), std::forward<First>(first),
|
||||
std::forward<Second>(second), std::forward<Rest>(rest)...);
|
||||
/// Connects the given continuables with an *all* logic.
|
||||
///
|
||||
/// \param continuables The \ref continuable_base objects to connect.
|
||||
/// Requires at least 2 objects to connect.
|
||||
///
|
||||
/// \see \ref continuable_base::operator && for details.
|
||||
///
|
||||
/// \since version 1.0.0
|
||||
template <typename... Continuables>
|
||||
auto all_of(Continuables&&... continuables) {
|
||||
static_assert(sizeof...(continuables) >= 2,
|
||||
"Requires at least 2 continuables!");
|
||||
return detail::util::fold(detail::util::and_folding(),
|
||||
std::forward<Continuables>(continuables)...);
|
||||
}
|
||||
|
||||
template <typename First, typename Second, typename... Rest>
|
||||
auto any_of(First&& first, Second&& second, Rest&&... rest) {
|
||||
return detail::util::fold(
|
||||
detail::util::or_folding(), std::forward<First>(first),
|
||||
std::forward<Second>(second), std::forward<Rest>(rest)...);
|
||||
/// Connects the given continuables with an *any* logic.
|
||||
///
|
||||
/// \param continuables The \ref continuable_base objects to connect.
|
||||
/// Requires at least 2 objects to connect.
|
||||
///
|
||||
/// \see \ref continuable_base::operator|| for details.
|
||||
///
|
||||
/// \since version 1.0.0
|
||||
template <typename... Continuables>
|
||||
auto any_of(Continuables&&... continuables) {
|
||||
static_assert(sizeof...(continuables) >= 2,
|
||||
"Requires at least 2 continuables!");
|
||||
return detail::util::fold(detail::util::or_folding(),
|
||||
std::forward<Continuables>(continuables)...);
|
||||
}
|
||||
|
||||
template <template <typename> class CallbackWrapper,
|
||||
@ -1452,7 +1474,9 @@ using continuable_of_t =
|
||||
* cti::through
|
||||
*/
|
||||
|
||||
/// \cond false
|
||||
} // end inline namespace abi_...
|
||||
/// \endcond
|
||||
} // end namespace cti
|
||||
|
||||
#endif // CONTINUABLE_BASE_HPP_INCLUDED__
|
||||
|
||||
@ -29,7 +29,9 @@
|
||||
#include "continuable/continuable-base.hpp"
|
||||
|
||||
namespace cti {
|
||||
/// \cond false
|
||||
inline namespace abi_v1 {
|
||||
/// \endcond
|
||||
namespace detail {
|
||||
namespace testing {
|
||||
template <typename C> void expect_async_completion(C&& continuable) {
|
||||
@ -107,7 +109,9 @@ void expect_async_types(C&& continuable, util::identity<Args...> expected) {
|
||||
}
|
||||
} // end namespace testing
|
||||
} // end namespace detail
|
||||
/// \cond false
|
||||
} // end inline namespace abi_...
|
||||
/// \endcond
|
||||
} // end namespace cti
|
||||
|
||||
/// Expects the final callback of the given continuable to be called
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user