\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 \hyperlink{struct__Eina__Value__Struct__Operations}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}
\begin{DoxyCompactList}\small\item\em How to manage struct. \end{DoxyCompactList}\item 
struct \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 \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 \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 
\hypertarget{group__Eina__Value__Struct__Group_ga616b4187aec4502fee885dda6ec5e245}{\#define \hyperlink{group__Eina__Value__Struct__Group_ga616b4187aec4502fee885dda6ec5e245}{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+O\+P\+E\+R\+A\+T\+I\+O\+N\+S\+\_\+\+V\+E\+R\+S\+I\+O\+N}~(1)}\label{group__Eina__Value__Struct__Group_ga616b4187aec4502fee885dda6ec5e245}

\begin{DoxyCompactList}\small\item\em Current A\+P\+I version, used to validate \hyperlink{struct__Eina__Value__Struct__Operations}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}. \end{DoxyCompactList}\item 
\hypertarget{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}{\#define \hyperlink{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+D\+E\+S\+C\+\_\+\+V\+E\+R\+S\+I\+O\+N}~(1)}\label{group__Eina__Value__Struct__Group_gae76aada4965672ce991f1f41baf71975}

\begin{DoxyCompactList}\small\item\em Current A\+P\+I version, used to validate \hyperlink{struct__Eina__Value__Struct__Desc}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}. \end{DoxyCompactList}\item 
\#define \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\+E\+R}(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 \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\+E\+L}~\{N\+U\+L\+L, N\+U\+L\+L, 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 \\*
\hyperlink{struct__Eina__Value__Struct__Operations}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations} \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 \\*
\hyperlink{struct__Eina__Value__Struct__Member}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member} \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 \\*
\hyperlink{struct__Eina__Value__Struct__Desc}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc} \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}\item 
typedef struct \hyperlink{struct__Eina__Value__Struct}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct} \hyperlink{group__Eina__Value__Struct__Group_ga2db4980af27874525f289479de56f492}{Eina\+\_\+\+Value\+\_\+\+Struct}
\begin{DoxyCompactList}\small\item\em Value type for \hyperlink{group__Eina__Value__Group_ga432befb0e84e2ac9ca7dc6398a96648d}{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+U\+C\+T}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$ \hyperlink{group__Eina__Value__Struct__Group_gaf469abb97ac59b73e8b2c726a58a78f8}{eina\+\_\+value\+\_\+struct\+\_\+new} (const \hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc} $\ast$desc)
\begin{DoxyCompactList}\small\item\em Create generic value storage of type struct. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Value__Struct__Group_ga54ce9b27584946fba6dc1a52a1526572}{eina\+\_\+value\+\_\+struct\+\_\+setup} (\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$value, const \hyperlink{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc} $\ast$desc)
\begin{DoxyCompactList}\small\item\em Initialize generic value storage of type struct. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\+\_\+value\+\_\+struct\+\_\+set} (\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$value, const char $\ast$name,...)
\begin{DoxyCompactList}\small\item\em Set the generic value in an struct member. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}{eina\+\_\+value\+\_\+struct\+\_\+get} (const \hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$value, const char $\ast$name,...)
\begin{DoxyCompactList}\small\item\em Get the generic value from an struct member. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Value__Struct__Group_ga7d85c87b7ed61034c6bcd7237259df22}{eina\+\_\+value\+\_\+struct\+\_\+vset} (\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$value, const char $\ast$name, va\+\_\+list args)
\begin{DoxyCompactList}\small\item\em Set the generic value in an struct member. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Value__Struct__Group_ga8d7d1e07a9d5e82090c90a23f4a1caf7}{eina\+\_\+value\+\_\+struct\+\_\+vget} (const \hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$value, const char $\ast$name, va\+\_\+list args)
\begin{DoxyCompactList}\small\item\em Get the generic value from an struct member. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\+\_\+value\+\_\+struct\+\_\+pset} (\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$value, const char $\ast$name, const void $\ast$ptr)
\begin{DoxyCompactList}\small\item\em Set the generic value in an struct member from pointer. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}{eina\+\_\+value\+\_\+struct\+\_\+pget} (const \hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$value, const char $\ast$name, void $\ast$ptr)
\begin{DoxyCompactList}\small\item\em Get the generic value to pointer from an struct member. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Value__Struct__Group_gadbe2da54625edad4a63dbce2cbbdf6ec}{eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+get} (const \hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$src, const char $\ast$name, \hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$dst)
\begin{DoxyCompactList}\small\item\em Get the member as Eina\+\_\+\+Value copy. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Value__Struct__Group_gac22dc4bbaef8213a2ee79e2f03e9528b}{eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+set} (\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$dst, const char $\ast$name, const \hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$src)
\begin{DoxyCompactList}\small\item\em Set the member from Eina\+\_\+\+Value source. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Value__Struct__Group_ga4a40469bdecbf2fac25f9bbfaf55c427}{eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+get} (const \hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$src, const \hyperlink{group__Eina__Value__Struct__Group_gacb552beb97aae27635d91372d4a43fd2}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member} $\ast$member, \hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$dst)
\begin{DoxyCompactList}\small\item\em Get the member as Eina\+\_\+\+Value copy given its member description. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Value__Struct__Group_ga9e1bfd9de30b1684db1e1ac6dd5afbd6}{eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+set} (\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$dst, const \hyperlink{group__Eina__Value__Struct__Group_gacb552beb97aae27635d91372d4a43fd2}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member} $\ast$member, const \hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value} $\ast$src)
\begin{DoxyCompactList}\small\item\em Set the member from Eina\+\_\+\+Value source. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const \\*
\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations} $\ast$ \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\+C\+H}
\begin{DoxyCompactList}\small\item\em Assumes {\ttfamily members} is sorted by name and applies binary search for names. \end{DoxyCompactList}\item 
const \\*
\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations} $\ast$ \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\+R\+E}
\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 \\*
\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations} $\ast$ \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\+C\+H} = N\+U\+L\+L
\begin{DoxyCompactList}\small\item\em Assumes {\ttfamily members} is sorted by name and applies binary search for names. \end{DoxyCompactList}\item 
const \\*
\hyperlink{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations} $\ast$ \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\+R\+E} = N\+U\+L\+L
\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}
\hypertarget{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\+E\+R@{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+E\+R}}
\index{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+E\+R@{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+E\+R}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection[{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+E\+R}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+S\+T\+R\+U\+C\+T\+\_\+\+M\+E\+M\+B\+E\+R(
\begin{DoxyParamCaption}
\item[{}]{eina\+\_\+value\+\_\+type, }
\item[{}]{type, }
\item[{}]{member}
\end{DoxyParamCaption}
)~\{\#member, eina\+\_\+value\+\_\+type, offsetof(type, member)\}}}\label{group__Eina__Value__Struct__Group_ga139206ef35b0b76e87eef56a202c0ae9}


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
\hyperlink{complex-types-client-eina-value_8c-example}{complex-\/types-\/client-\/eina-\/value.\+c}, and \hyperlink{eina_value_02_8c-example}{eina\+\_\+value\+\_\+02.\+c}.\end{Desc}
\hypertarget{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\+E\+L@{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\+E\+L}}
\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\+E\+L@{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\+E\+L}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection[{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\+E\+L}]{\setlength{\rightskip}{0pt plus 5cm}\#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\+E\+L~\{N\+U\+L\+L, N\+U\+L\+L, 0\}}}\label{group__Eina__Value__Struct__Group_ga4bbb8cfe756fb89281b1348e44a785dc}


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}
\hypertarget{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[{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations}}}\label{group__Eina__Value__Struct__Group_gadd1ef1dcb7efc1daec5b28e6c9dfbb8c}


How to manage struct. 

Any {\ttfamily N\+U\+L\+L} 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}
\hyperlink{struct__Eina__Value__Struct__Operations}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Operations} explains fields. 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\hypertarget{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[{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member}}}\label{group__Eina__Value__Struct__Group_gacb552beb97aae27635d91372d4a43fd2}


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 \hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\+\_\+value\+\_\+struct\+\_\+set()}.

