\hypertarget{group__Eina__Value__Struct__Group}{}\doxysection{Generic Value Struct management}
\label{group__Eina__Value__Struct__Group}\index{Generic Value Struct management@{Generic Value Struct management}}
\doxysubsection*{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}
\doxysubsection*{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}{EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+OPERATIONS\+\_\+\+VERSION}}~(1)
\begin{DoxyCompactList}\small\item\em Current API 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}{EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+DESC\+\_\+\+VERSION}}~(1)
\begin{DoxyCompactList}\small\item\em Current API 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}{EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+MEMBER}}(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}{EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+MEMBER\+\_\+\+SENTINEL}}~\{NULL, NULL, 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}\item 
\#define {\bfseries EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+DESC\+\_\+\+DEFINE}(Name,  Ops,  Size, ...)
\end{DoxyCompactItemize}
\doxysubsection*{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}
\doxysubsection*{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 const \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}} $\ast$ \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga22afd28722ef56d072093e74f89ba496}{eina\+\_\+value\+\_\+struct\+\_\+desc\+\_\+get}} (const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$value)
\begin{DoxyCompactList}\small\item\em Checks for a struct and get its description. \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 a 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 a 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 a 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 a 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 a 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 a 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}
\doxysubsection*{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}{EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+OPERATIONS\+\_\+\+BINSEARCH}}
\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}{EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+OPERATIONS\+\_\+\+STRINGSHARE}}
\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}{EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+OPERATIONS\+\_\+\+BINSEARCH}} = NULL
\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}{EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+OPERATIONS\+\_\+\+STRINGSHARE}} = NULL
\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}


\doxysubsection{Detailed Description}


\doxysubsection{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}!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}}
\doxysubsubsection{\texorpdfstring{EINA\_VALUE\_STRUCT\_MEMBER}{EINA\_VALUE\_STRUCT\_MEMBER}}
{\footnotesize\ttfamily \#define EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+MEMBER(\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}!EINA\_VALUE\_STRUCT\_MEMBER\_SENTINEL@{EINA\_VALUE\_STRUCT\_MEMBER\_SENTINEL}}
\index{EINA\_VALUE\_STRUCT\_MEMBER\_SENTINEL@{EINA\_VALUE\_STRUCT\_MEMBER\_SENTINEL}!Generic Value Struct management@{Generic Value Struct management}}
\doxysubsubsection{\texorpdfstring{EINA\_VALUE\_STRUCT\_MEMBER\_SENTINEL}{EINA\_VALUE\_STRUCT\_MEMBER\_SENTINEL}}
{\footnotesize\ttfamily \#define EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+MEMBER\+\_\+\+SENTINEL~\{NULL, NULL, 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}
\mbox{\Hypertarget{group__Eina__Value__Struct__Group_ga605988115ed20a0a922266a58b36a72c}\label{group__Eina__Value__Struct__Group_ga605988115ed20a0a922266a58b36a72c}} 
\index{Generic Value Struct management@{Generic Value Struct management}!EINA\_VALUE\_STRUCT\_DESC\_DEFINE@{EINA\_VALUE\_STRUCT\_DESC\_DEFINE}}
\index{EINA\_VALUE\_STRUCT\_DESC\_DEFINE@{EINA\_VALUE\_STRUCT\_DESC\_DEFINE}!Generic Value Struct management@{Generic Value Struct management}}
\doxysubsubsection{\texorpdfstring{EINA\_VALUE\_STRUCT\_DESC\_DEFINE}{EINA\_VALUE\_STRUCT\_DESC\_DEFINE}}
{\footnotesize\ttfamily \#define EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+DESC\+\_\+\+DEFINE(\begin{DoxyParamCaption}\item[{}]{Name,  }\item[{}]{Ops,  }\item[{}]{Size,  }\item[{}]{... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{  \textcolor{keyword}{static} \textcolor{keyword}{inline} \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{Eina\_Value\_Struct\_Desc}} *                                \(\backslash\)}
\DoxyCodeLine{  Name(\textcolor{keywordtype}{void})                                                            \(\backslash\)}
\DoxyCodeLine{  \{                                                                     \(\backslash\)}
\DoxyCodeLine{     Eina\_Value\_Struct\_Member tmp[] = \{ \_\_VA\_ARGS\_\_ \};                  \(\backslash\)}
\DoxyCodeLine{     static \mbox{\hyperlink{struct__Eina__Value__Struct__Member}{Eina\_Value\_Struct\_Member}} members[\mbox{\hyperlink{group__Eina__Types__Group_ga7c1b6f81660b4e30516169e9e7d3261c}{EINA\_C\_ARRAY\_LENGTH}}(tmp) + 1] = \{ \{ \textcolor{stringliteral}{"{}"{}}, NULL, 0 \} \}; \(\backslash\)}
\DoxyCodeLine{     static \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{Eina\_Value\_Struct\_Desc}} r = \{                                \(\backslash\)}
\DoxyCodeLine{       EINA\_VALUE\_STRUCT\_DESC\_VERSION,                                  \(\backslash\)}
\DoxyCodeLine{       NULL,                                                             \(\backslash\)}
\DoxyCodeLine{       members,                                                         \(\backslash\)}
\DoxyCodeLine{       EINA\_C\_ARRAY\_LENGTH(tmp),                                        \(\backslash\)}
\DoxyCodeLine{       Size                                                             \(\backslash\)}
\DoxyCodeLine{     \};                                                                 \(\backslash\)}
\DoxyCodeLine{                                                                        \(\backslash\)}
\DoxyCodeLine{     if (members[0].name)                                               \(\backslash\)}
\DoxyCodeLine{       \{                                                                \(\backslash\)}
\DoxyCodeLine{          r.ops = Ops;                                                  \(\backslash\)}
\DoxyCodeLine{          memcpy(members, tmp, \textcolor{keyword}{sizeof}(tmp));                            \(\backslash\)}
\DoxyCodeLine{       \}                                                                \(\backslash\)}
\DoxyCodeLine{     return \&r;                                                         \(\backslash\)}
\DoxyCodeLine{  \}}

\end{DoxyCode}


\doxysubsection{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}}
\doxysubsubsection{\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 NULL} 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}}
\doxysubsubsection{\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}}
\doxysubsubsection{\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}


