\hypertarget{struct__Eina__Value__Struct__Desc}{\section{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc Struct Reference}
\label{struct__Eina__Value__Struct__Desc}\index{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc@{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}}
}


Describes the struct by listing its size, members and operations.  


\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
\hypertarget{struct__Eina__Value__Struct__Desc_a173b6014bf58d5f1dbbbe29db04396f0}{unsigned int \hyperlink{struct__Eina__Value__Struct__Desc_a173b6014bf58d5f1dbbbe29db04396f0}{version}}\label{struct__Eina__Value__Struct__Desc_a173b6014bf58d5f1dbbbe29db04396f0}

\begin{DoxyCompactList}\small\item\em must be \hyperlink{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+D\+E\+S\+C\+\_\+\+V\+E\+R\+S\+I\+O\+N} \end{DoxyCompactList}\item 
const \\*
\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations} $\ast$ \hyperlink{struct__Eina__Value__Struct__Desc_a6c18f97c686c08a9765c5ab1d6842192}{ops}
\begin{DoxyCompactList}\small\item\em operations, if {\ttfamily N\+U\+L\+L} defaults will be used. \end{DoxyCompactList}\item 
const \hyperlink{group__Eina__Value__Struct__Group_gacb552beb97aae27635d91372d4a43fd2}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member} $\ast$ \hyperlink{struct__Eina__Value__Struct__Desc_a733e47f7719ed200b42cadce524873d5}{members}
\begin{DoxyCompactList}\small\item\em array of member descriptions, if {\ttfamily member\+\_\+count} is zero, then it must be {\ttfamily N\+U\+L\+L} terminated. \end{DoxyCompactList}\item 
unsigned int \hyperlink{struct__Eina__Value__Struct__Desc_a59cb417f60dafa7bae36ba5706769149}{member\+\_\+count}
\begin{DoxyCompactList}\small\item\em if $>$ 0, specifies number of members. \end{DoxyCompactList}\item 
\hypertarget{struct__Eina__Value__Struct__Desc_a76afd6890747f7d2da944878060efec0}{unsigned int \hyperlink{struct__Eina__Value__Struct__Desc_a76afd6890747f7d2da944878060efec0}{size}}\label{struct__Eina__Value__Struct__Desc_a76afd6890747f7d2da944878060efec0}

\begin{DoxyCompactList}\small\item\em byte size to allocate, may be bigger than sum of members \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Describes the struct by listing its size, members and operations. 

This is the root of Eina\+\_\+\+Value knowledge about the memory it's handling as a structure. It adds introspection, saying the byte size of the structure, its members and how to manage such members.

\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\begin{Desc}
\item[Examples\+: ]\par
\hyperlink{complex-types-client-eina-value_8c-example}{complex-\/types-\/client-\/eina-\/value.\+c}, and \hyperlink{eina_value_02_8c-example}{eina\+\_\+value\+\_\+02.\+c}.\end{Desc}


\subsection{Field Documentation}
\hypertarget{struct__Eina__Value__Struct__Desc_a6c18f97c686c08a9765c5ab1d6842192}{\index{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc@{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}!ops@{ops}}
\index{ops@{ops}!\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc@{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}}
\subsubsection[{ops}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}$\ast$ \+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc\+::ops}}\label{struct__Eina__Value__Struct__Desc_a6c18f97c686c08a9765c5ab1d6842192}


operations, if {\ttfamily N\+U\+L\+L} defaults will be used. 

You may use operations to optimize member lookup using binary search or gperf hash. \hypertarget{struct__Eina__Value__Struct__Desc_a733e47f7719ed200b42cadce524873d5}{\index{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc@{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}!members@{members}}
\index{members@{members}!\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc@{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}}
\subsubsection[{members}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}$\ast$ \+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc\+::members}}\label{struct__Eina__Value__Struct__Desc_a733e47f7719ed200b42cadce524873d5}


array of member descriptions, if {\ttfamily member\+\_\+count} is zero, then it must be {\ttfamily N\+U\+L\+L} terminated. 

\hypertarget{struct__Eina__Value__Struct__Desc_a59cb417f60dafa7bae36ba5706769149}{\index{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc@{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}!member\+\_\+count@{member\+\_\+count}}
\index{member\+\_\+count@{member\+\_\+count}!\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc@{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}}
\subsubsection[{member\+\_\+count}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int \+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc\+::member\+\_\+count}}\label{struct__Eina__Value__Struct__Desc_a59cb417f60dafa7bae36ba5706769149}


if $>$ 0, specifies number of members. 

If zero then {\ttfamily members} must be N\+U\+L\+L terminated. 