MT Core (C++)
Core library for replacing C++ standard in project usage
Loading...
Searching...
No Matches
traits.hpp File Reference
#include "mtcore/colls/optional.hpp"
#include "mtcore/colls/result.hpp"
#include "mtcore_thread/core.hpp"
#include <chrono>
#include <concepts>
Include dependency graph for thread/mtcore_thread/traits.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  mtcore
 Core library for C++ with Zig-related functionality.
 
namespace  mtcore::thread
 Thread-related namespace The methods and classes provided by this class are thread-safe Classes and methods provided outside of this class are not thread-safe (with the exception of malloc_alloc) This requires linking mtcore_thread to your application.
 

Concepts

concept  mtcore::thread::SelectOption
 Checks if something qualifies as an option to a select statement Allows defining custom options and cases.
 
concept  mtcore::thread::Closeable
 Checks if something is closeable (e.g.
 
concept  mtcore::thread::Sender
 Checks if messages can be sent to something (e.g.
 
concept  mtcore::thread::Receiver
 Checks if messages can be received from something (e.g.
 
concept  mtcore::thread::SenderBlock
 Checks if messages can be sent in a blocking manner.
 
concept  mtcore::thread::ReceiverBlock
 Checks if messages can be received in a blocking manner.
 
concept  mtcore::thread::SenderBefore
 Checks if messages can be sent in a blocking manner with a timeout.
 
concept  mtcore::thread::ReceiverBefore
 Checks if messages can be received in a blocking manner with a timeout.
 
concept  mtcore::thread::SenderGrow
 Checks if messages can be sent to something (e.g.
 
concept  mtcore::thread::SenderBlockGrow
 Checks if messages can be sent to something (e.g.
 
concept  mtcore::thread::SenderBeforeGrow
 Checks if messages can be sent to something (e.g.
 
concept  mtcore::thread::HasClosedError
 Checks if an error type has a "Has Closed" error called CHANNEL_CLOSED.
 
concept  mtcore::thread::SenderReceiver
 Checks if non-blocking sends and receives are supported.
 
concept  mtcore::thread::SenderReceiverBlock
 Checks if blocking sends and receives are supported.
 
concept  mtcore::thread::SenderReceiverBefore
 Checks if blocking with timeout sends and receives are supported.
 
concept  mtcore::thread::SenderReceiverGrow
 Checks if non-blocking sends and receives are supported with allocation to grow.
 
concept  mtcore::thread::SenderReceiverBlockGrow
 Checks if blocking sends and receives are supported with allocation to grow.
 
concept  mtcore::thread::SenderReceiverBeforeGrow
 Checks if blocking with timeout sends and receives are supported with allocation to grow.
 
concept  mtcore::thread::ChannelLike
 Checks if something qualifies as a channel Channels can:
 
concept  mtcore::thread::ChannelLikeGrow
 Checks if something qualifies as a growing channel Growing channels can:
 

Variables

template<typename T>
constexpr bool mtcore::thread::has_closed_error = impl::IsHasClosedError<T>::value
 Checks if an error type has a recognized closed error.
 
template<typename T>
constexpr bool mtcore::thread::is_closeable = impl::IsCloseable<T>::value
 Checks if a type is closeable.
 
template<typename T>
constexpr bool mtcore::thread::is_sender = impl::IsSender<T>::value
 Checks if a type can be sent to.
 
template<typename T>
constexpr bool mtcore::thread::is_sender_grow = impl::IsSenderGrow<T>::value
 Checks if a type can be sent to with growing.
 
template<typename T>
constexpr bool mtcore::thread::is_sender_block = impl::IsSenderBlock<T>::value
 Checks if a type can be sent to (blocking)
 
template<typename T>
constexpr bool mtcore::thread::is_sender_block_grow = impl::IsSenderBlockGrow<T>::value
 Checks if a type can be sent to (blocking) with growing.
 
template<typename T>
constexpr bool mtcore::thread::is_sender_before = impl::IsSenderBefore<T>::value
 Checks if a type can be sent to (blocking, timeout)
 
template<typename T>
constexpr bool mtcore::thread::is_sender_before_grow = impl::IsSenderBeforeGrow<T>::value
 Checks if a type can be sent to (blocking, timeout) with growing.
 
template<typename T>
constexpr bool mtcore::thread::is_receiver = impl::IsReceiver<T>::value
 Checks if a type can be received from.
 
template<typename T>
constexpr bool mtcore::thread::is_receiver_block = impl::IsReceiverBlock<T>::value
 Checks if a type can be received from (blocking)
 
template<typename T>
constexpr bool mtcore::thread::is_receiver_before = impl::IsReceiverBefore<T>::value
 Checks if a type can be received from (blocking, timeout)
 
template<typename T>
constexpr bool mtcore::thread::is_sender_receiver = impl::IsSenderReceiver<T>::value
 Checks if a type can be sent to and received from.
 
template<typename T>
constexpr bool mtcore::thread::is_sender_receiver_grow = impl::IsSenderReceiverGrow<T>::value
 Checks if a type can be sent to and received from with growing send.
 
template<typename T>
constexpr bool mtcore::thread::is_sender_receiver_block = impl::IsSenderReceiverBlock<T>::value
 Checks if a type can be sent to and received from (blocking)
 
template<typename T>
constexpr bool mtcore::thread::is_sender_receiver_block_grow = impl::IsSenderReceiverBlockGrow<T>::value
 Checks if a type can be sent to and received from (blocking) with growing send.
 
template<typename T>
constexpr bool mtcore::thread::is_sender_receiver_before = impl::IsSenderReceiverBefore<T>::value
 Checks if a type can be sent to and received from (blocking, timeout)
 
template<typename T>
constexpr bool mtcore::thread::is_sender_receiver_before_grow = impl::IsSenderReceiverBeforeGrow<T>::value
 Checks if a type can be sent to and received from (blocking, timeout) with growing send.
 
template<typename T>
constexpr bool mtcore::thread::is_channel_like = impl::IsChannelLike<T>::value
 Checks if a type is channel-like.
 
template<typename T>
constexpr bool mtcore::thread::is_channel_like_grow = impl::IsChannelLikeGrow<T>::value
 Checks if a type is growing channel-like.
 
template<typename T>
constexpr bool mtcore::thread::is_select_option = impl::IsSelectOption<T>::value
 Checks if a type can be used in a select statement as an option.