\begin{DoxySeeAlso}{See also}
\hyperlink{struct__Eina__Value__Struct__Member}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member} explains fields. 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\hypertarget{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[{Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc}}}\label{group__Eina__Value__Struct__Group_ga69bcc1965b7b57ef713b0370d10f593d}


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

\begin{DoxySeeAlso}{See also}
\hyperlink{struct__Eina__Value__Struct__Desc}{\+\_\+\+Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc} explains fields. 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\hypertarget{group__Eina__Value__Struct__Group_ga2db4980af27874525f289479de56f492}{\index{Generic Value Struct management@{Generic Value Struct management}!Eina\+\_\+\+Value\+\_\+\+Struct@{Eina\+\_\+\+Value\+\_\+\+Struct}}
\index{Eina\+\_\+\+Value\+\_\+\+Struct@{Eina\+\_\+\+Value\+\_\+\+Struct}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection[{Eina\+\_\+\+Value\+\_\+\+Struct}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Value\+\_\+\+Struct}}}\label{group__Eina__Value__Struct__Group_ga2db4980af27874525f289479de56f492}


Value type for \hyperlink{group__Eina__Value__Group_ga432befb0e84e2ac9ca7dc6398a96648d}{E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+U\+C\+T}. 

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


\subsection{Function Documentation}
\hypertarget{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[{eina\+\_\+value\+\_\+struct\+\_\+new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Value}$\ast$ eina\+\_\+value\+\_\+struct\+\_\+new (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc} $\ast$}]{desc}
\end{DoxyParamCaption}
)}}\label{group__Eina__Value__Struct__Group_gaf469abb97ac59b73e8b2c726a58a78f8}