\doxysubsection{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}}
\doxysubsubsection{\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}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em desc} & How to manage this struct members. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The new value, or {\ttfamily NULL} 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 NULL} 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}}
\doxysubsubsection{\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}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em value} & Value object \\
\hline
\mbox{\texttt{ in}}  & {\em desc} & How to manage this struct members. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} 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}{EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+STRUCT}} 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}{EINA\+\_\+\+FALSE}} 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_ga22afd28722ef56d072093e74f89ba496}\label{group__Eina__Value__Struct__Group_ga22afd28722ef56d072093e74f89ba496}} 
\index{Generic Value Struct management@{Generic Value Struct management}!eina\_value\_struct\_desc\_get@{eina\_value\_struct\_desc\_get}}
\index{eina\_value\_struct\_desc\_get@{eina\_value\_struct\_desc\_get}!Generic Value Struct management@{Generic Value Struct management}}
\doxysubsubsection{\texorpdfstring{eina\_value\_struct\_desc\_get()}{eina\_value\_struct\_desc\_get()}}
{\footnotesize\ttfamily static const \mbox{\hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}}$\ast$ eina\+\_\+value\+\_\+struct\+\_\+desc\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{value }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Checks for a struct and get its description. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em value} & Value object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
structure description, with all members and size. on failure, {\ttfamily NULL} is returned.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+21 
\end{DoxySince}
\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}}
\doxysubsubsection{\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 a struct member. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em value} & Source value object \\
\hline
\mbox{\texttt{ in}}  & {\em name} & Name to find the member \\
\hline
\mbox{\texttt{ in}}  & {\em ...} & Variable arguments \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise.
\end{DoxyReturn}
The variable argument is dependent on chosen member type. The list for basic types\+:

\begin{DoxyItemize}
\item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+VALUE\+: Eina\+\_\+\+Value \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+ERROR\+: Eina\+\_\+\+Error \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+UCHAR\+: unsigned char \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+USHORT\+: unsigned short \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+UINT\+: unsigned int \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+ULONG\+: unsigned long \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+UINT64\+: uint64\+\_\+t \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+CHAR\+: char \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+SHORT\+: short \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+INT\+: int \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+LONG\+: long \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+INT64\+: int64\+\_\+t \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+FLOAT\+: float \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+DOUBLE\+: double \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+STRINGSHARE\+: const char $\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+STRING\+: const char $\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+HASH\+: Eina\+\_\+\+Value\+\_\+\+Hash \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+TIMEVAL\+: struct timeval$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+BLOB\+: Eina\+\_\+\+Value\+\_\+\+Blob$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+STRUCT\+: Eina\+\_\+\+Value\+\_\+\+Struct$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+TM\+: struct tm$\ast$\end{DoxyItemize}

