\hypertarget{struct__Eina__Value__Struct__Operations}{}\doxysection{\+\_\+\+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.  




{\ttfamily \#include $<$eina\+\_\+value.\+h$>$}

\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{struct__Eina__Value__Struct__Operations_aefe27af00e13cd2e436b13df219c17a1}\label{struct__Eina__Value__Struct__Operations_aefe27af00e13cd2e436b13df219c17a1}} 
unsigned int {\bfseries version}
\begin{DoxyCompactList}\small\item\em must be \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga616b4187aec4502fee885dda6ec5e245}{EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+OPERATIONS\+\_\+\+VERSION}} \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Eina__Value__Struct__Operations_ac5149a7231637cf4782815f42c865211}\label{struct__Eina__Value__Struct__Operations_ac5149a7231637cf4782815f42c865211}} 
void $\ast$($\ast$ {\bfseries alloc} )(const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}} $\ast$ops, const \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}} $\ast$desc)
\begin{DoxyCompactList}\small\item\em How to allocate struct memory to be managed by the Eina\+\_\+\+Value. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Eina__Value__Struct__Operations_ab20ab945cf83ecda4f6c4ea2a75bf8d2}\label{struct__Eina__Value__Struct__Operations_ab20ab945cf83ecda4f6c4ea2a75bf8d2}} 
void($\ast$ {\bfseries free} )(const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}} $\ast$ops, const \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}} $\ast$desc, void $\ast$memory)
\begin{DoxyCompactList}\small\item\em How to release memory managed by the Eina\+\_\+\+Value. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Eina__Value__Struct__Operations_ae4664c4e6ccd296115a7b90163d892eb}\label{struct__Eina__Value__Struct__Operations_ae4664c4e6ccd296115a7b90163d892eb}} 
void $\ast$($\ast$ {\bfseries copy} )(const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}} $\ast$ops, const \mbox{\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 \mbox{\hyperlink{struct__Eina__Value__Struct__Operations_ac5149a7231637cf4782815f42c865211}{alloc()}} will be used, then every member is copied using eina\+\_\+value\+\_\+type\+\_\+copy() with member\textquotesingle{}s type. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{struct__Eina__Value__Struct__Operations_a66ed88f3616d156b7561a95a50fff62f}\label{struct__Eina__Value__Struct__Operations_a66ed88f3616d156b7561a95a50fff62f}} 
int($\ast$ {\bfseries compare} )(const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}} $\ast$ops, const \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}} $\ast$desc, const void $\ast$data1, const void $\ast$data2)
\begin{DoxyCompactList}\small\item\em How to compare two struct memories. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gacb552beb97aae27635d91372d4a43fd2}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}} $\ast$($\ast$ \mbox{\hyperlink{struct__Eina__Value__Struct__Operations_adfe0bbcbd37103779d64818c88e23d59}{find\+\_\+member}} )(const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}} $\ast$ops, const \mbox{\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}


\doxysubsection{Detailed Description}
How to manage struct. 

Any {\ttfamily NULL} callback is ignored.

\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}


\doxysubsection{Field Documentation}
\mbox{\Hypertarget{struct__Eina__Value__Struct__Operations_adfe0bbcbd37103779d64818c88e23d59}\label{struct__Eina__Value__Struct__Operations_adfe0bbcbd37103779d64818c88e23d59}} 
\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}}
\doxysubsubsection{\texorpdfstring{find\_member}{find\_member}}
{\footnotesize\ttfamily const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gacb552beb97aae27635d91372d4a43fd2}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}} $\ast$($\ast$ \+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations\+::find\+\_\+member) (const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}} $\ast$ops, const \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}} $\ast$desc, const char $\ast$name)}



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(). 