\hypertarget{group__Eina__Value__Struct__Group}{}\section{Generic Value Struct management}
\label{group__Eina__Value__Struct__Group}\index{Generic Value Struct management@{Generic Value Struct management}}
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct__Eina__Value__Struct__Operations}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}}
\begin{DoxyCompactList}\small\item\em How to manage struct. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Eina__Value__Struct__Member}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}}
\begin{DoxyCompactList}\small\item\em Describes a single member of struct. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}}
\begin{DoxyCompactList}\small\item\em Describes the struct by listing its size, members and operations. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Eina__Value__Struct}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct}}
\begin{DoxyCompactList}\small\item\em Used to store the memory and its description. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga616b4187aec4502fee885dda6ec5e245}\label{group__Eina__Value__Struct__Group_ga616b4187aec4502fee885dda6ec5e245}} 
\#define \mbox{\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\+ON}}~(1)
\begin{DoxyCompactList}\small\item\em Current A\+PI version, used to validate \mbox{\hyperlink{struct__Eina__Value__Struct__Operations}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}\label{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}} 
\#define \mbox{\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\+ON}}~(1)
\begin{DoxyCompactList}\small\item\em Current A\+PI version, used to validate \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}}. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga139206ef35b0b76e87eef56a202c0ae9}{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+ER}}(eina\+\_\+value\+\_\+type,  type,  member)~\{\#member, eina\+\_\+value\+\_\+type, offsetof(type, member)\}
\begin{DoxyCompactList}\small\item\em Helper to define Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member fields, uses offsetof() with type and member. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga4bbb8cfe756fb89281b1348e44a785dc}{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+E\+R\+\_\+\+S\+E\+N\+T\+I\+N\+EL}}~\{N\+U\+LL, N\+U\+LL, 0\}
\begin{DoxyCompactList}\small\item\em Helper to define Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member fields for sentinel (last item), useful if you did not define {\ttfamily member\+\_\+count}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \mbox{\hyperlink{struct__Eina__Value__Struct__Operations}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}} \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}}
\begin{DoxyCompactList}\small\item\em How to manage struct. \end{DoxyCompactList}\item 
typedef struct \mbox{\hyperlink{struct__Eina__Value__Struct__Member}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}} \mbox{\hyperlink{group__Eina__Value__Struct__Group_gacb552beb97aae27635d91372d4a43fd2}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}}
\begin{DoxyCompactList}\small\item\em Describes a single member of struct. \end{DoxyCompactList}\item 
typedef struct \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}} \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}}
\begin{DoxyCompactList}\small\item\em Describes the struct by listing its size, members and operations. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$ \mbox{\hyperlink{group__Eina__Value__Struct__Group_gaf469abb97ac59b73e8b2c726a58a78f8}{eina\+\_\+value\+\_\+struct\+\_\+new}} (const \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}} $\ast$desc)
\begin{DoxyCompactList}\small\item\em Creates generic value storage of type struct. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga54ce9b27584946fba6dc1a52a1526572}{eina\+\_\+value\+\_\+struct\+\_\+setup}} (\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$value, const \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}} $\ast$desc)
\begin{DoxyCompactList}\small\item\em Initializes generic value storage of type struct. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\+\_\+value\+\_\+struct\+\_\+set}} (\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$value, const char $\ast$name,...)
\begin{DoxyCompactList}\small\item\em Sets the generic value in an struct member. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\+\_\+value\+\_\+struct\+\_\+get}} (const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$value, const char $\ast$name,...)
\begin{DoxyCompactList}\small\item\em Gets the generic value from an struct member. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga7d85c87b7ed61034c6bcd7237259df22}{eina\+\_\+value\+\_\+struct\+\_\+vset}} (\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$value, const char $\ast$name, va\+\_\+list args)
\begin{DoxyCompactList}\small\item\em Sets the generic value in an struct member. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga8d7d1e07a9d5e82090c90a23f4a1caf7}{eina\+\_\+value\+\_\+struct\+\_\+vget}} (const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$value, const char $\ast$name, va\+\_\+list args)
\begin{DoxyCompactList}\small\item\em Gets the generic value from an struct member. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\+\_\+value\+\_\+struct\+\_\+pset}} (\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$value, const char $\ast$name, const void $\ast$ptr)
\begin{DoxyCompactList}\small\item\em Sets the generic value in an struct member from pointer. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}{eina\+\_\+value\+\_\+struct\+\_\+pget}} (const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$value, const char $\ast$name, void $\ast$ptr)
\begin{DoxyCompactList}\small\item\em Gets the generic value to pointer from an struct member. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadbe2da54625edad4a63dbce2cbbdf6ec}{eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+get}} (const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$src, const char $\ast$name, \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$dst)
\begin{DoxyCompactList}\small\item\em Gets the member as Eina\+\_\+\+Value copy. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Value__Struct__Group_gac22dc4bbaef8213a2ee79e2f03e9528b}{eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+set}} (\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$dst, const char $\ast$name, const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$src)
\begin{DoxyCompactList}\small\item\em Sets the member from Eina\+\_\+\+Value source. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga4a40469bdecbf2fac25f9bbfaf55c427}{eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+get}} (const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$src, const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gacb552beb97aae27635d91372d4a43fd2}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}} $\ast$member, \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$dst)
\begin{DoxyCompactList}\small\item\em Gets the member as Eina\+\_\+\+Value copy given its member description. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga9e1bfd9de30b1684db1e1ac6dd5afbd6}{eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+set}} (\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$dst, const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gacb552beb97aae27635d91372d4a43fd2}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}} $\ast$member, const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$src)
\begin{DoxyCompactList}\small\item\em Sets the member from Eina\+\_\+\+Value source. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}} $\ast$ \mbox{\hyperlink{group__Eina__Value__Struct__Group_gaa18f5f60a784918010cbfd92878110c4}{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\+\_\+\+B\+I\+N\+S\+E\+A\+R\+CH}}
\begin{DoxyCompactList}\small\item\em Assumes {\ttfamily members} is sorted by name and applies binary search for names. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}} $\ast$ \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga1d957c7f2c8025625afeb105d7ee4a23}{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\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE}}
\begin{DoxyCompactList}\small\item\em Assumes {\ttfamily members} name are stringshared and can be compared for equality without using its contents (simple pointer comparison). \end{DoxyCompactList}\item 
const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}} $\ast$ \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga5ca8e8ba5c476183512e66002d6b460a}{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\+\_\+\+B\+I\+N\+S\+E\+A\+R\+CH}} = N\+U\+LL
\begin{DoxyCompactList}\small\item\em Assumes {\ttfamily members} is sorted by name and applies binary search for names. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}} $\ast$ \mbox{\hyperlink{group__Eina__Value__Struct__Group_gae70c9b362b2ffd3efdcc4e3fc8fc7e7a}{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\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE}} = N\+U\+LL
\begin{DoxyCompactList}\small\item\em Assumes {\ttfamily members} name are stringshared and can be compared for equality without using its contents (simple pointer comparison). \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}