\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{struct }myst \{}
\DoxyCodeLine{    \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{    \textcolor{keywordtype}{char} c;}
\DoxyCodeLine{\};}
\DoxyCodeLine{\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Member}{Eina\_Value\_Struct\_Member}} myst\_members[] = \{}
\DoxyCodeLine{    \{\textcolor{stringliteral}{"{}i"{}}, \mbox{\hyperlink{group__Eina__Value__Group_ga17974fd9ab773a3efefd591ffde58f77}{EINA\_VALUE\_TYPE\_INT}}, 0\},}
\DoxyCodeLine{    \{\textcolor{stringliteral}{"{}c"{}}, \mbox{\hyperlink{group__Eina__Value__Group_ga0d54e0b952b44b7ac4f2fd573f7839c0}{EINA\_VALUE\_TYPE\_CHAR}}, 4\},}
\DoxyCodeLine{    \{NULL, NULL, 0\}}
\DoxyCodeLine{\};}
\DoxyCodeLine{\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{Eina\_Value\_Struct\_Desc}} myst\_desc = \{}
\DoxyCodeLine{    \mbox{\hyperlink{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}{EINA\_VALUE\_STRUCT\_DESC\_VERSION}},}
\DoxyCodeLine{    NULL, myst\_members, 2, \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }myst)}
\DoxyCodeLine{\};}
\DoxyCodeLine{\mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *value = \mbox{\hyperlink{group__Eina__Value__Struct__Group_gaf469abb97ac59b73e8b2c726a58a78f8}{eina\_value\_struct\_new}}(\&my\_desc);}
\DoxyCodeLine{\textcolor{keywordtype}{int} x;}
\DoxyCodeLine{\textcolor{keywordtype}{char} y;}
\DoxyCodeLine{}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\_value\_struct\_set}}(value, \textcolor{stringliteral}{"{}i"{}}, 5678);}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\_value\_struct\_get}}(value, \textcolor{stringliteral}{"{}i"{}}, \&x);}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\_value\_struct\_set}}(value, \textcolor{stringliteral}{"{}c"{}}, 0xf);}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\_value\_struct\_get}}(value, \textcolor{stringliteral}{"{}c"{}}, \&y);}
\DoxyCodeLine{\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}}
\doxysubsubsection{\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 a struct member. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em value} & Source value object \\
\hline
\mbox{\texttt{ in}}  & {\em name} & Name to find the member \\
\hline
\mbox{\texttt{ out}}  & {\em ...} & Variable arguments \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} 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 EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+VALUE\+: Eina\+\_\+\+Value$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+ERROR\+: Eina\+\_\+\+Error$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+UCHAR\+: unsigned char$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+USHORT\+: unsigned short$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+UINT\+: unsigned int$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+ULONG\+: unsigned long$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+UINT64\+: uint64\+\_\+t$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+CHAR\+: char$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+SHORT\+: short$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+INT\+: int$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+LONG\+: long$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+INT64\+: int64\+\_\+t$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+FLOAT\+: float$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+DOUBLE\+: double$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+STRINGSHARE\+: const char $\ast$$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+STRING\+: const char $\ast$$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+HASH\+: Eina\+\_\+\+Value\+\_\+\+Hash$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+TIMEVAL\+: struct timeval$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+BLOB\+: Eina\+\_\+\+Value\+\_\+\+Blob$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+STRUCT\+: Eina\+\_\+\+Value\+\_\+\+Struct$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+TM\+: struct tm$\ast$\end{DoxyItemize}

