11/* * @file */
2- #ifndef CPPSPEC_CLASS_DESCRIPTION_HPP
3- #define CPPSPEC_CLASS_DESCRIPTION_HPP
42#pragma once
53#include < string>
64
@@ -34,15 +32,11 @@ class ClassDescription : public Description {
3432 // if there's no explicit subject given, then use
3533 // the default constructor of the given type as the implicit subject.
3634 ClassDescription (Block block)
37- : Description(),
38- block (block),
39- type(" : " + Util::demangle(typeid (T).name())),
40- subject(T()) {
35+ : Description(), block(block), type(" : " + Util::demangle(typeid (T).name())), subject(T()) {
4136 this ->description = Pretty::to_word (subject);
4237 }
4338
44- ClassDescription (std::string description, Block block)
45- : Description(description), block(block), subject(T()) {}
39+ ClassDescription (std::string description, Block block) : Description(description), block(block), subject(T()) {}
4640
4741 ClassDescription (T subject, Block block)
4842 : Description(Pretty::to_word(subject)),
@@ -61,57 +55,45 @@ class ClassDescription : public Description {
6155
6256 template <typename U>
6357 ClassDescription (std::initializer_list<U> init_list, Block block)
64- : block(block),
65- type(" : " + Util::demangle(typeid (T).name())),
66- subject(T(init_list)) {
58+ : block(block), type(" : " + Util::demangle(typeid (T).name())), subject(T(init_list)) {
6759 this ->description = Pretty::to_word (subject);
6860 }
6961
7062 template <typename U>
71- ClassDescription (std::string description, std::initializer_list<U> init_list,
72- Block block)
63+ ClassDescription (std::string description, std::initializer_list<U> init_list, Block block)
7364 : Description(description), block(block), subject(T(init_list)) {}
7465
7566 Result it (std::string description, std::function<void (ItCD<T> &)> block);
7667 Result it (std::function<void (ItCD<T> &)> block);
7768 /* * @brief an alias for it */
78- Result specify (std::string description,
79- std::function<void (ItCD<T> &)> block) {
80- return it (description, block);
81- }
69+ Result specify (std::string description, std::function<void (ItCD<T> &)> block) { return it (description, block); }
8270 /* * @brief an alias for it */
8371 Result specify (std::function<void (ItCD<T> &)> block) { return it (block); }
8472
8573 template <class U = std::nullptr_t >
86- Result context (std::string description,
87- std::function<void (ClassDescription<T> &)> block);
74+ Result context (std::string description, std::function<void (ClassDescription<T> &)> block);
8875
8976 template <class U >
90- Result context (std::string description, U subject,
91- std::function<void (ClassDescription<U> &)> block);
77+ Result context (std::string description, U subject, std::function<void (ClassDescription<U> &)> block);
9278 template <class U >
93- Result context (std::string description, U &subject,
94- std::function<void (ClassDescription<U> &)> block);
79+ Result context (std::string description, U &subject, std::function<void (ClassDescription<U> &)> block);
9580 template <class U >
9681 Result context (U subject, std::function<void (ClassDescription<U> &)> block);
9782 template <class U >
9883 Result context (U &subject, std::function<void (ClassDescription<U> &)> block);
9984
10085 Result run (Formatters::BaseFormatter &printer) override ;
10186
102- [[nodiscard]] std::string get_subject_type () const noexcept override {
103- return type;
104- }
87+ [[nodiscard]] std::string get_subject_type () const noexcept override { return type; }
10588};
10689
10790template <class T >
10891using ClassContext = ClassDescription<T>;
10992
11093template <class T >
11194template <class U >
112- Result ClassDescription<T>::context(
113- std::string description, U subject,
114- std::function<void (ClassDescription<U> &)> block) {
95+ Result ClassDescription<T>::context(std::string description, U subject,
96+ std::function<void (ClassDescription<U> &)> block) {
11597 ClassContext<U> context (description, subject, block);
11698 context.set_parent (this );
11799 context.ClassContext <U>::before_eaches = this ->before_eaches ;
@@ -121,16 +103,14 @@ Result ClassDescription<T>::context(
121103
122104template <class T >
123105template <class U >
124- Result ClassDescription<T>::context(
125- U subject, std::function<void (ClassDescription<U> &)> block) {
106+ Result ClassDescription<T>::context(U subject, std::function<void (ClassDescription<U> &)> block) {
126107 return this ->context (" " , std::forward<U>(subject), block);
127108}
128109
129110template <class T >
130111template <class U >
131- Result ClassDescription<T>::context(
132- std::string description, U &subject,
133- std::function<void (ClassDescription<U> &)> block) {
112+ Result ClassDescription<T>::context(std::string description, U &subject,
113+ std::function<void (ClassDescription<U> &)> block) {
134114 ClassContext<U> context (description, subject, block);
135115 context.set_parent (this );
136116 context.ClassContext <U>::before_eaches = this ->before_eaches ;
@@ -140,15 +120,13 @@ Result ClassDescription<T>::context(
140120
141121template <class T >
142122template <class U >
143- Result ClassDescription<T>::context(
144- U &subject, std::function<void (ClassDescription<U> &)> block) {
123+ Result ClassDescription<T>::context(U &subject, std::function<void (ClassDescription<U> &)> block) {
145124 return this ->context (" " , std::forward<U>(subject), block);
146125}
147126
148127template <class T >
149128template <class U >
150- Result ClassDescription<T>::context(
151- std::string description, std::function<void (ClassDescription<T> &)> block) {
129+ Result ClassDescription<T>::context(std::string description, std::function<void (ClassDescription<T> &)> block) {
152130 ClassContext<T> context (description, this ->subject , block);
153131 context.set_parent (this );
154132 context.before_eaches = this ->before_eaches ;
@@ -157,14 +135,12 @@ Result ClassDescription<T>::context(
157135}
158136
159137template <class T >
160- Result Description::context (T subject,
161- std::function<void (ClassDescription<T> &)> block) {
138+ Result Description::context (T subject, std::function<void (ClassDescription<T> &)> block) {
162139 return this ->context (" " , subject, block);
163140}
164141
165142template <class T >
166- Result Description::context (std::string description, T subject,
167- std::function<void (ClassDescription<T> &)> block) {
143+ Result Description::context (std::string description, T subject, std::function<void (ClassDescription<T> &)> block) {
168144 ClassContext<T> context (description, subject, block);
169145 context.set_parent (this );
170146 context.before_eaches = this ->before_eaches ;
@@ -173,8 +149,7 @@ Result Description::context(std::string description, T subject,
173149}
174150
175151template <class T , typename U>
176- Result Description::context (std::initializer_list<U> init_list,
177- std::function<void (ClassDescription<T> &)> block) {
152+ Result Description::context (std::initializer_list<U> init_list, std::function<void (ClassDescription<T> &)> block) {
178153 ClassContext<T> context (T (init_list), block);
179154 context.set_parent (this );
180155 context.before_eaches = this ->before_eaches ;
@@ -204,8 +179,7 @@ Result Description::context(std::initializer_list<U> init_list,
204179 * @return the result of the test
205180 */
206181template <class T >
207- Result ClassDescription<T>::it(std::string name,
208- std::function<void (ItCD<T> &)> block) {
182+ Result ClassDescription<T>::it(std::string name, std::function<void (ItCD<T> &)> block) {
209183 ItCD<T> it (*this , this ->subject , name, block);
210184 Result result = it.run (this ->get_formatter ());
211185 exec_after_eaches ();
@@ -276,4 +250,3 @@ Result ItCD<T>::run(Formatters::BaseFormatter &printer) {
276250}
277251
278252} // namespace CppSpec
279- #endif // CPPSPEC_CLASS_DESCRIPTION_HPP
0 commit comments