\subsection{Macro Definition Documentation}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga139206ef35b0b76e87eef56a202c0ae9}\label{group__Eina__Value__Struct__Group_ga139206ef35b0b76e87eef56a202c0ae9}} 
\index{Generic Value Struct management@{Generic Value Struct management}!E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+ER@{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+ER}}
\index{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+ER@{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+ER}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+ER}{EINA\_VALUE\_STRUCT\_MEMBER}}
{\footnotesize\ttfamily \#define E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+ER(\begin{DoxyParamCaption}\item[{}]{eina\+\_\+value\+\_\+type,  }\item[{}]{type,  }\item[{}]{member }\end{DoxyParamCaption})~\{\#member, eina\+\_\+value\+\_\+type, offsetof(type, member)\}}



Helper to define Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member fields, uses offsetof() with type and member. 

\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\begin{Desc}
\item[Examples\+: ]\par
\mbox{\hyperlink{complex-types-client-eina-value_8c-example}{complex-\/types-\/client-\/eina-\/value.\+c}}, and \mbox{\hyperlink{eina_value_02_8c-example}{eina\+\_\+value\+\_\+02.\+c}}.\end{Desc}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga4bbb8cfe756fb89281b1348e44a785dc}\label{group__Eina__Value__Struct__Group_ga4bbb8cfe756fb89281b1348e44a785dc}} 
\index{Generic Value Struct management@{Generic Value Struct management}!E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+E\+R\+\_\+\+S\+E\+N\+T\+I\+N\+EL@{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+E\+R\+\_\+\+S\+E\+N\+T\+I\+N\+EL}}
\index{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+E\+R\+\_\+\+S\+E\+N\+T\+I\+N\+EL@{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+E\+R\+\_\+\+S\+E\+N\+T\+I\+N\+EL}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+E\+R\+\_\+\+S\+E\+N\+T\+I\+N\+EL}{EINA\_VALUE\_STRUCT\_MEMBER\_SENTINEL}}
{\footnotesize\ttfamily \#define E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+E\+R\+\_\+\+S\+E\+N\+T\+I\+N\+EL~\{N\+U\+LL, N\+U\+LL, 0\}}



Helper to define Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member fields for sentinel (last item), useful if you did not define {\ttfamily member\+\_\+count}. 

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


\subsection{Typedef Documentation}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}\label{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}} 
\index{Generic Value Struct management@{Generic Value Struct management}!Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations@{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}}
\index{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations@{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}{Eina\_Value\_Struct\_Operations}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}}}



How to manage struct. 

Any {\ttfamily N\+U\+LL} callback is ignored.

A structure can specify alternative methods to allocate, free and copy itself. See structure definition for all methods.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{struct__Eina__Value__Struct__Operations}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}} explains fields. 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_gacb552beb97aae27635d91372d4a43fd2}\label{group__Eina__Value__Struct__Group_gacb552beb97aae27635d91372d4a43fd2}} 
\index{Generic Value Struct management@{Generic Value Struct management}!Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member@{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}}
\index{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member@{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}{Eina\_Value\_Struct\_Member}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Value__Struct__Group_gacb552beb97aae27635d91372d4a43fd2}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}}}



Describes a single member of struct. 

The member holds a name, type and its byte offset within the struct memory. Most Eina\+\_\+\+Value\+\_\+\+Struct functions takes the member name as parameter, as in \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\+\_\+value\+\_\+struct\+\_\+set()}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{struct__Eina__Value__Struct__Member}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}} explains fields. 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}\label{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}} 
\index{Generic Value Struct management@{Generic Value Struct management}!Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc@{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}}
\index{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc@{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}{Eina\_Value\_Struct\_Desc}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}}}



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

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}} explains fields. 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}