\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{struct }myst \{}
\DoxyCodeLine{    \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{    \textcolor{keywordtype}{char} c;}
\DoxyCodeLine{\};}
\DoxyCodeLine{\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Member}{Eina\_Value\_Struct\_Member}} myst\_members[] = \{}
\DoxyCodeLine{    \{\textcolor{stringliteral}{"{}i"{}}, \mbox{\hyperlink{group__Eina__Value__Group_ga17974fd9ab773a3efefd591ffde58f77}{EINA\_VALUE\_TYPE\_INT}}, 0\},}
\DoxyCodeLine{    \{\textcolor{stringliteral}{"{}c"{}}, \mbox{\hyperlink{group__Eina__Value__Group_ga0d54e0b952b44b7ac4f2fd573f7839c0}{EINA\_VALUE\_TYPE\_CHAR}}, 4\},}
\DoxyCodeLine{    \{NULL, NULL, 0\}}
\DoxyCodeLine{\};}
\DoxyCodeLine{\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{Eina\_Value\_Struct\_Desc}} myst\_desc = \{}
\DoxyCodeLine{    \mbox{\hyperlink{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}{EINA\_VALUE\_STRUCT\_DESC\_VERSION}},}
\DoxyCodeLine{    NULL, myst\_members, 2, \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }myst)}
\DoxyCodeLine{\};}
\DoxyCodeLine{\mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *value = \mbox{\hyperlink{group__Eina__Value__Struct__Group_gaf469abb97ac59b73e8b2c726a58a78f8}{eina\_value\_struct\_new}}(\&my\_desc);}
\DoxyCodeLine{\textcolor{keywordtype}{int} x;}
\DoxyCodeLine{\textcolor{keywordtype}{char} y;}
\DoxyCodeLine{}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\_value\_struct\_set}}(value, \textcolor{stringliteral}{"{}i"{}}, 5678);}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\_value\_struct\_get}}(value, \textcolor{stringliteral}{"{}i"{}}, \&x);}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\_value\_struct\_set}}(value, \textcolor{stringliteral}{"{}c"{}}, 0xf);}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\_value\_struct\_get}}(value, \textcolor{stringliteral}{"{}c"{}}, \&y);}
\DoxyCodeLine{\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}}
\doxysubsubsection{\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 a struct member. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em value} & Source value object \\
\hline
\mbox{\texttt{ in}}  & {\em name} & Name to find the member \\
\hline
\mbox{\texttt{ in}}  & {\em args} & Variable argument \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} 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}}
\doxysubsubsection{\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 a struct member. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em value} & Source value object \\
\hline
\mbox{\texttt{ in}}  & {\em name} & Name to find the member \\
\hline
\mbox{\texttt{ in,out}}  & {\em args} & Variable argument \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} 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}}
\doxysubsubsection{\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 a struct member from pointer. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em value} & Source value object \\
\hline
\mbox{\texttt{ in}}  & {\em name} & Name to find the member \\
\hline
\mbox{\texttt{ in}}  & {\em ptr} & Pointer to specify the contents. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise.
\end{DoxyReturn}
The pointer type is dependent on chosen value type. The list for basic types\+:

