12 #ifndef DOCWIRE_TRANSFORMER_FUNC_H
13 #define DOCWIRE_TRANSFORMER_FUNC_H
15 #include "chain_element.h"
16 #include "core_export.h"
17 #include "parsing_chain.h"
18 #include "ref_or_owned.h"
23 using message_transform_func = std::function<continuation(message_ptr,
const message_callbacks& emit_message)>;
56 std::is_convertible_v<T, message_transform_func> &&
57 !std::is_base_of_v<chain_element, std::remove_cvref_t<T>>
59 parsing_chain operator|(ref_or_owned<chain_element> element, T func)
61 return element | transformer_func{func};
66 std::is_convertible_v<T, message_transform_func> &&
67 !std::is_base_of_v<chain_element, std::remove_cvref_t<T>>
69 parsing_chain& operator|=(parsing_chain& chain, T func)
71 return chain |= transformer_func{func};
The main namespace for the DocWire SDK.
requires(!string_method_equipped< T >) struct stringifier< T >
Specialization for types that are streamable to std::ostream.