\subsection{Function Documentation}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_gaf469abb97ac59b73e8b2c726a58a78f8}\label{group__Eina__Value__Struct__Group_gaf469abb97ac59b73e8b2c726a58a78f8}} 
\index{Generic Value Struct management@{Generic Value Struct management}!eina\+\_\+value\+\_\+struct\+\_\+new@{eina\+\_\+value\+\_\+struct\+\_\+new}}
\index{eina\+\_\+value\+\_\+struct\+\_\+new@{eina\+\_\+value\+\_\+struct\+\_\+new}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{eina\+\_\+value\+\_\+struct\+\_\+new()}{eina\_value\_struct\_new()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}}$\ast$ eina\+\_\+value\+\_\+struct\+\_\+new (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}} $\ast$}]{desc }\end{DoxyParamCaption})}



Creates generic value storage of type struct. 


\begin{DoxyParams}{Parameters}
{\em desc} & How to manage this struct members. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The new value, or {\ttfamily N\+U\+LL} on failure.
\end{DoxyReturn}
Create a new generic value storage of type struct. The members are managed using the description specified by {\itshape desc}.

On failure, {\ttfamily N\+U\+LL} is returned.

\begin{DoxyNote}{Note}
this creates from mempool and then uses \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga54ce9b27584946fba6dc1a52a1526572}{eina\+\_\+value\+\_\+struct\+\_\+setup()}}.
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Value__Value__Group_gaa2aa7ac9d1fcd7c4497cf104cb374a52}{eina\+\_\+value\+\_\+free()}} 

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga54ce9b27584946fba6dc1a52a1526572}{eina\+\_\+value\+\_\+struct\+\_\+setup()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}


References eina\+\_\+mempool\+\_\+free(), eina\+\_\+mempool\+\_\+malloc(), and eina\+\_\+value\+\_\+struct\+\_\+setup().

\mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga54ce9b27584946fba6dc1a52a1526572}\label{group__Eina__Value__Struct__Group_ga54ce9b27584946fba6dc1a52a1526572}} 
\index{Generic Value Struct management@{Generic Value Struct management}!eina\+\_\+value\+\_\+struct\+\_\+setup@{eina\+\_\+value\+\_\+struct\+\_\+setup}}
\index{eina\+\_\+value\+\_\+struct\+\_\+setup@{eina\+\_\+value\+\_\+struct\+\_\+setup}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{eina\+\_\+value\+\_\+struct\+\_\+setup()}{eina\_value\_struct\_setup()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+value\+\_\+struct\+\_\+setup (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{value,  }\item[{const \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}} $\ast$}]{desc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Initializes generic value storage of type struct. 


\begin{DoxyParams}{Parameters}
{\em value} & Value object \\
\hline
{\em desc} & How to manage this struct members. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
Initializes new generic value storage of type struct with the given {\itshape desc}.

This is the same as calling \mbox{\hyperlink{group__Eina__Value__Value__Group_ga9a1407c953694c3d6f40ab01ebe9a294}{eina\+\_\+value\+\_\+set()}} with \mbox{\hyperlink{group__Eina__Value__Group_ga432befb0e84e2ac9ca7dc6398a96648d}{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+U\+CT}} followed by \mbox{\hyperlink{group__Eina__Value__Value__Group_ga60352abff8ce5f9cdfc870ba9cf2f28e}{eina\+\_\+value\+\_\+pset()}} with the \mbox{\hyperlink{group__Eina__Value__Optional__Group_gad5112e74acdbd981a0c112b19168304b}{Eina\+\_\+\+Value\+\_\+\+Struct}} description configured.

\begin{DoxyNote}{Note}
Existing contents are ignored! If the value was previously used, then use \mbox{\hyperlink{group__Eina__Value__Value__Group_ga940660709a2862bafac92f47bb721a68}{eina\+\_\+value\+\_\+flush()}} first.
\end{DoxyNote}
On failure, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} is returned.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Value__Value__Group_ga940660709a2862bafac92f47bb721a68}{eina\+\_\+value\+\_\+flush()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}


Referenced by eina\+\_\+value\+\_\+struct\+\_\+new().

\mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}\label{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}} 
\index{Generic Value Struct management@{Generic Value Struct management}!eina\+\_\+value\+\_\+struct\+\_\+set@{eina\+\_\+value\+\_\+struct\+\_\+set}}
\index{eina\+\_\+value\+\_\+struct\+\_\+set@{eina\+\_\+value\+\_\+struct\+\_\+set}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{eina\+\_\+value\+\_\+struct\+\_\+set()}{eina\_value\_struct\_set()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+value\+\_\+struct\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{value,  }\item[{const char $\ast$}]{name,  }\item[{}]{... }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Sets the generic value in an struct member. 


\begin{DoxyParams}{Parameters}
{\em value} & Source value object \\
\hline
{\em name} & Name to find the member \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
The variable argument is dependent on chosen member type. The list for basic types\+:

\begin{DoxyItemize}
\item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+C\+H\+AR\+: unsigned char \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+S\+H\+O\+RT\+: unsigned short \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+NT\+: unsigned int \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+L\+O\+NG\+: unsigned long \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T64\+: uint64\+\_\+t \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+H\+AR\+: char \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+H\+O\+RT\+: short \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+NT\+: int \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+O\+NG\+: long \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T64\+: int64\+\_\+t \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+L\+O\+AT\+: float \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+O\+U\+B\+LE\+: double \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE\+: const char $\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+NG\+: const char $\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+H\+A\+SH\+: Eina\+\_\+\+Value\+\_\+\+Hash \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+T\+I\+M\+E\+V\+AL\+: struct timeval$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+L\+OB\+: Eina\+\_\+\+Value\+\_\+\+Blob$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+U\+CT\+: Eina\+\_\+\+Value\+\_\+\+Struct$\ast$\end{DoxyItemize}

\begin{DoxyCode}
\textcolor{keyword}{struct }myst \{
    \textcolor{keywordtype}{int} i;
    \textcolor{keywordtype}{char} c;
\};
\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Member}{Eina\_Value\_Struct\_Member}} myst\_members[] = \{
    \{\textcolor{stringliteral}{"i"}, \mbox{\hyperlink{group__Eina__Value__Group_ga17974fd9ab773a3efefd591ffde58f77}{EINA\_VALUE\_TYPE\_INT}}, 0\},
    \{\textcolor{stringliteral}{"c"}, \mbox{\hyperlink{group__Eina__Value__Group_ga0d54e0b952b44b7ac4f2fd573f7839c0}{EINA\_VALUE\_TYPE\_CHAR}}, 4\},
    \{NULL, NULL, 0\}
\};
\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{Eina\_Value\_Struct\_Desc}} myst\_desc = \{
    \mbox{\hyperlink{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}{EINA\_VALUE\_STRUCT\_DESC\_VERSION}},
    NULL, myst\_members, 2, \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }myst)
\};
\mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *value = \mbox{\hyperlink{group__Eina__Value__Struct__Group_gaf469abb97ac59b73e8b2c726a58a78f8}{eina\_value\_struct\_new}}(&my\_desc);
\textcolor{keywordtype}{int} x;
\textcolor{keywordtype}{char} y;

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\_value\_struct\_set}}(value, \textcolor{stringliteral}{"i"}, 5678);
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\_value\_struct\_get}}(value, \textcolor{stringliteral}{"i"}, &x);
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\_value\_struct\_set}}(value, \textcolor{stringliteral}{"c"}, 0xf);
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\_value\_struct\_get}}(value, \textcolor{stringliteral}{"c"}, &y);
\mbox{\hyperlink{group__Eina__Value__Value__Group_gaa2aa7ac9d1fcd7c4497cf104cb374a52}{eina\_value\_free}}(value);
\end{DoxyCode}


\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\+\_\+value\+\_\+struct\+\_\+get()}} 

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga7d85c87b7ed61034c6bcd7237259df22}{eina\+\_\+value\+\_\+struct\+\_\+vset()}} 

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\+\_\+value\+\_\+struct\+\_\+pset()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\begin{Desc}
\item[Examples\+: ]\par
\mbox{\hyperlink{complex-types-client-eina-value_8c-example}{complex-\/types-\/client-\/eina-\/value.\+c}}, and \mbox{\hyperlink{eina_value_02_8c-example}{eina\+\_\+value\+\_\+02.\+c}}.\end{Desc}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}\label{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}} 
\index{Generic Value Struct management@{Generic Value Struct management}!eina\+\_\+value\+\_\+struct\+\_\+get@{eina\+\_\+value\+\_\+struct\+\_\+get}}
\index{eina\+\_\+value\+\_\+struct\+\_\+get@{eina\+\_\+value\+\_\+struct\+\_\+get}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{eina\+\_\+value\+\_\+struct\+\_\+get()}{eina\_value\_struct\_get()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+value\+\_\+struct\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{value,  }\item[{const char $\ast$}]{name,  }\item[{}]{... }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Gets the generic value from an struct member. 


\begin{DoxyParams}{Parameters}
{\em value} & Source value object \\
\hline
{\em name} & Name to find the member \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
The value is returned in the variable argument parameter, the actual value is type-\/dependent, but usually it will be what is stored inside the object. There shouldn\textquotesingle{}t be any memory allocation, thus the contents should {\bfseries not} be freed.

The variable argument is dependent on chosen member type. The list for basic types\+:

\begin{DoxyItemize}
\item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+C\+H\+AR\+: unsigned char$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+S\+H\+O\+RT\+: unsigned short$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+NT\+: unsigned int$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+L\+O\+NG\+: unsigned long$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T64\+: uint64\+\_\+t$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+H\+AR\+: char$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+H\+O\+RT\+: short$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+NT\+: int$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+O\+NG\+: long$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T64\+: int64\+\_\+t$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+L\+O\+AT\+: float$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+O\+U\+B\+LE\+: double$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE\+: const char $\ast$$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+NG\+: const char $\ast$$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+H\+A\+SH\+: Eina\+\_\+\+Value\+\_\+\+Hash$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+T\+I\+M\+E\+V\+AL\+: struct timeval$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+L\+OB\+: Eina\+\_\+\+Value\+\_\+\+Blob$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+U\+CT\+: Eina\+\_\+\+Value\+\_\+\+Struct$\ast$\end{DoxyItemize}

\begin{DoxyCode}
\textcolor{keyword}{struct }myst \{
    \textcolor{keywordtype}{int} i;
    \textcolor{keywordtype}{char} c;
\};
\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Member}{Eina\_Value\_Struct\_Member}} myst\_members[] = \{
    \{\textcolor{stringliteral}{"i"}, \mbox{\hyperlink{group__Eina__Value__Group_ga17974fd9ab773a3efefd591ffde58f77}{EINA\_VALUE\_TYPE\_INT}}, 0\},
    \{\textcolor{stringliteral}{"c"}, \mbox{\hyperlink{group__Eina__Value__Group_ga0d54e0b952b44b7ac4f2fd573f7839c0}{EINA\_VALUE\_TYPE\_CHAR}}, 4\},
    \{NULL, NULL, 0\}
\};
\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{Eina\_Value\_Struct\_Desc}} myst\_desc = \{
    \mbox{\hyperlink{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}{EINA\_VALUE\_STRUCT\_DESC\_VERSION}},
    NULL, myst\_members, 2, \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }myst)
