\hypertarget{struct__Eina__Value__Struct__Operations}{\section{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations Struct Reference}
\label{struct__Eina__Value__Struct__Operations}\index{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations@{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}}
}


How to manage struct.  


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

\begin{DoxyCompactList}\small\item\em must be \hyperlink{group__Eina__Value__Struct__Group_ga616b4187aec4502fee885dda6ec5e245}{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+O\+P\+E\+R\+A\+T\+I\+O\+N\+S\+\_\+\+V\+E\+R\+S\+I\+O\+N} \end{DoxyCompactList}\item 
\hypertarget{struct__Eina__Value__Struct__Operations_a5db4b9222c3bd75f0d6a7ba17a2066c2}{void $\ast$($\ast$ \hyperlink{struct__Eina__Value__Struct__Operations_a5db4b9222c3bd75f0d6a7ba17a2066c2}{alloc} )(const \hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations} $\ast$ops, const \hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc} $\ast$desc)}\label{struct__Eina__Value__Struct__Operations_a5db4b9222c3bd75f0d6a7ba17a2066c2}

\begin{DoxyCompactList}\small\item\em How to allocate struct memory to be managed by the Eina\+\_\+\+Value. \end{DoxyCompactList}\item 
\hypertarget{struct__Eina__Value__Struct__Operations_a2082210ac95aa2c6879cebac99b13b49}{void($\ast$ \hyperlink{struct__Eina__Value__Struct__Operations_a2082210ac95aa2c6879cebac99b13b49}{free} )(const \hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations} $\ast$ops, const \hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc} $\ast$desc, void $\ast$memory)}\label{struct__Eina__Value__Struct__Operations_a2082210ac95aa2c6879cebac99b13b49}

\begin{DoxyCompactList}\small\item\em How to release memory managed by the Eina\+\_\+\+Value. \end{DoxyCompactList}\item 
void $\ast$($\ast$ \hyperlink{struct__Eina__Value__Struct__Operations_ae3e7427a49b9b8ae03c4e8ceafbe3106}{copy} )(const \hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations} $\ast$ops, const \hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc} $\ast$desc, const void $\ast$memory)
\begin{DoxyCompactList}\small\item\em How to copy struct memory from an existing Eina\+\_\+\+Value, if not provided \hyperlink{struct__Eina__Value__Struct__Operations_a5db4b9222c3bd75f0d6a7ba17a2066c2}{alloc()} will be used, then every member is copied using \hyperlink{group__Eina__Value__Type__Group_ga113ba54df56b4d7f6b5dad71ec5bb66b}{eina\+\_\+value\+\_\+type\+\_\+copy()} with member's type. \end{DoxyCompactList}\item 
\hypertarget{struct__Eina__Value__Struct__Operations_a15d6555f9dbba26b1a4ae52b2791d5d2}{int($\ast$ \hyperlink{struct__Eina__Value__Struct__Operations_a15d6555f9dbba26b1a4ae52b2791d5d2}{compare} )(const \hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations} $\ast$ops, const \hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc} $\ast$desc, const void $\ast$data1, const void $\ast$data2)}\label{struct__Eina__Value__Struct__Operations_a15d6555f9dbba26b1a4ae52b2791d5d2}

\begin{DoxyCompactList}\small\item\em How to compare two struct memories. \end{DoxyCompactList}\item 
const \hyperlink{group__Eina__Value__Struct__Group_gacb552beb97aae27635d91372d4a43fd2}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member} $\ast$($\ast$ \hyperlink{struct__Eina__Value__Struct__Operations_a936309db2587c508b04984bbefdaad15}{find\+\_\+member} )(const \hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations} $\ast$ops, const \hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc} $\ast$desc, const char $\ast$name)
\begin{DoxyCompactList}\small\item\em How to find description for member. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
How to manage struct. 

Any {\ttfamily N\+U\+L\+L} callback is ignored. \begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}


\subsection{Field Documentation}
\hypertarget{struct__Eina__Value__Struct__Operations_ae3e7427a49b9b8ae03c4e8ceafbe3106}{\index{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations@{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}!copy@{copy}}
\index{copy@{copy}!\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations@{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}}
\subsubsection[{copy}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$($\ast$ \+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations\+::copy)(const {\bf Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations} $\ast$ops, const {\bf Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc} $\ast$desc, const void $\ast$memory)}}\label{struct__Eina__Value__Struct__Operations_ae3e7427a49b9b8ae03c4e8ceafbe3106}


How to copy struct memory from an existing Eina\+\_\+\+Value, if not provided \hyperlink{struct__Eina__Value__Struct__Operations_a5db4b9222c3bd75f0d6a7ba17a2066c2}{alloc()} will be used, then every member is copied using \hyperlink{group__Eina__Value__Type__Group_ga113ba54df56b4d7f6b5dad71ec5bb66b}{eina\+\_\+value\+\_\+type\+\_\+copy()} with member's type. 

\hypertarget{struct__Eina__Value__Struct__Operations_a936309db2587c508b04984bbefdaad15}{\index{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations@{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}!find\+\_\+member@{find\+\_\+member}}
\index{find\+\_\+member@{find\+\_\+member}!\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations@{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}}
\subsubsection[{find\+\_\+member}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}$\ast$($\ast$ \+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations\+::find\+\_\+member)(const {\bf Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations} $\ast$ops, const {\bf Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc} $\ast$desc, const char $\ast$name)}}\label{struct__Eina__Value__Struct__Operations_a936309db2587c508b04984bbefdaad15}


How to find description for member. 

For huge structures consider using binary search, stringshared, hash or gperf. The default function does linear search using strcmp(). 