Create 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\+L\+L} 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\+L\+L} is returned.

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

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

\hypertarget{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[{eina\+\_\+value\+\_\+struct\+\_\+setup}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+value\+\_\+struct\+\_\+setup (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Value} $\ast$}]{value, }
\item[{const {\bf Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Desc} $\ast$}]{desc}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Value__Struct__Group_ga54ce9b27584946fba6dc1a52a1526572}


Initialize 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}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
Initializes new generic value storage of type struct with the given {\itshape desc}.

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

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

\begin{DoxySeeAlso}{See also}
\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().

\hypertarget{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[{eina\+\_\+value\+\_\+struct\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+value\+\_\+struct\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Value} $\ast$}]{value, }
\item[{const char $\ast$}]{name, }
\item[{}]{...}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}


Set 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}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} 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\+A\+R\+: unsigned char \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+S\+H\+O\+R\+T\+: unsigned short \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T\+: unsigned int \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+L\+O\+N\+G\+: 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\+A\+R\+: char \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+H\+O\+R\+T\+: short \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T\+: int \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+O\+N\+G\+: 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\+A\+T\+: float \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+O\+U\+B\+L\+E\+: double \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G\+S\+H\+A\+R\+E\+: const char $\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G\+: const char $\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+H\+A\+S\+H\+: Eina\+\_\+\+Value\+\_\+\+Hash \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+T\+I\+M\+E\+V\+A\+L\+: struct timeval$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+L\+O\+B\+: Eina\+\_\+\+Value\+\_\+\+Blob$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+U\+C\+T\+: Eina\+\_\+\+Value\+\_\+\+Struct$\ast$\end{DoxyItemize}

\begin{DoxyCode}
1 struct myst \{
2     int i;
3     char c;
4 \};
5 const Eina\_Value\_Struct\_Member myst\_members[] = \{
6     \{"i", EINA\_VALUE\_TYPE\_INT, 0\},
7     \{"c", EINA\_VALUE\_TYPE\_CHAR, 4\},
8     \{NULL, NULL, 0\}
9 \};
10 const Eina\_Value\_Struct\_Desc myst\_desc = \{
11     EINA\_VALUE\_STRUCT\_DESC\_VERSION,
12     NULL, myst\_members, 2, sizeof(struct myst)
13 \};
14 Eina\_Value *value = eina\_value\_struct\_new(&my\_desc);
15 int x;
16 char y;
17 
18 eina\_value\_struct\_set(value, "i", 5678);
19 eina\_value\_struct\_get(value, "i", &x);
20 eina\_value\_struct\_set(value, "c", 0xf);
21 eina\_value\_struct\_get(value, "c", &y);
22 eina\_value\_free(value);
\end{DoxyCode}


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

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