\begin{DoxyItemize}
\item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+VALUE\+: Eina\+\_\+\+Value$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+ERROR\+: Eina\+\_\+\+Error$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+UCHAR\+: unsigned char$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+USHORT\+: unsigned short$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+UINT\+: unsigned int$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+ULONG\+: unsigned long$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+UINT64\+: uint64\+\_\+t$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+CHAR\+: char$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+SHORT\+: short$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+INT\+: int$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+LONG\+: long$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+INT64\+: int64\+\_\+t$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+FLOAT\+: float$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+DOUBLE\+: double$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+STRINGSHARE\+: const char $\ast$$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+STRING\+: const char $\ast$$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+HASH\+: Eina\+\_\+\+Value\+\_\+\+Hash$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+TIMEVAL\+: struct timeval$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+BLOB\+: Eina\+\_\+\+Value\+\_\+\+Blob$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+STRUCT\+: Eina\+\_\+\+Value\+\_\+\+Struct$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+TM\+: struct tm$\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}{0}
\DoxyCodeLine{\textcolor{keyword}{struct }myst \{}
\DoxyCodeLine{    \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{    \textcolor{keywordtype}{char} c;}
\DoxyCodeLine{\};}
\DoxyCodeLine{\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Member}{Eina\_Value\_Struct\_Member}} myst\_members[] = \{}
\DoxyCodeLine{    \{\textcolor{stringliteral}{"{}i"{}}, \mbox{\hyperlink{group__Eina__Value__Group_ga17974fd9ab773a3efefd591ffde58f77}{EINA\_VALUE\_TYPE\_INT}}, 0\},}
\DoxyCodeLine{    \{\textcolor{stringliteral}{"{}c"{}}, \mbox{\hyperlink{group__Eina__Value__Group_ga0d54e0b952b44b7ac4f2fd573f7839c0}{EINA\_VALUE\_TYPE\_CHAR}}, 4\},}
\DoxyCodeLine{    \{NULL, NULL, 0\}}
\DoxyCodeLine{\};}
\DoxyCodeLine{\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{Eina\_Value\_Struct\_Desc}} myst\_desc = \{}
\DoxyCodeLine{    \mbox{\hyperlink{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}{EINA\_VALUE\_STRUCT\_DESC\_VERSION}},}
\DoxyCodeLine{    NULL, myst\_members, 2, \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }myst)}
\DoxyCodeLine{\};}
\DoxyCodeLine{\mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *value = \mbox{\hyperlink{group__Eina__Value__Struct__Group_gaf469abb97ac59b73e8b2c726a58a78f8}{eina\_value\_struct\_new}}(\&my\_desc);}
\DoxyCodeLine{\textcolor{keywordtype}{int} x = 5678;}
\DoxyCodeLine{\textcolor{keywordtype}{char} y = 0xf;}
\DoxyCodeLine{}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\_value\_struct\_pset}}(value, \textcolor{stringliteral}{"{}i"{}}, \&x);}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}{eina\_value\_struct\_pget}}(value, \textcolor{stringliteral}{"{}i"{}}, \&x);}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\_value\_struct\_pset}}(value, \textcolor{stringliteral}{"{}c"{}}, \&y);}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}{eina\_value\_struct\_pget}}(value, \textcolor{stringliteral}{"{}c"{}}, \&y);}
\DoxyCodeLine{\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}}
\doxysubsubsection{\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 a struct member. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em value} & Source value object \\
\hline
\mbox{\texttt{ in}}  & {\em name} & Name to find the member \\
\hline
\mbox{\texttt{ out}}  & {\em ptr} & Pointer to receive the contents. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} 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 EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+VALUE\+: Eina\+\_\+\+Value$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+ERROR\+: Eina\+\_\+\+Error$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+UCHAR\+: unsigned char$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+USHORT\+: unsigned short$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+UINT\+: unsigned int$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+ULONG\+: unsigned long$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+UINT64\+: uint64\+\_\+t$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+CHAR\+: char$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+SHORT\+: short$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+INT\+: int$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+LONG\+: long$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+INT64\+: int64\+\_\+t$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+FLOAT\+: float$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+DOUBLE\+: double$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+STRINGSHARE\+: const char $\ast$$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+STRING\+: const char $\ast$$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+HASH\+: Eina\+\_\+\+Value\+\_\+\+Hash$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+TIMEVAL\+: struct timeval$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+BLOB\+: Eina\+\_\+\+Value\+\_\+\+Blob$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+STRUCT\+: Eina\+\_\+\+Value\+\_\+\+Struct$\ast$ \item EINA\+\_\+\+VALUE\+\_\+\+TYPE\+\_\+\+TM\+: struct tm$\ast$\end{DoxyItemize}

\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{struct }myst \{}
\DoxyCodeLine{    \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{    \textcolor{keywordtype}{char} c;}
\DoxyCodeLine{\};}
\DoxyCodeLine{\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Member}{Eina\_Value\_Struct\_Member}} myst\_members[] = \{}
\DoxyCodeLine{    \{\textcolor{stringliteral}{"{}i"{}}, \mbox{\hyperlink{group__Eina__Value__Group_ga17974fd9ab773a3efefd591ffde58f77}{EINA\_VALUE\_TYPE\_INT}}, 0\},}
\DoxyCodeLine{    \{\textcolor{stringliteral}{"{}c"{}}, \mbox{\hyperlink{group__Eina__Value__Group_ga0d54e0b952b44b7ac4f2fd573f7839c0}{EINA\_VALUE\_TYPE\_CHAR}}, 4\},}
\DoxyCodeLine{    \{NULL, NULL, 0\}}
\DoxyCodeLine{\};}
\DoxyCodeLine{\textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value__Struct__Desc}{Eina\_Value\_Struct\_Desc}} myst\_desc = \{}
\DoxyCodeLine{    \mbox{\hyperlink{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}{EINA\_VALUE\_STRUCT\_DESC\_VERSION}},}
\DoxyCodeLine{    NULL, myst\_members, 2, \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }myst)}
\DoxyCodeLine{\};}
\DoxyCodeLine{\mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} *value = \mbox{\hyperlink{group__Eina__Value__Struct__Group_gaf469abb97ac59b73e8b2c726a58a78f8}{eina\_value\_struct\_new}}(\&my\_desc);}
\DoxyCodeLine{\textcolor{keywordtype}{int} x = 5678;}
\DoxyCodeLine{\textcolor{keywordtype}{char} y = 0xf;}
\DoxyCodeLine{}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\_value\_struct\_pset}}(value, \textcolor{stringliteral}{"{}i"{}}, \&);}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}{eina\_value\_struct\_pget}}(value, \textcolor{stringliteral}{"{}i"{}}, \&x);}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\_value\_struct\_pset}}(value, \textcolor{stringliteral}{"{}c"{}}, \&y);}
\DoxyCodeLine{\mbox{\hyperlink{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}{eina\_value\_struct\_pget}}(value, \textcolor{stringliteral}{"{}c"{}}, \&y);}
\DoxyCodeLine{\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}}
\doxysubsubsection{\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}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em src} & Source value object \\
\hline
\mbox{\texttt{ in}}  & {\em name} & Name to find the member \\
\hline
\mbox{\texttt{ out}}  & {\em dst} & Where to return the member value. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} 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}}
\doxysubsubsection{\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}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em dst} & destination value object \\
\hline
\mbox{\texttt{ in}}  & {\em name} & name to find the member \\
\hline
\mbox{\texttt{ in}}  & {\em src} & source value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} 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}}
\doxysubsubsection{\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}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em src} & Source value object \\
\hline
\mbox{\texttt{ in}}  & {\em member} & The member description to use \\
\hline
\mbox{\texttt{ out}}  & {\em dst} & Where to return the member value. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} 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}}
\doxysubsubsection{\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}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em dst} & destination value object \\
\hline
\mbox{\texttt{ in}}  & {\em member} & the member description to use \\
\hline
\mbox{\texttt{ in}}  & {\em src} & source value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} on failure.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}