\};
\mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *value = \mbox{\hyperlink{group__Eina__Value__Struct__Group_gaf469abb97ac59b73e8b2c726a58a78f8}{eina\_value\_struct\_new}}(&my\_desc);
\textcolor{keywordtype}{int} x;
\textcolor{keywordtype}{char} y;

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\_value\_struct\_set}}(value, \textcolor{stringliteral}{"i"}, 5678);
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\_value\_struct\_get}}(value, \textcolor{stringliteral}{"i"}, &x);
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\_value\_struct\_set}}(value, \textcolor{stringliteral}{"c"}, 0xf);
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\_value\_struct\_get}}(value, \textcolor{stringliteral}{"c"}, &y);
\mbox{\hyperlink{group__Eina__Value__Value__Group_gaa2aa7ac9d1fcd7c4497cf104cb374a52}{eina\_value\_free}}(value);
\end{DoxyCode}


\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\+\_\+value\+\_\+struct\+\_\+set()}} 

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga7d85c87b7ed61034c6bcd7237259df22}{eina\+\_\+value\+\_\+struct\+\_\+vset()}} 

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\+\_\+value\+\_\+struct\+\_\+pset()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\begin{Desc}
\item[Examples\+: ]\par
\mbox{\hyperlink{complex-types-client-eina-value_8c-example}{complex-\/types-\/client-\/eina-\/value.\+c}}, and \mbox{\hyperlink{eina_value_02_8c-example}{eina\+\_\+value\+\_\+02.\+c}}.\end{Desc}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga7d85c87b7ed61034c6bcd7237259df22}\label{group__Eina__Value__Struct__Group_ga7d85c87b7ed61034c6bcd7237259df22}} 
\index{Generic Value Struct management@{Generic Value Struct management}!eina\+\_\+value\+\_\+struct\+\_\+vset@{eina\+\_\+value\+\_\+struct\+\_\+vset}}
\index{eina\+\_\+value\+\_\+struct\+\_\+vset@{eina\+\_\+value\+\_\+struct\+\_\+vset}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{eina\+\_\+value\+\_\+struct\+\_\+vset()}{eina\_value\_struct\_vset()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+value\+\_\+struct\+\_\+vset (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{value,  }\item[{const char $\ast$}]{name,  }\item[{va\+\_\+list}]{args }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Sets the generic value in an struct member. 


\begin{DoxyParams}{Parameters}
{\em value} & Source value object \\
\hline
{\em name} & Name to find the member \\
\hline
{\em args} & Variable argument \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\+\_\+value\+\_\+struct\+\_\+set()}} 

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\+\_\+value\+\_\+struct\+\_\+get()}} 

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\+\_\+value\+\_\+struct\+\_\+pset()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga8d7d1e07a9d5e82090c90a23f4a1caf7}\label{group__Eina__Value__Struct__Group_ga8d7d1e07a9d5e82090c90a23f4a1caf7}} 
\index{Generic Value Struct management@{Generic Value Struct management}!eina\+\_\+value\+\_\+struct\+\_\+vget@{eina\+\_\+value\+\_\+struct\+\_\+vget}}
\index{eina\+\_\+value\+\_\+struct\+\_\+vget@{eina\+\_\+value\+\_\+struct\+\_\+vget}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{eina\+\_\+value\+\_\+struct\+\_\+vget()}{eina\_value\_struct\_vget()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+value\+\_\+struct\+\_\+vget (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{value,  }\item[{const char $\ast$}]{name,  }\item[{va\+\_\+list}]{args }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Gets the generic value from an struct member. 


\begin{DoxyParams}{Parameters}
{\em value} & Source value object \\
\hline
{\em name} & Name to find the member \\
\hline
{\em args} & Variable argument \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
The value is returned in the variable argument parameter, the actual value is type-\/dependent, but usually it will be what is stored inside the object. There shouldn\textquotesingle{}t be any memory allocation, thus the contents should {\bfseries not} be freed.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga7d85c87b7ed61034c6bcd7237259df22}{eina\+\_\+value\+\_\+struct\+\_\+vset()}} 

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\+\_\+value\+\_\+struct\+\_\+get()}} 

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}{eina\+\_\+value\+\_\+struct\+\_\+pget()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}\label{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}} 
\index{Generic Value Struct management@{Generic Value Struct management}!eina\+\_\+value\+\_\+struct\+\_\+pset@{eina\+\_\+value\+\_\+struct\+\_\+pset}}
\index{eina\+\_\+value\+\_\+struct\+\_\+pset@{eina\+\_\+value\+\_\+struct\+\_\+pset}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{eina\+\_\+value\+\_\+struct\+\_\+pset()}{eina\_value\_struct\_pset()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+value\+\_\+struct\+\_\+pset (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{value,  }\item[{const char $\ast$}]{name,  }\item[{const void $\ast$}]{ptr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Sets the generic value in an struct member from pointer. 


\begin{DoxyParams}{Parameters}
{\em value} & Source value object \\
\hline
{\em name} & Name to find the member \\
\hline
{\em ptr} & Pointer to specify the contents. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
The pointer type is dependent on chosen value type. The list for basic types\+:

\begin{DoxyItemize}
\item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+C\+H\+AR\+: unsigned char$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+S\+H\+O\+RT\+: unsigned short$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+NT\+: unsigned int$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+L\+O\+NG\+: unsigned long$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T64\+: uint64\+\_\+t$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+H\+AR\+: char$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+H\+O\+RT\+: short$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+NT\+: int$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+O\+NG\+: long$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T64\+: int64\+\_\+t$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+L\+O\+AT\+: float$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+O\+U\+B\+LE\+: double$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE\+: const char $\ast$$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+NG\+: const char $\ast$$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+H\+A\+SH\+: Eina\+\_\+\+Value\+\_\+\+Hash$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+T\+I\+M\+E\+V\+AL\+: struct timeval$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+L\+OB\+: Eina\+\_\+\+Value\+\_\+\+Blob$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+U\+CT\+: Eina\+\_\+\+Value\+\_\+\+Struct$\ast$\end{DoxyItemize}
\begin{DoxyNote}{Note}
the pointer contents are written using the size defined by type. It can be larger than void$\ast$ or uint64\+\_\+t.
\end{DoxyNote}

\begin{DoxyCode}
\textcolor{keyword}{struct }myst \{
    \textcolor{keywordtype}{int} i;
    \textcolor{keywordtype}{char} c;
\};
\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Member}{Eina\_Value\_Struct\_Member}} myst\_members[] = \{
    \{\textcolor{stringliteral}{"i"}, \mbox{\hyperlink{group__Eina__Value__Group_ga17974fd9ab773a3efefd591ffde58f77}{EINA\_VALUE\_TYPE\_INT}}, 0\},
    \{\textcolor{stringliteral}{"c"}, \mbox{\hyperlink{group__Eina__Value__Group_ga0d54e0b952b44b7ac4f2fd573f7839c0}{EINA\_VALUE\_TYPE\_CHAR}}, 4\},
    \{NULL, NULL, 0\}
\};
\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{Eina\_Value\_Struct\_Desc}} myst\_desc = \{
    \mbox{\hyperlink{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}{EINA\_VALUE\_STRUCT\_DESC\_VERSION}},
    NULL, myst\_members, 2, \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }myst)
