#ifndef PS_ADDITIONALS_H
#define PS_ADDITIONALS_H

#include "pslib.h"

typedef char* psString;

// Get a value from the metadata that we believe should be metadata.
psMetadata *psMetadataLookupMD(bool *status, const psMetadata *md, const char *key);

// Get a value from the metadata that we believe should be a string
char *psMetadataLookupString(bool *status, const psMetadata *md, const char *key);

#if 0
pmChip *psMetadataLookupChip(bool *status, const psMetadata *md, const char *key);
pmCell *psMetadataLookupCell(bool *status, const psMetadata *md, const char *key);
#endif

// Print out the metadata
void psMetadataPrint(psMetadata *md, int level);

// Argument handling
int psArgumentVerbosity(int *argc, char **argv);
int psArgumentGet(int argc, char **argv, const char *arg);
bool psArgumentRemove(int argnum, int *argc, char **argv);
bool psArgumentParse(psMetadata *arguments, int *argc, char **argv);
void psArgumentHelp(psMetadata *arguments);

#endif
