| <?xml version='1.0' encoding='UTF-8' standalone='no'?> |
| <doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.8" xml:lang="en-US"> |
| <compounddef id="classiceberg_1_1StructLikeSet" kind="class" language="C++" prot="public"> |
| <compoundname>iceberg::StructLikeSet</compoundname> |
| <includes refid="struct__like__set_8h" local="no">struct_like_set.h</includes> |
| <innerclass refid="structiceberg_1_1StructLikeSet_1_1KeyEqual" prot="private">iceberg::StructLikeSet::KeyEqual</innerclass> |
| <innerclass refid="structiceberg_1_1StructLikeSet_1_1KeyHash" prot="private">iceberg::StructLikeSet::KeyHash</innerclass> |
| <templateparamlist> |
| <param> |
| <type>bool</type> |
| <declname>kValidate</declname> |
| <defname>kValidate</defname> |
| <defval>true</defval> |
| </param> |
| </templateparamlist> |
| <sectiondef kind="public-static-attrib"> |
| <memberdef kind="variable" id="classiceberg_1_1StructLikeSet_1a5791434fb3ca58dd1970126816f50aca" prot="public" static="yes" constexpr="yes" mutable="no"> |
| <type>constexpr size_t</type> |
| <definition>constexpr size_t iceberg::StructLikeSet< kValidate >::kDefaultArenaInitialSize</definition> |
| <argsstring></argsstring> |
| <name>kDefaultArenaInitialSize</name> |
| <qualifiedname>iceberg::StructLikeSet::kDefaultArenaInitialSize</qualifiedname> |
| <initializer>= 64 * 1024</initializer> |
| <briefdescription> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/util/struct_like_set.h" line="50" column="27" bodyfile="iceberg/util/struct_like_set.h" bodystart="50" bodyend="-1"/> |
| </memberdef> |
| </sectiondef> |
| <sectiondef kind="private-attrib"> |
| <memberdef kind="variable" id="classiceberg_1_1StructLikeSet_1ac4243116bbe9a55df29c68c056230108" prot="private" static="no" mutable="no"> |
| <type>std::vector< std::shared_ptr< <ref refid="classiceberg_1_1Type" kindref="compound">Type</ref> > ></type> |
| <definition>std::vector<std::shared_ptr<Type> > iceberg::StructLikeSet< kValidate >::field_types_</definition> |
| <argsstring></argsstring> |
| <name>field_types_</name> |
| <qualifiedname>iceberg::StructLikeSet::field_types_</qualifiedname> |
| <briefdescription> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/util/struct_like_set.h" line="99" column="15" bodyfile="iceberg/util/struct_like_set.h" bodystart="99" bodyend="-1"/> |
| </memberdef> |
| <memberdef kind="variable" id="classiceberg_1_1StructLikeSet_1ae2a3c14f6211c6839440fbbc7a179982" prot="private" static="no" mutable="yes"> |
| <type>std::pmr::monotonic_buffer_resource</type> |
| <definition>std::pmr::monotonic_buffer_resource iceberg::StructLikeSet< kValidate >::arena_</definition> |
| <argsstring></argsstring> |
| <name>arena_</name> |
| <qualifiedname>iceberg::StructLikeSet::arena_</qualifiedname> |
| <briefdescription> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/util/struct_like_set.h" line="100" column="47" bodyfile="iceberg/util/struct_like_set.h" bodystart="100" bodyend="-1"/> |
| </memberdef> |
| <memberdef kind="variable" id="classiceberg_1_1StructLikeSet_1a102c5db177f4203ae8d32e4af7e9cc9f" prot="private" static="no" mutable="no"> |
| <type>std::unordered_set< std::unique_ptr< <ref refid="classiceberg_1_1StructLike" kindref="compound">StructLike</ref> >, KeyHash, KeyEqual ></type> |
| <definition>std::unordered_set<std::unique_ptr<StructLike>, KeyHash, KeyEqual> iceberg::StructLikeSet< kValidate >::set_</definition> |
| <argsstring></argsstring> |
| <name>set_</name> |
| <qualifiedname>iceberg::StructLikeSet::set_</qualifiedname> |
| <briefdescription> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/util/struct_like_set.h" line="101" column="22" bodyfile="iceberg/util/struct_like_set.h" bodystart="101" bodyend="-1"/> |
| </memberdef> |
| </sectiondef> |
| <sectiondef kind="public-func"> |
| <memberdef kind="function" id="classiceberg_1_1StructLikeSet_1a25fd83fa34daa37995af23e1fe2371d4" prot="public" static="no" const="no" explicit="yes" inline="no" virt="non-virtual"> |
| <type></type> |
| <definition>iceberg::StructLikeSet< kValidate >::StructLikeSet</definition> |
| <argsstring>(const StructType &type, size_t arena_initial_size=kDefaultArenaInitialSize)</argsstring> |
| <name>StructLikeSet</name> |
| <qualifiedname>iceberg::StructLikeSet::StructLikeSet</qualifiedname> |
| <param> |
| <type>const <ref refid="classiceberg_1_1StructType" kindref="compound">StructType</ref> &</type> |
| <declname>type</declname> |
| </param> |
| <param> |
| <type>size_t</type> |
| <declname>arena_initial_size</declname> |
| <defval>kDefaultArenaInitialSize</defval> |
| </param> |
| <briefdescription> |
| <para>Create a <ref refid="classiceberg_1_1StructLikeSet" kindref="compound">StructLikeSet</ref> for the given struct type. </para> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/util/struct_like_set.h" line="53" column="12" bodyfile="iceberg/util/struct_like_set.cc" bodystart="470" bodyend="476"/> |
| </memberdef> |
| <memberdef kind="function" id="classiceberg_1_1StructLikeSet_1adc8e5ff8c0b281fc7b683ea3d4d2ddb7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> |
| <type></type> |
| <definition>iceberg::StructLikeSet< kValidate >::~StructLikeSet</definition> |
| <argsstring>()</argsstring> |
| <name>~StructLikeSet</name> |
| <qualifiedname>iceberg::StructLikeSet::~StructLikeSet</qualifiedname> |
| <briefdescription> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/util/struct_like_set.h" line="56" column="3"/> |
| </memberdef> |
| <memberdef kind="function" id="classiceberg_1_1StructLikeSet_1ab598fa01135056ebeb15a5be047fcb87" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> |
| <type>Status</type> |
| <definition>Status iceberg::StructLikeSet< kValidate >::Insert</definition> |
| <argsstring>(const StructLike &row)</argsstring> |
| <name>Insert</name> |
| <qualifiedname>iceberg::StructLikeSet::Insert</qualifiedname> |
| <param> |
| <type>const <ref refid="classiceberg_1_1StructLike" kindref="compound">StructLike</ref> &</type> |
| <declname>row</declname> |
| </param> |
| <briefdescription> |
| <para>Insert a row into the set. </para> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/util/struct_like_set.h" line="59" column="10" bodyfile="iceberg/util/struct_like_set.cc" bodystart="557" bodyend="567"/> |
| </memberdef> |
| <memberdef kind="function" id="classiceberg_1_1StructLikeSet_1aaef2732619e52c37d30fba696237240d" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual"> |
| <type>Result< bool ></type> |
| <definition>Result< bool > iceberg::StructLikeSet< kValidate >::Contains</definition> |
| <argsstring>(const StructLike &row) const</argsstring> |
| <name>Contains</name> |
| <qualifiedname>iceberg::StructLikeSet::Contains</qualifiedname> |
| <param> |
| <type>const <ref refid="classiceberg_1_1StructLike" kindref="compound">StructLike</ref> &</type> |
| <declname>row</declname> |
| </param> |
| <briefdescription> |
| <para>Check if the set contains a row. </para> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/util/struct_like_set.h" line="62" column="10" bodyfile="iceberg/util/struct_like_set.cc" bodystart="570" bodyend="575"/> |
| </memberdef> |
| <memberdef kind="function" id="classiceberg_1_1StructLikeSet_1a7622bd7edb38dce767596e0bb2b31d91" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual"> |
| <type>bool</type> |
| <definition>bool iceberg::StructLikeSet< kValidate >::IsEmpty</definition> |
| <argsstring>() const</argsstring> |
| <name>IsEmpty</name> |
| <qualifiedname>iceberg::StructLikeSet::IsEmpty</qualifiedname> |
| <briefdescription> |
| <para>Check if the set is empty. </para> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/util/struct_like_set.h" line="65" column="8" bodyfile="iceberg/util/struct_like_set.cc" bodystart="578" bodyend="580"/> |
| </memberdef> |
| <memberdef kind="function" id="classiceberg_1_1StructLikeSet_1a660d7b87a08023c1520b8aefa5dc0ed7" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual"> |
| <type>size_t</type> |
| <definition>size_t iceberg::StructLikeSet< kValidate >::Size</definition> |
| <argsstring>() const</argsstring> |
| <name>Size</name> |
| <qualifiedname>iceberg::StructLikeSet::Size</qualifiedname> |
| <briefdescription> |
| <para>Get the number of elements in the set. </para> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/util/struct_like_set.h" line="68" column="10" bodyfile="iceberg/util/struct_like_set.cc" bodystart="583" bodyend="585"/> |
| </memberdef> |
| </sectiondef> |
| <sectiondef kind="private-func"> |
| <memberdef kind="function" id="classiceberg_1_1StructLikeSet_1a527a421570a985c7703b37dd80739b11" prot="private" static="no" const="yes" explicit="no" inline="no" virt="non-virtual"> |
| <type>Result< std::unique_ptr< <ref refid="classiceberg_1_1StructLike" kindref="compound">StructLike</ref> > ></type> |
| <definition>Result< std::unique_ptr< StructLike > > iceberg::StructLikeSet< kValidate >::MakeArenaRow</definition> |
| <argsstring>(const StructLike &row) const</argsstring> |
| <name>MakeArenaRow</name> |
| <qualifiedname>iceberg::StructLikeSet::MakeArenaRow</qualifiedname> |
| <param> |
| <type>const <ref refid="classiceberg_1_1StructLike" kindref="compound">StructLike</ref> &</type> |
| <declname>row</declname> |
| </param> |
| <briefdescription> |
| <para>Create an arena-owned deep copy of a <ref refid="classiceberg_1_1StructLike" kindref="compound">StructLike</ref> row. </para> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/util/struct_like_set.h" line="90" column="10" bodyfile="iceberg/util/struct_like_set.cc" bodystart="545" bodyend="554"/> |
| </memberdef> |
| <memberdef kind="function" id="classiceberg_1_1StructLikeSet_1a3fc9c80d946d349b1b2a492b53e1ac71" prot="private" static="no" const="yes" explicit="no" inline="no" virt="non-virtual"> |
| <type>Result< <ref refid="struct__like_8h_1a3b5162f202989971e28bc310237964db" kindref="member">Scalar</ref> ></type> |
| <definition>Result< Scalar > iceberg::StructLikeSet< kValidate >::DeepCopyScalar</definition> |
| <argsstring>(const Scalar &scalar) const</argsstring> |
| <name>DeepCopyScalar</name> |
| <qualifiedname>iceberg::StructLikeSet::DeepCopyScalar</qualifiedname> |
| <param> |
| <type>const <ref refid="struct__like_8h_1a3b5162f202989971e28bc310237964db" kindref="member">Scalar</ref> &</type> |
| <declname>scalar</declname> |
| </param> |
| <briefdescription> |
| <para>Deep copy a scalar value, copying strings into arena and recursively materializing nested types. </para> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/util/struct_like_set.h" line="94" column="10" bodyfile="iceberg/util/struct_like_set.cc" bodystart="492" bodyend="542"/> |
| </memberdef> |
| <memberdef kind="function" id="classiceberg_1_1StructLikeSet_1aef28e35adb6004a480d007daf918b742" prot="private" static="no" const="yes" explicit="no" inline="no" virt="non-virtual"> |
| <type>std::string_view</type> |
| <definition>std::string_view iceberg::StructLikeSet< kValidate >::CopyToArena</definition> |
| <argsstring>(std::string_view src) const</argsstring> |
| <name>CopyToArena</name> |
| <qualifiedname>iceberg::StructLikeSet::CopyToArena</qualifiedname> |
| <param> |
| <type>std::string_view</type> |
| <declname>src</declname> |
| </param> |
| <briefdescription> |
| <para>Copy string data into the arena and return a view into it. </para> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/util/struct_like_set.h" line="97" column="20" bodyfile="iceberg/util/struct_like_set.cc" bodystart="482" bodyend="489"/> |
| </memberdef> |
| </sectiondef> |
| <briefdescription> |
| <para>A set of <ref refid="classiceberg_1_1StructLike" kindref="compound">StructLike</ref> rows with type-aware hashing and equality. </para> |
| </briefdescription> |
| <detaileddescription> |
| <para>As <ref refid="classiceberg_1_1StructLike" kindref="compound">StructLike</ref> uses view semantics, this set makes deep copies of inserted rows into an internal arena to ensure ownership and lifetime safety. Lookups are transparent and do not require temporary allocation.</para> |
| <para><parameterlist kind="templateparam"><parameteritem> |
| <parameternamelist> |
| <parametername>kValidate</parametername> |
| </parameternamelist> |
| <parameterdescription> |
| <para>When true (default), Insert and Contains validate that each row's scalar types match the schema passed to the constructor. Set to false only when the caller guarantees schema conformance and the validation overhead must be avoided. </para> |
| </parameterdescription> |
| </parameteritem> |
| </parameterlist> |
| </para> |
| </detaileddescription> |
| <location file="iceberg/util/struct_like_set.h" line="48" column="1" bodyfile="iceberg/util/struct_like_set.h" bodystart="48" bodyend="102"/> |
| <listofallmembers> |
| <member refid="classiceberg_1_1StructLikeSet_1ae2a3c14f6211c6839440fbbc7a179982" prot="private" virt="non-virtual"><scope>iceberg::StructLikeSet</scope><name>arena_</name></member> |
| <member refid="classiceberg_1_1StructLikeSet_1aaef2732619e52c37d30fba696237240d" prot="public" virt="non-virtual"><scope>iceberg::StructLikeSet</scope><name>Contains</name></member> |
| <member refid="classiceberg_1_1StructLikeSet_1aef28e35adb6004a480d007daf918b742" prot="private" virt="non-virtual"><scope>iceberg::StructLikeSet</scope><name>CopyToArena</name></member> |
| <member refid="classiceberg_1_1StructLikeSet_1a3fc9c80d946d349b1b2a492b53e1ac71" prot="private" virt="non-virtual"><scope>iceberg::StructLikeSet</scope><name>DeepCopyScalar</name></member> |
| <member refid="classiceberg_1_1StructLikeSet_1ac4243116bbe9a55df29c68c056230108" prot="private" virt="non-virtual"><scope>iceberg::StructLikeSet</scope><name>field_types_</name></member> |
| <member refid="classiceberg_1_1StructLikeSet_1ab598fa01135056ebeb15a5be047fcb87" prot="public" virt="non-virtual"><scope>iceberg::StructLikeSet</scope><name>Insert</name></member> |
| <member refid="classiceberg_1_1StructLikeSet_1a7622bd7edb38dce767596e0bb2b31d91" prot="public" virt="non-virtual"><scope>iceberg::StructLikeSet</scope><name>IsEmpty</name></member> |
| <member refid="classiceberg_1_1StructLikeSet_1a5791434fb3ca58dd1970126816f50aca" prot="public" virt="non-virtual"><scope>iceberg::StructLikeSet</scope><name>kDefaultArenaInitialSize</name></member> |
| <member refid="classiceberg_1_1StructLikeSet_1a527a421570a985c7703b37dd80739b11" prot="private" virt="non-virtual"><scope>iceberg::StructLikeSet</scope><name>MakeArenaRow</name></member> |
| <member refid="classiceberg_1_1StructLikeSet_1a102c5db177f4203ae8d32e4af7e9cc9f" prot="private" virt="non-virtual"><scope>iceberg::StructLikeSet</scope><name>set_</name></member> |
| <member refid="classiceberg_1_1StructLikeSet_1a660d7b87a08023c1520b8aefa5dc0ed7" prot="public" virt="non-virtual"><scope>iceberg::StructLikeSet</scope><name>Size</name></member> |
| <member refid="classiceberg_1_1StructLikeSet_1a25fd83fa34daa37995af23e1fe2371d4" prot="public" virt="non-virtual"><scope>iceberg::StructLikeSet</scope><name>StructLikeSet</name></member> |
| <member refid="classiceberg_1_1StructLikeSet_1adc8e5ff8c0b281fc7b683ea3d4d2ddb7" prot="public" virt="non-virtual"><scope>iceberg::StructLikeSet</scope><name>~StructLikeSet</name></member> |
| </listofallmembers> |
| </compounddef> |
| </doxygen> |