FDL Core Library
ASC Framing Decision List — C/C++ Reference Implementation
Loading...
Searching...
No Matches
Functions
fdl_enum_map.h File Reference

Bidirectional string<->enum conversions for FDL enumerated types. More...

#include "fdl/fdl_core.h"
#include <string>
#include <string_view>

Go to the source code of this file.

Functions

fdl_fit_method_t fdl::detail::fit_method_from_string (std::string_view s)
 Convert fit method string to enum.
 
fdl_geometry_path_t fdl::detail::geometry_path_from_string (std::string_view s)
 Convert geometry path string to enum.
 
fdl_halign_t fdl::detail::halign_from_string (std::string_view s)
 Convert horizontal alignment string to enum.
 
fdl_valign_t fdl::detail::valign_from_string (std::string_view s)
 Convert vertical alignment string to enum.
 
fdl_rounding_even_t fdl::detail::rounding_even_from_string (std::string_view s)
 Convert rounding even string to enum.
 
fdl_rounding_mode_t fdl::detail::rounding_mode_from_string (std::string_view s)
 Convert rounding mode string to enum.
 
Enum-to-string (reverse mappings for builder/serialization)
const char * fdl::detail::fit_method_to_string (fdl_fit_method_t m)
 Convert fit method enum to canonical JSON string.
 
const char * fdl::detail::geometry_path_to_string (fdl_geometry_path_t p)
 Convert geometry path enum to canonical JSON string.
 
const char * fdl::detail::halign_to_string (fdl_halign_t h)
 Convert horizontal alignment enum to canonical JSON string.
 
const char * fdl::detail::valign_to_string (fdl_valign_t v)
 Convert vertical alignment enum to canonical JSON string.
 
const char * fdl::detail::rounding_even_to_string (fdl_rounding_even_t e)
 Convert rounding even enum to canonical JSON string.
 
const char * fdl::detail::rounding_mode_to_string (fdl_rounding_mode_t m)
 Convert rounding mode enum to canonical JSON string.
 

Detailed Description

Bidirectional string<->enum conversions for FDL enumerated types.

Each enum type has a from_string (for parsing) and to_string (for serialization) function. Unrecognized inputs return a sensible default.

Function Documentation

◆ fit_method_from_string()

fdl_fit_method_t fdl::detail::fit_method_from_string ( std::string_view  s)
inline

Convert fit method string to enum.

Default: FDL_FIT_METHOD_WIDTH.

Parameters
sString to convert ("width", "height", "fit_all", "fill").
Returns
Corresponding enum value.

◆ geometry_path_from_string()

fdl_geometry_path_t fdl::detail::geometry_path_from_string ( std::string_view  s)
inline

Convert geometry path string to enum.

Default: FDL_GEOMETRY_PATH_FRAMING_DIMENSIONS.

Parameters
sString to convert (e.g. "canvas.dimensions").
Returns
Corresponding enum value.

◆ halign_from_string()

fdl_halign_t fdl::detail::halign_from_string ( std::string_view  s)
inline

Convert horizontal alignment string to enum.

Default: FDL_HALIGN_CENTER.

Parameters
sString to convert ("left", "center", "right").
Returns
Corresponding enum value.

◆ valign_from_string()

fdl_valign_t fdl::detail::valign_from_string ( std::string_view  s)
inline

Convert vertical alignment string to enum.

Default: FDL_VALIGN_CENTER.

Parameters
sString to convert ("top", "center", "bottom").
Returns
Corresponding enum value.

◆ rounding_even_from_string()

fdl_rounding_even_t fdl::detail::rounding_even_from_string ( std::string_view  s)
inline

Convert rounding even string to enum.

Default: FDL_ROUNDING_EVEN_WHOLE.

Parameters
sString to convert ("even" or "whole").
Returns
Corresponding enum value.

◆ rounding_mode_from_string()

fdl_rounding_mode_t fdl::detail::rounding_mode_from_string ( std::string_view  s)
inline

Convert rounding mode string to enum.

Default: FDL_ROUNDING_MODE_ROUND.

Parameters
sString to convert ("up", "down", "round").
Returns
Corresponding enum value.

◆ fit_method_to_string()

const char * fdl::detail::fit_method_to_string ( fdl_fit_method_t  m)
inline

Convert fit method enum to canonical JSON string.

Parameters
mFit method enum value.
Returns
Static string literal.

◆ geometry_path_to_string()

const char * fdl::detail::geometry_path_to_string ( fdl_geometry_path_t  p)
inline

Convert geometry path enum to canonical JSON string.

Parameters
pGeometry path enum value.
Returns
Static string literal.

◆ halign_to_string()

const char * fdl::detail::halign_to_string ( fdl_halign_t  h)
inline

Convert horizontal alignment enum to canonical JSON string.

Parameters
hHorizontal alignment enum value.
Returns
Static string literal.

◆ valign_to_string()

const char * fdl::detail::valign_to_string ( fdl_valign_t  v)
inline

Convert vertical alignment enum to canonical JSON string.

Parameters
vVertical alignment enum value.
Returns
Static string literal.

◆ rounding_even_to_string()

const char * fdl::detail::rounding_even_to_string ( fdl_rounding_even_t  e)
inline

Convert rounding even enum to canonical JSON string.

Parameters
eRounding even enum value.
Returns
Static string literal.

◆ rounding_mode_to_string()

const char * fdl::detail::rounding_mode_to_string ( fdl_rounding_mode_t  m)
inline

Convert rounding mode enum to canonical JSON string.

Parameters
mRounding mode enum value.
Returns
Static string literal.