+lst::static_length_blob_type::static_length_blob_type(
+ unsigned int in_alignment, uint64_t in_length_bytes, roles in_roles) :
+ type(in_alignment), length_bytes{in_length_bytes}, roles_{std::move(in_roles)}
+{
+}
+
+bool lst::static_length_blob_type::_is_equal(const type& base_other) const noexcept
+{
+ const auto& other = static_cast<decltype(*this)&>(base_other);
+
+ return length_bytes == other.length_bytes && roles_ == other.roles_;
+}
+
+lst::type::cuptr lst::static_length_blob_type::copy() const
+{
+ return lttng::make_unique<static_length_blob_type>(alignment, length_bytes, roles_);
+}
+
+void lst::static_length_blob_type::accept(type_visitor& visitor) const
+{
+ visitor.visit(*this);
+}
+
+lst::dynamic_length_blob_type::dynamic_length_blob_type(
+ unsigned int in_alignment, lst::field_location in_length_field_location) :
+ type(in_alignment), length_field_location{std::move(in_length_field_location)}
+{
+}
+
+bool lst::dynamic_length_blob_type::_is_equal(const type& base_other) const noexcept
+{
+ const auto& other = dynamic_cast<decltype(*this)&>(base_other);
+
+ return length_field_location == other.length_field_location;
+}
+
+lst::type::cuptr lst::dynamic_length_blob_type::copy() const
+{
+ return lttng::make_unique<dynamic_length_blob_type>(alignment, length_field_location);
+}
+
+void lst::dynamic_length_blob_type::accept(type_visitor& visitor) const
+{
+ visitor.visit(*this);
+}
+