summaryrefslogtreecommitdiff
path: root/traveler/AsciiTraveler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'traveler/AsciiTraveler.cc')
-rw-r--r--traveler/AsciiTraveler.cc17
1 files changed, 10 insertions, 7 deletions
diff --git a/traveler/AsciiTraveler.cc b/traveler/AsciiTraveler.cc
index b20e53b..a44313b 100644
--- a/traveler/AsciiTraveler.cc
+++ b/traveler/AsciiTraveler.cc
@@ -1,4 +1,5 @@
#include "AsciiTraveler.hh"
+#include "Color.hh"
namespace pcc {
const std::string AsciiTraveler::MiddleLevelPrefix_ = "|-";
@@ -10,28 +11,30 @@ const size_t AsciiTraveler::LevelWidth_ =
AsciiTraveler::AsciiTraveler(std::ostream& out)
: Traveler(out)
- , prefix_("") {
+ , prefix_("")
+ , random_(13)
+ , dist_(0, 1) {
IsLastChild_.push(true);
}
+void AsciiTraveler::PostTravel() { out_ << Color::DEFAULT; }
+
Traveler& AsciiTraveler::operator<<(TravelPart part) {
switch (part) {
case TravelPart::PREFIX:
- out_ << prefix_
+ out_ << Color::BLUE << prefix_
<< (IsLastChild_.top() ? LastLevelPrefix_ : MiddleLevelPrefix_);
break;
case TravelPart::NAME_BEGIN:
- out_ << '<';
+ out_ << (dist_(random_) == 1 ? Color::MAGENTA : Color::GREEN);
break;
case TravelPart::NAME_END:
- out_ << '>';
- break;
break;
case TravelPart::DESCRPTION_BEGIN:
- out_ << '<';
+ out_ << (dist_(random_) == 1 ? Color::CYAN : Color::YELLOW) << " ";
break;
case TravelPart::DESCRPTION_END:
- out_ << ">\n";
+ out_ << "\n";
break;
case TravelPart::CHILD_BEGIN:
prefix_.append(IsLastChild_.top() ? LastChildPrefix_