\};
\mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *value = \mbox{\hyperlink{group__Eina__Value__Struct__Group_gaf469abb97ac59b73e8b2c726a58a78f8}{eina\_value\_struct\_new}}(&my\_desc);
\textcolor{keywordtype}{int} x = 5678;
\textcolor{keywordtype}{char} y = 0xf;

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\_value\_struct\_pset}}(value, \textcolor{stringliteral}{"i"}, &);
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}{eina\_value\_struct\_pget}}(value, \textcolor{stringliteral}{"i"}, &x);
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\_value\_struct\_pset}}(value, \textcolor{stringliteral}{"c"}, &y);
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}{eina\_value\_struct\_pget}}(value, \textcolor{stringliteral}{"c"}, &y);
\mbox{\hyperlink{group__Eina__Value__Value__Group_gaa2aa7ac9d1fcd7c4497cf104cb374a52}{eina\_value\_free}}(value);
\end{DoxyCode}


\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\+\_\+value\+\_\+struct\+\_\+set()}} 

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\+\_\+value\+\_\+struct\+\_\+get()}} 

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga7d85c87b7ed61034c6bcd7237259df22}{eina\+\_\+value\+\_\+struct\+\_\+vset()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}\label{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}} 
\index{Generic Value Struct management@{Generic Value Struct management}!eina\+\_\+value\+\_\+struct\+\_\+pget@{eina\+\_\+value\+\_\+struct\+\_\+pget}}
\index{eina\+\_\+value\+\_\+struct\+\_\+pget@{eina\+\_\+value\+\_\+struct\+\_\+pget}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{eina\+\_\+value\+\_\+struct\+\_\+pget()}{eina\_value\_struct\_pget()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+value\+\_\+struct\+\_\+pget (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{value,  }\item[{const char $\ast$}]{name,  }\item[{void $\ast$}]{ptr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Gets the generic value to pointer from an struct member. 


\begin{DoxyParams}{Parameters}
{\em value} & Source value object \\
\hline
{\em name} & Name to find the member \\
\hline
{\em ptr} & Pointer to receive the contents. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
The value is returned in pointer contents, the actual value is type-\/dependent, but usually it will be what is stored inside the object. There shouldn\textquotesingle{}t be any memory allocation, thus the contents should {\bfseries not} be freed.

The pointer type is dependent on chosen value type. The list for basic types\+:

\begin{DoxyItemize}
\item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+C\+H\+AR\+: unsigned char$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+S\+H\+O\+RT\+: unsigned short$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+NT\+: unsigned int$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+L\+O\+NG\+: unsigned long$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T64\+: uint64\+\_\+t$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+H\+AR\+: char$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+H\+O\+RT\+: short$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+NT\+: int$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+O\+NG\+: long$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T64\+: int64\+\_\+t$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+L\+O\+AT\+: float$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+O\+U\+B\+LE\+: double$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE\+: const char $\ast$$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+NG\+: const char $\ast$$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+H\+A\+SH\+: Eina\+\_\+\+Value\+\_\+\+Hash$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+T\+I\+M\+E\+V\+AL\+: struct timeval$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+L\+OB\+: Eina\+\_\+\+Value\+\_\+\+Blob$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+U\+CT\+: Eina\+\_\+\+Value\+\_\+\+Struct$\ast$\end{DoxyItemize}

\begin{DoxyCode}
\textcolor{keyword}{struct }myst \{
    \textcolor{keywordtype}{int} i;
    \textcolor{keywordtype}{char} c;
\};
\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Member}{Eina\_Value\_Struct\_Member}} myst\_members[] = \{
    \{\textcolor{stringliteral}{"i"}, \mbox{\hyperlink{group__Eina__Value__Group_ga17974fd9ab773a3efefd591ffde58f77}{EINA\_VALUE\_TYPE\_INT}}, 0\},
    \{\textcolor{stringliteral}{"c"}, \mbox{\hyperlink{group__Eina__Value__Group_ga0d54e0b952b44b7ac4f2fd573f7839c0}{EINA\_VALUE\_TYPE\_CHAR}}, 4\},
    \{NULL, NULL, 0\}
\};
\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{Eina\_Value\_Struct\_Desc}} myst\_desc = \{
    \mbox{\hyperlink{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}{EINA\_VALUE\_STRUCT\_DESC\_VERSION}},
    NULL, myst\_members, 2, \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }myst)