\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
\hyperlink{complex-types-client-eina-value_8c-example}{complex-\/types-\/client-\/eina-\/value.\+c}, and \hyperlink{eina_value_02_8c-example}{eina\+\_\+value\+\_\+02.\+c}.\end{Desc}
\hypertarget{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[{eina\+\_\+value\+\_\+struct\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+value\+\_\+struct\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+Value} $\ast$}]{value, }
\item[{const char $\ast$}]{name, }
\item[{}]{...}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Value__Struct__Group_ga07a7cc420f03a247dffe4d13ce1ad6c5}


Get 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}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} 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'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\+A\+R\+: unsigned char$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+S\+H\+O\+R\+T\+: unsigned short$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T\+: unsigned int$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+L\+O\+N\+G\+: 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\+A\+R\+: char$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+H\+O\+R\+T\+: short$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T\+: int$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+O\+N\+G\+: 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\+A\+T\+: float$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+O\+U\+B\+L\+E\+: 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\+R\+E\+: const char $\ast$$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G\+: const char $\ast$$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+H\+A\+S\+H\+: Eina\+\_\+\+Value\+\_\+\+Hash$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+T\+I\+M\+E\+V\+A\+L\+: struct timeval$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+L\+O\+B\+: Eina\+\_\+\+Value\+\_\+\+Blob$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+U\+C\+T\+: Eina\+\_\+\+Value\+\_\+\+Struct$\ast$\end{DoxyItemize}

\begin{DoxyCode}
1 struct myst \{
2     int i;
3     char c;
4 \};
5 const Eina\_Value\_Struct\_Member myst\_members[] = \{
6     \{"i", EINA\_VALUE\_TYPE\_INT, 0\},
7     \{"c", EINA\_VALUE\_TYPE\_CHAR, 4\},
8     \{NULL, NULL, 0\}
9 \};
10 const Eina\_Value\_Struct\_Desc myst\_desc = \{
11     EINA\_VALUE\_STRUCT\_DESC\_VERSION,
12     NULL, myst\_members, 2, sizeof(struct myst)
13 \};
14 Eina\_Value *value = eina\_value\_struct\_new(&my\_desc);
15 int x;
16 char y;
17 
18 eina\_value\_struct\_set(value, "i", 5678);
19 eina\_value\_struct\_get(value, "i", &x);
20 eina\_value\_struct\_set(value, "c", 0xf);
21 eina\_value\_struct\_get(value, "c", &y);
22 eina\_value\_free(value);
\end{DoxyCode}


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

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

\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
\hyperlink{complex-types-client-eina-value_8c-example}{complex-\/types-\/client-\/eina-\/value.\+c}, and \hyperlink{eina_value_02_8c-example}{eina\+\_\+value\+\_\+02.\+c}.\end{Desc}
\hypertarget{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[{eina\+\_\+value\+\_\+struct\+\_\+vset}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+value\+\_\+struct\+\_\+vset (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Value} $\ast$}]{value, }
\item[{const char $\ast$}]{name, }
\item[{va\+\_\+list}]{args}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Value__Struct__Group_ga7d85c87b7ed61034c6bcd7237259df22}


Set 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}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eina__Value__Struct__Group_ga476aa64a399aba776fa14f2fb065b268}{eina\+\_\+value\+\_\+struct\+\_\+set()} 

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

\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\+\_\+value\+\_\+struct\+\_\+pset()}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\hypertarget{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[{eina\+\_\+value\+\_\+struct\+\_\+vget}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+value\+\_\+struct\+\_\+vget (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+Value} $\ast$}]{value, }
\item[{const char $\ast$}]{name, }
\item[{va\+\_\+list}]{args}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Value__Struct__Group_ga8d7d1e07a9d5e82090c90a23f4a1caf7}


Get 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}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} 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't be any memory allocation, thus the contents should {\bfseries not} be freed.

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

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

