summaryrefslogtreecommitdiff
path: root/absl/strings/internal/cord_rep_flat.h
diff options
context:
space:
mode:
Diffstat (limited to 'absl/strings/internal/cord_rep_flat.h')
-rw-r--r--absl/strings/internal/cord_rep_flat.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/absl/strings/internal/cord_rep_flat.h b/absl/strings/internal/cord_rep_flat.h
index 5f7d55ce..55418153 100644
--- a/absl/strings/internal/cord_rep_flat.h
+++ b/absl/strings/internal/cord_rep_flat.h
@@ -127,6 +127,17 @@ struct CordRepFlat : public CordRep {
size_t AllocatedSize() const { return TagToAllocatedSize(tag); }
};
+// Now that CordRepFlat is defined, we can define CordRep's helper casts:
+inline CordRepFlat* CordRep::flat() {
+ assert(tag >= FLAT && tag <= MAX_FLAT_TAG);
+ return reinterpret_cast<CordRepFlat*>(this);
+}
+
+inline const CordRepFlat* CordRep::flat() const {
+ assert(tag >= FLAT && tag <= MAX_FLAT_TAG);
+ return reinterpret_cast<const CordRepFlat*>(this);
+}
+
} // namespace cord_internal
ABSL_NAMESPACE_END
} // namespace absl