Skip to content

Commit 40f886c

Browse files
committed
Added == operator overload for WebRequestMethodComposite
1 parent 2a3c634 commit 40f886c

File tree

3 files changed

+38
-4
lines changed

3 files changed

+38
-4
lines changed

examples/HTTPMethodsWithArduino/HTTPMethodsWithArduino.ino

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@
2626
#include <WiFi.h>
2727
#endif
2828

29-
#define ASYNCWEBSERVER_NO_GLOBAL_HTTP_METHODS 1
30-
#undef HTTP_ANY
3129
#include <ESPAsyncWebServer.h>
3230

3331
static AsyncWebServer server(80);
@@ -80,7 +78,7 @@ void setup() {
8078

8179
// curl -v http://192.168.4.1/get-or-post
8280
// curl -v -X POST -d "a=b" http://192.168.4.1/get-or-post
83-
server.on("/get-or-post", WebRequestMethod::HTTP_GET | WebRequestMethod::HTTP_POST, [](AsyncWebServerRequest *request) {
81+
server.on("/get-or-post", AsyncWebRequestMethod::HTTP_GET | AsyncWebRequestMethod::HTTP_POST, [](AsyncWebServerRequest *request) {
8482
request->send(200, "text/plain", "Hello");
8583
});
8684

@@ -102,6 +100,22 @@ void setup() {
102100
server.addHandler(new MyRequestHandler());
103101

104102
server.begin();
103+
104+
WebRequestMethodComposite composite1 = WebRequestMethod::HTTP_GET | WebRequestMethod::HTTP_POST;
105+
WebRequestMethodComposite composite2 = WebRequestMethod::HTTP_GET | WebRequestMethod::HTTP_POST;
106+
WebRequestMethodComposite composite3 = WebRequestMethod::HTTP_HEAD | WebRequestMethod::HTTP_OPTIONS;
107+
WebRequestMethodComposite composite4 = composite3;
108+
WebRequestMethodComposite composite5 = WebRequestMethod::HTTP_GET;
109+
110+
assert(composite1.matches(WebRequestMethod::HTTP_GET));
111+
assert(composite1.matches(WebRequestMethod::HTTP_POST));
112+
assert(!composite1.matches(WebRequestMethod::HTTP_HEAD));
113+
assert(!composite3.matches(WebRequestMethod::HTTP_GET));
114+
115+
assert(composite1 == composite2);
116+
assert(composite3 == composite4);
117+
assert(composite1 != composite3);
118+
assert(composite5 == AsyncWebRequestMethod::HTTP_GET);
105119
}
106120

107121
// not needed

examples/HTTPMethodsWithESPIDF/HTTPMethodsWithESPIDF.ino

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ void setup() {
8686
request->send(200, "text/plain", "Hello");
8787
});
8888

89-
// will show a deprecation warning
9089
server.on("/any", AsyncWebRequestMethod::HTTP_ANY, [](AsyncWebServerRequest *request) {
9190
request->send(200, "text/plain", "Hello");
9291
});
@@ -104,6 +103,22 @@ void setup() {
104103
server.addHandler(new MyRequestHandler());
105104

106105
server.begin();
106+
107+
WebRequestMethodComposite composite1 = WebRequestMethod::HTTP_GET | WebRequestMethod::HTTP_POST;
108+
WebRequestMethodComposite composite2 = WebRequestMethod::HTTP_GET | WebRequestMethod::HTTP_POST;
109+
WebRequestMethodComposite composite3 = WebRequestMethod::HTTP_HEAD | WebRequestMethod::HTTP_OPTIONS;
110+
WebRequestMethodComposite composite4 = composite3;
111+
WebRequestMethodComposite composite5 = WebRequestMethod::HTTP_GET;
112+
113+
assert(composite1.matches(WebRequestMethod::HTTP_GET));
114+
assert(composite1.matches(WebRequestMethod::HTTP_POST));
115+
assert(!composite1.matches(WebRequestMethod::HTTP_HEAD));
116+
assert(!composite3.matches(WebRequestMethod::HTTP_GET));
117+
118+
assert(composite1 == composite2);
119+
assert(composite3 == composite4);
120+
assert(composite1 != composite3);
121+
assert(composite5 == AsyncWebRequestMethod::HTTP_GET);
107122
}
108123

109124
// not needed

src/ESPAsyncWebServer.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,11 @@ class WebRequestMethodComposite {
162162
return WebRequestMethodComposite(mask | r.mask);
163163
};
164164

165+
// == operator for composite
166+
constexpr inline bool operator==(WebRequestMethodComposite r) const {
167+
return mask == r.mask;
168+
};
169+
165170
// Check for a match
166171
constexpr inline bool matches(WebRequestMethod m) const {
167172
return mask & static_cast<uint32_t>(m);

0 commit comments

Comments
 (0)