\hyperlink{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}{eina\+\_\+value\+\_\+struct\+\_\+pget()}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\hypertarget{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[{eina\+\_\+value\+\_\+struct\+\_\+pset}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+value\+\_\+struct\+\_\+pset (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Value} $\ast$}]{value, }
\item[{const char $\ast$}]{name, }
\item[{const void $\ast$}]{ptr}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}


Set 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}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} 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\+A\+R\+: unsigned char$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+S\+H\+O\+R\+T\+: unsigned short$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T\+: unsigned int$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+L\+O\+N\+G\+: 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\+A\+R\+: char$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+H\+O\+R\+T\+: short$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T\+: int$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+O\+N\+G\+: 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\+A\+T\+: float$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+O\+U\+B\+L\+E\+: 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\+R\+E\+: const char $\ast$$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G\+: const char $\ast$$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+H\+A\+S\+H\+: Eina\+\_\+\+Value\+\_\+\+Hash$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+T\+I\+M\+E\+V\+A\+L\+: struct timeval$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+L\+O\+B\+: Eina\+\_\+\+Value\+\_\+\+Blob$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+U\+C\+T\+: 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}
1 struct myst \{
2     int i;
3     char c;
4 \};
5 const Eina\_Value\_Struct\_Member myst\_members[] = \{
6     \{"i", EINA\_VALUE\_TYPE\_INT, 0\},
7     \{"c", EINA\_VALUE\_TYPE\_CHAR, 4\},
8     \{NULL, NULL, 0\}
9 \};
10 const Eina\_Value\_Struct\_Desc myst\_desc = \{
11     EINA\_VALUE\_STRUCT\_DESC\_VERSION,
12     NULL, myst\_members, 2, sizeof(struct myst)
13 \};
14 Eina\_Value *value = eina\_value\_struct\_new(&my\_desc);
15 int x = 5678;
16 char y = 0xf;
17 
18 eina\_value\_struct\_pset(value, "i", &);
19 eina\_value\_struct\_pget(value, "i", &x);
20 eina\_value\_struct\_pset(value, "c", &y);
21 eina\_value\_struct\_pget(value, "c", &y);
22 eina\_value\_free(value);
\end{DoxyCode}


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

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

\hyperlink{group__Eina__Value__Struct__Group_ga7d85c87b7ed61034c6bcd7237259df22}{eina\+\_\+value\+\_\+struct\+\_\+vset()}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\hypertarget{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[{eina\+\_\+value\+\_\+struct\+\_\+pget}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+value\+\_\+struct\+\_\+pget (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+Value} $\ast$}]{value, }
\item[{const char $\ast$}]{name, }
\item[{void $\ast$}]{ptr}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}


Get 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}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} 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'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\+A\+R\+: unsigned char$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+S\+H\+O\+R\+T\+: unsigned short$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T\+: unsigned int$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+L\+O\+N\+G\+: 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\+A\+R\+: char$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+H\+O\+R\+T\+: short$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T\+: int$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+O\+N\+G\+: 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\+A\+T\+: float$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+O\+U\+B\+L\+E\+: 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\+R\+E\+: const char $\ast$$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G\+: const char $\ast$$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+H\+A\+S\+H\+: Eina\+\_\+\+Value\+\_\+\+Hash$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+T\+I\+M\+E\+V\+A\+L\+: struct timeval$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+L\+O\+B\+: Eina\+\_\+\+Value\+\_\+\+Blob$\ast$ \item E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+U\+C\+T\+: Eina\+\_\+\+Value\+\_\+\+Struct$\ast$\end{DoxyItemize}

\begin{DoxyCode}
1 struct myst \{
2     int i;
3     char c;
4 \};
5 const Eina\_Value\_Struct\_Member myst\_members[] = \{
6     \{"i", EINA\_VALUE\_TYPE\_INT, 0\},
7     \{"c", EINA\_VALUE\_TYPE\_CHAR, 4\},
8     \{NULL, NULL, 0\}
9 \};
10 const Eina\_Value\_Struct\_Desc myst\_desc = \{
11     EINA\_VALUE\_STRUCT\_DESC\_VERSION,
12     NULL, myst\_members, 2, sizeof(struct myst)
13 \};
14 Eina\_Value *value = eina\_value\_struct\_new(&my\_desc);
15 int x = 5678;
16 char y = 0xf;
17 
18 eina\_value\_struct\_pset(value, "i", &);
19 eina\_value\_struct\_pget(value, "i", &x);
20 eina\_value\_struct\_pset(value, "c", &y);
21 eina\_value\_struct\_pget(value, "c", &y);
22 eina\_value\_free(value);
\end{DoxyCode}


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

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