\};
\mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *value = \mbox{\hyperlink{group__Eina__Value__Struct__Group_gaf469abb97ac59b73e8b2c726a58a78f8}{eina\_value\_struct\_new}}(&my\_desc);
\textcolor{keywordtype}{int} x = 5678;
\textcolor{keywordtype}{char} y = 0xf;

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\_value\_struct\_pset}}(value, \textcolor{stringliteral}{"i"}, &);
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}{eina\_value\_struct\_pget}}(value, \textcolor{stringliteral}{"i"}, &x);
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\_value\_struct\_pset}}(value, \textcolor{stringliteral}{"c"}, &y);
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}{eina\_value\_struct\_pget}}(value, \textcolor{stringliteral}{"c"}, &y);
\mbox{\hyperlink{group__Eina__Value__Value__Group_gaa2aa7ac9d1fcd7c4497cf104cb374a52}{eina\_value\_free}}(value);
\end{DoxyCode}


\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\+\_\+value\+\_\+struct\+\_\+set()}} 

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga7d85c87b7ed61034c6bcd7237259df22}{eina\+\_\+value\+\_\+struct\+\_\+vset()}} 

\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\+\_\+value\+\_\+struct\+\_\+pset()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_gadbe2da54625edad4a63dbce2cbbdf6ec}\label{group__Eina__Value__Struct__Group_gadbe2da54625edad4a63dbce2cbbdf6ec}} 
\index{Generic Value Struct management@{Generic Value Struct management}!eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+get@{eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+get}}
\index{eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+get@{eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+get}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+get()}{eina\_value\_struct\_value\_get()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{src,  }\item[{const char $\ast$}]{name,  }\item[{\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{dst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Gets the member as Eina\+\_\+\+Value copy. 


\begin{DoxyParams}{Parameters}
{\em src} & Source value object \\
\hline
{\em name} & Name to find the member \\
\hline
{\em dst} & Shere to return the member value. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
The argument {\itshape dst} is considered uninitialized and it\textquotesingle{}s setup to the type of the member.

\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\begin{Desc}
\item[Examples\+: ]\par
\mbox{\hyperlink{complex-types-client-eina-value_8c-example}{complex-\/types-\/client-\/eina-\/value.\+c}}.\end{Desc}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_gac22dc4bbaef8213a2ee79e2f03e9528b}\label{group__Eina__Value__Struct__Group_gac22dc4bbaef8213a2ee79e2f03e9528b}} 
\index{Generic Value Struct management@{Generic Value Struct management}!eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+set@{eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+set}}
\index{eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+set@{eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+set}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+set()}{eina\_value\_struct\_value\_set()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{dst,  }\item[{const char $\ast$}]{name,  }\item[{const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Sets the member from Eina\+\_\+\+Value source. 


\begin{DoxyParams}{Parameters}
{\em dst} & destination value object \\
\hline
{\em name} & name to find the member \\
\hline
{\em src} & source value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} on failure.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\begin{Desc}
\item[Examples\+: ]\par
\mbox{\hyperlink{complex-types-client-eina-value_8c-example}{complex-\/types-\/client-\/eina-\/value.\+c}}.\end{Desc}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga4a40469bdecbf2fac25f9bbfaf55c427}\label{group__Eina__Value__Struct__Group_ga4a40469bdecbf2fac25f9bbfaf55c427}} 
\index{Generic Value Struct management@{Generic Value Struct management}!eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+get@{eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+get}}
\index{eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+get@{eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+get}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+get()}{eina\_value\_struct\_member\_value\_get()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{src,  }\item[{const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gacb552beb97aae27635d91372d4a43fd2}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}} $\ast$}]{member,  }\item[{\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{dst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Gets the member as Eina\+\_\+\+Value copy given its member description. 


\begin{DoxyParams}{Parameters}
{\em src} & Source value object \\
\hline
{\em member} & The member description to use \\
\hline
{\em dst} & Where to return the member value. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
The argument {\itshape dst} is considered uninitialized and it\textquotesingle{}s setup to the type of the member.

\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga9e1bfd9de30b1684db1e1ac6dd5afbd6}\label{group__Eina__Value__Struct__Group_ga9e1bfd9de30b1684db1e1ac6dd5afbd6}} 
\index{Generic Value Struct management@{Generic Value Struct management}!eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+set@{eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+set}}
\index{eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+set@{eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+set}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+set()}{eina\_value\_struct\_member\_value\_set()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{dst,  }\item[{const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gacb552beb97aae27635d91372d4a43fd2}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}} $\ast$}]{member,  }\item[{const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Sets the member from Eina\+\_\+\+Value source. 


\begin{DoxyParams}{Parameters}
{\em dst} & destination value object \\
\hline
{\em member} & the member description to use \\
\hline
{\em src} & source value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} on failure.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}


