Skip to content

Commit d90589f

Browse files
feat(logging): add ostream operator for CardReaderEvent::Type enum
1 parent 10b14b0 commit d90589f

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

include/keypop/reader/CardReaderEvent.hpp

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#pragma once
1212

1313
#include <memory>
14+
#include <ostream>
1415
#include <string>
1516

1617
#include "keypop/reader/selection/ScheduledCardSelectionsResponse.hpp"
@@ -100,5 +101,35 @@ class CardReaderEvent {
100101
getScheduledCardSelectionsResponse() const = 0;
101102
};
102103

104+
/**
105+
* Operator << for CardReaderEvent::Type enum to enable readable logging.
106+
*
107+
* @param os The output stream.
108+
* @param type The event type.
109+
* @return The output stream.
110+
*/
111+
inline std::ostream&
112+
operator<<(std::ostream& os, const CardReaderEvent::Type type)
113+
{
114+
switch (type) {
115+
case CardReaderEvent::Type::CARD_INSERTED:
116+
os << "CARD_INSERTED";
117+
break;
118+
case CardReaderEvent::Type::CARD_MATCHED:
119+
os << "CARD_MATCHED";
120+
break;
121+
case CardReaderEvent::Type::CARD_REMOVED:
122+
os << "CARD_REMOVED";
123+
break;
124+
case CardReaderEvent::Type::UNAVAILABLE:
125+
os << "UNAVAILABLE";
126+
break;
127+
default:
128+
os << "UNKNOWN_TYPE(" << static_cast<int>(type) << ")";
129+
break;
130+
}
131+
return os;
132+
}
133+
103134
} /* namespace reader */
104135
} /* namespace keypop */

0 commit comments

Comments
 (0)