\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\+\_\+value\+\_\+struct\+\_\+pset()}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\hypertarget{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[{eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+Value} $\ast$}]{src, }
\item[{const char $\ast$}]{name, }
\item[{{\bf Eina\+\_\+\+Value} $\ast$}]{dst}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Value__Struct__Group_gadbe2da54625edad4a63dbce2cbbdf6ec}


Get 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} & where to return the member value. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} on failure.
\end{DoxyReturn}
The argument {\itshape dst} is considered uninitialized and it's setup to the type of the member.

\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\begin{Desc}
\item[Examples\+: ]\par
\hyperlink{complex-types-client-eina-value_8c-example}{complex-\/types-\/client-\/eina-\/value.\+c}.\end{Desc}
\hypertarget{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[{eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+value\+\_\+struct\+\_\+value\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Value} $\ast$}]{dst, }
\item[{const char $\ast$}]{name, }
\item[{const {\bf Eina\+\_\+\+Value} $\ast$}]{src}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Value__Struct__Group_gac22dc4bbaef8213a2ee79e2f03e9528b}


Set 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}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} on failure.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\begin{Desc}
\item[Examples\+: ]\par
\hyperlink{complex-types-client-eina-value_8c-example}{complex-\/types-\/client-\/eina-\/value.\+c}.\end{Desc}
\hypertarget{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[{eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+Value} $\ast$}]{src, }
\item[{const {\bf Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member} $\ast$}]{member, }
\item[{{\bf Eina\+\_\+\+Value} $\ast$}]{dst}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Value__Struct__Group_ga4a40469bdecbf2fac25f9bbfaf55c427}


Get 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}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} on failure.
\end{DoxyReturn}
The argument {\itshape dst} is considered uninitialized and it's setup to the type of the member.

\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}
\hypertarget{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[{eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+value\+\_\+struct\+\_\+member\+\_\+value\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Value} $\ast$}]{dst, }
\item[{const {\bf Eina\+\_\+\+Value\+\_\+\+Struct\+\_\+\+Member} $\ast$}]{member, }
\item[{const {\bf Eina\+\_\+\+Value} $\ast$}]{src}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Value__Struct__Group_ga9e1bfd9de30b1684db1e1ac6dd5afbd6}


Set 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}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} on failure.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+2 
\end{DoxySince}


\subsection{Variable Documentation}
\hypertarget{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\+C\+H@{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\+C\+H}}
\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\+C\+H@{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\+C\+H}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection[{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\+C\+H}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf 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\+C\+H}}\label{group__Eina__Value__Struct__Group_gaa18f5f60a784918010cbfd92878110c4}


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. \hypertarget{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\+R\+E@{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\+R\+E}}
\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\+R\+E@{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\+R\+E}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection[{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\+R\+E}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf 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\+R\+E}}\label{group__Eina__Value__Struct__Group_ga1d957c7f2c8025625afeb105d7ee4a23}


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. \hypertarget{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\+C\+H@{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\+C\+H}}
\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\+C\+H@{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\+C\+H}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection[{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\+C\+H}]{\setlength{\rightskip}{0pt plus 5cm}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\+C\+H = N\+U\+L\+L}}\label{group__Eina__Value__Struct__Group_ga5ca8e8ba5c476183512e66002d6b460a}


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. \hypertarget{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\+R\+E@{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\+R\+E}}
\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\+R\+E@{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\+R\+E}!Generic Value Struct management@{Generic Value Struct management}}
\subsubsection[{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\+R\+E}]{\setlength{\rightskip}{0pt plus 5cm}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\+R\+E = N\+U\+L\+L}}\label{group__Eina__Value__Struct__Group_gae70c9b362b2ffd3efdcc4e3fc8fc7e7a}


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. 