1 #ifndef CTRE__ACTIONS__ASSERTS__HPP
2 #define CTRE__ACTIONS__ASSERTS__HPP
3 
4 // push_assert_begin
apply(pcre::push_assert_begin,ctll::term<V>,pcre_context<ctll::list<Ts...>,Parameters> subject)5 template <auto V, typename... Ts, typename Parameters> static constexpr auto apply(pcre::push_assert_begin, ctll::term<V>, pcre_context<ctll::list<Ts...>, Parameters> subject) {
6 	return pcre_context{ctll::push_front(assert_line_begin(), subject.stack), subject.parameters};
7 }
8 
9 // push_assert_end
apply(pcre::push_assert_end,ctll::term<V>,pcre_context<ctll::list<Ts...>,Parameters> subject)10 template <auto V, typename... Ts, typename Parameters> static constexpr auto apply(pcre::push_assert_end, ctll::term<V>, pcre_context<ctll::list<Ts...>, Parameters> subject) {
11 	return pcre_context{ctll::push_front(assert_line_end(), subject.stack), subject.parameters};
12 }
13 
14 // push_assert_begin
apply(pcre::push_assert_subject_begin,ctll::term<V>,pcre_context<ctll::list<Ts...>,Parameters> subject)15 template <auto V, typename... Ts, typename Parameters> static constexpr auto apply(pcre::push_assert_subject_begin, ctll::term<V>, pcre_context<ctll::list<Ts...>, Parameters> subject) {
16 	return pcre_context{ctll::push_front(assert_subject_begin(), subject.stack), subject.parameters};
17 }
18 
19 // push_assert_subject_end
apply(pcre::push_assert_subject_end,ctll::term<V>,pcre_context<ctll::list<Ts...>,Parameters> subject)20 template <auto V, typename... Ts, typename Parameters> static constexpr auto apply(pcre::push_assert_subject_end, ctll::term<V>, pcre_context<ctll::list<Ts...>, Parameters> subject) {
21 	return pcre_context{ctll::push_front(assert_subject_end(), subject.stack), subject.parameters};
22 }
23 
24 // push_assert_subject_end_with_lineend
apply(pcre::push_assert_subject_end_with_lineend,ctll::term<V>,pcre_context<ctll::list<Ts...>,Parameters> subject)25 template <auto V, typename... Ts, typename Parameters> static constexpr auto apply(pcre::push_assert_subject_end_with_lineend, ctll::term<V>, pcre_context<ctll::list<Ts...>, Parameters> subject) {
26 	return pcre_context{ctll::push_front(assert_subject_end_line(), subject.stack), subject.parameters};
27 }
28 
29 #endif
30