\doxysubsection{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}!EINA\_VALUE\_STRUCT\_OPERATIONS\_BINSEARCH@{EINA\_VALUE\_STRUCT\_OPERATIONS\_BINSEARCH}}
\index{EINA\_VALUE\_STRUCT\_OPERATIONS\_BINSEARCH@{EINA\_VALUE\_STRUCT\_OPERATIONS\_BINSEARCH}!Generic Value Struct management@{Generic Value Struct management}}
\doxysubsubsection{\texorpdfstring{EINA\_VALUE\_STRUCT\_OPERATIONS\_BINSEARCH}{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$ EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+OPERATIONS\+\_\+\+BINSEARCH\hspace{0.3cm}{\ttfamily [extern]}}



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}!EINA\_VALUE\_STRUCT\_OPERATIONS\_STRINGSHARE@{EINA\_VALUE\_STRUCT\_OPERATIONS\_STRINGSHARE}}
\index{EINA\_VALUE\_STRUCT\_OPERATIONS\_STRINGSHARE@{EINA\_VALUE\_STRUCT\_OPERATIONS\_STRINGSHARE}!Generic Value Struct management@{Generic Value Struct management}}
\doxysubsubsection{\texorpdfstring{EINA\_VALUE\_STRUCT\_OPERATIONS\_STRINGSHARE}{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$ EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+OPERATIONS\+\_\+\+STRINGSHARE\hspace{0.3cm}{\ttfamily [extern]}}



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}!EINA\_VALUE\_STRUCT\_OPERATIONS\_BINSEARCH@{EINA\_VALUE\_STRUCT\_OPERATIONS\_BINSEARCH}}
\index{EINA\_VALUE\_STRUCT\_OPERATIONS\_BINSEARCH@{EINA\_VALUE\_STRUCT\_OPERATIONS\_BINSEARCH}!Generic Value Struct management@{Generic Value Struct management}}
\doxysubsubsection{\texorpdfstring{EINA\_VALUE\_STRUCT\_OPERATIONS\_BINSEARCH}{EINA\_VALUE\_STRUCT\_OPERATIONS\_BINSEARCH}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+OPERATIONS\+\_\+\+BINSEARCH = NULL}



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}!EINA\_VALUE\_STRUCT\_OPERATIONS\_STRINGSHARE@{EINA\_VALUE\_STRUCT\_OPERATIONS\_STRINGSHARE}}
\index{EINA\_VALUE\_STRUCT\_OPERATIONS\_STRINGSHARE@{EINA\_VALUE\_STRUCT\_OPERATIONS\_STRINGSHARE}!Generic Value Struct management@{Generic Value Struct management}}
\doxysubsubsection{\texorpdfstring{EINA\_VALUE\_STRUCT\_OPERATIONS\_STRINGSHARE}{EINA\_VALUE\_STRUCT\_OPERATIONS\_STRINGSHARE}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily EINA\+\_\+\+VALUE\+\_\+\+STRUCT\+\_\+\+OPERATIONS\+\_\+\+STRINGSHARE = NULL}



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. 