summaryrefslogtreecommitdiff
path: root/absl/strings/internal/cord_rep_ring.h
diff options
context:
space:
mode:
Diffstat (limited to 'absl/strings/internal/cord_rep_ring.h')
-rw-r--r--absl/strings/internal/cord_rep_ring.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/absl/strings/internal/cord_rep_ring.h b/absl/strings/internal/cord_rep_ring.h
index e6f6b59c..55cba8b4 100644
--- a/absl/strings/internal/cord_rep_ring.h
+++ b/absl/strings/internal/cord_rep_ring.h
@@ -563,6 +563,17 @@ inline CordRepRing::Position CordRepRing::FindTail(index_type head,
return (offset == length) ? Position{tail_, 0} : FindTailSlow(head, offset);
}
+// Now that CordRepRing is defined, we can define CordRep's helper casts:
+inline CordRepRing* CordRep::ring() {
+ assert(tag == RING);
+ return static_cast<CordRepRing*>(this);
+}
+
+inline const CordRepRing* CordRep::ring() const {
+ assert(tag == RING);
+ return static_cast<const CordRepRing*>(this);
+}
+
std::ostream& operator<<(std::ostream& s, const CordRepRing& rep);
#ifdef __clang__