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

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

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

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

\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\_value\_struct\_pset}(value, \textcolor{stringliteral}{"i"}, &);
\hyperlink{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}{eina\_value\_struct\_pget}(value, \textcolor{stringliteral}{"i"}, &x);
\hyperlink{group__Eina__Value__Struct__Group_ga67924cc5f07802088125410cf48b1f63}{eina\_value\_struct\_pset}(value, \textcolor{stringliteral}{"c"}, &y);
\hyperlink{group__Eina__Value__Struct__Group_ga1f6088c1f9e33b9912994291511c35e9}{eina\_value\_struct\_pget}(value, \textcolor{stringliteral}{"c"}, &y);
\hyperlink{group__Eina__Value__Value__Group_gaa2aa7ac9d1fcd7c4497cf104cb374a52}{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. 