33#define DATUM_BUF_SZ 32
87typedef struct datum_t {
88 ubyte bytes[DATUM_BUF_SZ];
113 das_datum* pThis,
const ubyte* pSrc,
das_val_type vt, uint32_t vsize,
120DAS_API
das_val_type das_datum_elemType(
const das_datum* pThis);
136DAS_API
bool das_datum_box(
137 das_datum* pThis,
const struct das_form* pForm,
const ubyte* pRun,
143DAS_API
const struct das_form* das_datum_form(
const das_datum* pThis);
148DAS_API
const ubyte* das_datum_run(
const das_datum* pThis);
170DAS_API
int das_datum_shape(
const das_datum* pThis, ptrdiff_t* pShape);
175DAS_API
size_t das_datum_nElems(
const das_datum* pThis);
185DAS_API
size_t das_datum_runBytes(
const das_datum* pThis);
199#define das_datum_valid(p) ((p)->vsize > 0)
216#define das_datum_islocal(p) \
217 ( ((p)->vt >= VT_MIN_LOCAL) && ((p)->vt <= VT_MAX_LOCAL) )
231DAS_API
bool das_datum_fromStr(das_datum* pThis,
const char* sStr);
243DAS_API
bool das_datum_fromDbl(das_datum* pThis,
double value,
das_units units);
265DAS_API
bool das_datum_wrapStr(das_datum* pTHis,
const char* sStr,
das_units units);
274DAS_API
bool das_datum_byteSeq(
275 das_datum* pThis, das_cbyte_seq seq,
das_units units
301DAS_API
char* das_datum_toStr(
302 const das_datum* pThis,
char* sStr,
size_t uLen,
int nFracDigits
310DAS_API
char* das_datum_toStrValOnly(
311 const das_datum* pThis,
char* sStr,
size_t uLen,
int nFracDigits
317 const das_datum* pThis,
char* sStr,
size_t uLen,
int nFracDigits,
333DAS_API
bool das_datum_toDbl(
const das_datum* pThis,
double* pOut);
352DAS_API
int das_datum_toDoubles(
353 const das_datum* pThis,
double* pOut,
int nMax
371DAS_API
bool das_datum_toEpoch(
372 const das_datum* pThis,
das_units epoch,
double* pResult
386DAS_API
bool das_datum_toTime(
const das_datum* pThis,
das_time* pDt);
393#define das_datum_asStr(dm) *((char**)&dm)
DAS_API char * das_datum_toStrValOnlySep(const das_datum *pThis, char *sStr, size_t uLen, int nFracDigits, const char *sSep)
Similar to das_datum_toStr, but can specify a separator for vectors.
DAS_API void das_datum_init(das_datum *pThis, const ubyte *pSrc, das_val_type vt, uint32_t vsize, das_units units)
General datum initialization.
const char * das_units
Handle SI and other units, with accommodations for Epoch systems, from units.h.
Definition units.h:141
das_val_type
Enumeration of value classes: what one whole externally indexable thing is – a number,...
Definition value.h:82
Basic date-time structure used throughout the Das1 & Das2 utilities.
Definition time.h:43
Defines units used for items in the stream, most notably time units that reference an epoch and a ste...
A generic value type for use in arrays, datums and variables.