\label{doc_decisions_2_in_progress_binary_md_md_doc_decisions_2_in_progress_binary}%
\Hypertarget{doc_decisions_2_in_progress_binary_md_md_doc_decisions_2_in_progress_binary}%
 \hypertarget{doc_decisions_2_in_progress_binary_md_autotoc_md1956}{}\doxysection{Problem}\label{doc_decisions_2_in_progress_binary_md_autotoc_md1956}
Binary


\begin{DoxyItemize}
\item is the only metadata that allows more values (instead of making the validation stricter)
\item is the only API that modifies metadata
\item creates some inconsistencies in the API (e.\+g. {\ttfamily KEY\+\_\+\+FLAG\+\_\+\+RO\+\_\+\+VALUE} is linked to {\ttfamily KEY\+\_\+\+FLAG\+\_\+\+RO\+\_\+\+META})
\end{DoxyItemize}\hypertarget{doc_decisions_2_in_progress_binary_md_autotoc_md1957}{}\doxysection{Constraints}\label{doc_decisions_2_in_progress_binary_md_autotoc_md1957}

\begin{DoxyItemize}
\item simplify API
\end{DoxyItemize}\hypertarget{doc_decisions_2_in_progress_binary_md_autotoc_md1958}{}\doxysection{Assumptions}\label{doc_decisions_2_in_progress_binary_md_autotoc_md1958}

\begin{DoxyItemize}
\item byte-\/array values are a rarely used feature in configuration settings
\item absence of values, i.\+e., \mbox{\hyperlink{doc_decisions_5_implemented_null_md}{null keys}} however, is quite common
\end{DoxyItemize}\hypertarget{doc_decisions_2_in_progress_binary_md_autotoc_md1959}{}\doxysection{Considered Alternatives}\label{doc_decisions_2_in_progress_binary_md_autotoc_md1959}

\begin{DoxyItemize}
\item flag for indicating if a value is binary
\end{DoxyItemize}\hypertarget{doc_decisions_2_in_progress_binary_md_autotoc_md1960}{}\doxysection{Decision}\label{doc_decisions_2_in_progress_binary_md_autotoc_md1960}

\begin{DoxyItemize}
\item make keys with untyped value per default (no assumption about type, i.\+e., byte-\/array)
\item all current types are not binary, so type = string is the way to indicate a string doesn\textquotesingle{}t
\begin{DoxyItemize}
\item contain null bytes
\item is not null (not only indicator of structure without value)
\item uses some well-\/defined but unspecified text encoding (i.\+e. not necessarily ASCII or UTF-\/8)
\end{DoxyItemize}
\item remove binary functionality from key\+New key\+VNew key\+Is\+Binary key\+Is\+String key\+Value key\+Get\+Value\+Size key\+String key\+Get\+String key\+Set\+String key\+Get\+Binary key\+Set\+Binary
\item key\+Set\+Raw -\/$>$ key\+Set\+Value
\end{DoxyItemize}\hypertarget{doc_decisions_2_in_progress_binary_md_autotoc_md1961}{}\doxysection{Rationale}\label{doc_decisions_2_in_progress_binary_md_autotoc_md1961}
\hypertarget{doc_decisions_2_in_progress_binary_md_autotoc_md1962}{}\doxysection{Implications}\label{doc_decisions_2_in_progress_binary_md_autotoc_md1962}

\begin{DoxyItemize}
\item metadata can also be binary
\item binary types would be possible (e.\+g. nullable-\/string)
\end{DoxyItemize}\hypertarget{doc_decisions_2_in_progress_binary_md_autotoc_md1963}{}\doxysection{Related Decisions}\label{doc_decisions_2_in_progress_binary_md_autotoc_md1963}

\begin{DoxyItemize}
\item \mbox{\hyperlink{doc_decisions_5_implemented_null_md}{null}}
\end{DoxyItemize}\hypertarget{doc_decisions_2_in_progress_binary_md_autotoc_md1964}{}\doxysection{Notes}\label{doc_decisions_2_in_progress_binary_md_autotoc_md1964}