\subsection{Variable Documentation}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_gaa18f5f60a784918010cbfd92878110c4}\label{group__Eina__Value__Struct__Group_gaa18f5f60a784918010cbfd92878110c4}} 
\index{Generic Value Struct management@{Generic Value Struct management}!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\+\_\+\+B\+I\+N\+S\+E\+A\+R\+CH@{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\+\_\+\+B\+I\+N\+S\+E\+A\+R\+CH}}
\index{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\+\_\+\+B\+I\+N\+S\+E\+A\+R\+CH@{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\+\_\+\+B\+I\+N\+S\+E\+A\+R\+CH}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{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\+\_\+\+B\+I\+N\+S\+E\+A\+R\+CH}{EINA\_VALUE\_STRUCT\_OPERATIONS\_BINSEARCH}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}}$\ast$ 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\+\_\+\+B\+I\+N\+S\+E\+A\+R\+CH}



Assumes {\ttfamily members} is sorted by name and applies binary search for names. 

Ideally the {\ttfamily member\+\_\+count} field is set to speed it up.

No other methods are set (alloc, free, copy, compare), then it uses the default operations. \mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga1d957c7f2c8025625afeb105d7ee4a23}\label{group__Eina__Value__Struct__Group_ga1d957c7f2c8025625afeb105d7ee4a23}} 
\index{Generic Value Struct management@{Generic Value Struct management}!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\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE@{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\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE}}
\index{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\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE@{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\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{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\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE}{EINA\_VALUE\_STRUCT\_OPERATIONS\_STRINGSHARE}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const \mbox{\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}}$\ast$ 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\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE}



Assumes {\ttfamily members} name are stringshared and can be compared for equality without using its contents (simple pointer comparison). 

Ideally the search {\ttfamily name} will be stringshared as well, but it will do a second loop with a forced stringshare if it did not find the member.

No other methods are set (alloc, free, copy, compare), then it uses the default operations. \mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga5ca8e8ba5c476183512e66002d6b460a}\label{group__Eina__Value__Struct__Group_ga5ca8e8ba5c476183512e66002d6b460a}} 
\index{Generic Value Struct management@{Generic Value Struct management}!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\+\_\+\+B\+I\+N\+S\+E\+A\+R\+CH@{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\+\_\+\+B\+I\+N\+S\+E\+A\+R\+CH}}
\index{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\+\_\+\+B\+I\+N\+S\+E\+A\+R\+CH@{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\+\_\+\+B\+I\+N\+S\+E\+A\+R\+CH}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{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\+\_\+\+B\+I\+N\+S\+E\+A\+R\+CH}{EINA\_VALUE\_STRUCT\_OPERATIONS\_BINSEARCH}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily 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\+\_\+\+B\+I\+N\+S\+E\+A\+R\+CH = N\+U\+LL}



Assumes {\ttfamily members} is sorted by name and applies binary search for names. 

Ideally the {\ttfamily member\+\_\+count} field is set to speed it up.

No other methods are set (alloc, free, copy, compare), then it uses the default operations. \mbox{\Hypertarget{group__Eina__Value__Struct__Group_gae70c9b362b2ffd3efdcc4e3fc8fc7e7a}\label{group__Eina__Value__Struct__Group_gae70c9b362b2ffd3efdcc4e3fc8fc7e7a}} 
\index{Generic Value Struct management@{Generic Value Struct management}!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\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE@{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\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE}}
\index{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\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE@{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\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection{\texorpdfstring{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\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE}{EINA\_VALUE\_STRUCT\_OPERATIONS\_STRINGSHARE}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily 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\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+RE = N\+U\+LL}



Assumes {\ttfamily members} name are stringshared and can be compared for equality without using its contents (simple pointer comparison). 

Ideally the search {\ttfamily name} will be stringshared as well, but it will do a second loop with a forced stringshare if it did not find the member.

No other methods are set (alloc, free, copy, compare), then it uses the default operations. 