/* (_not_ setting H5T_VISIT_SIMPLE and setting either H5T_VISIT_COMPLEX_FIRST or H5T_VISIT_COMPLEX_LAST will mean visiting all nodes _except_ "simple" "leafs" in the "tree" */
 
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Copyright by The HDF Group.                                               *
 * Copyright by the Board of Trustees of the University of Illinois.         *
 * All rights reserved.                                                      *
 *                                                                           *
 * This file is part of HDF5.  The full HDF5 copyright notice, including     *
 * terms governing use, modification, and redistribution, is contained in    *
 * the COPYING file, which can be found at the root of the source code       *
 * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.  *
 * If you do not have access to either file, you may request a copy from     *
 * help@hdfgroup.org.                                                        *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
 * Programmer:  Robb Matzke <matzke@llnl.gov>
 *      Monday, December  8, 1997
 *
 * Purpose: This file contains declarations which are visible only within
 *      the H5T package.  Source files outside the H5T package should
 *      include H5Tprivate.h instead.
 */
#if !(defined H5T_FRIEND || defined H5T_MODULE)
#error "Do not include this file outside the H5T package!"
#endif
#ifndef _H5Tpkg_H
#define _H5Tpkg_H
/*
 * Define this to enable debugging.
 */
#ifdef NDEBUG
#  undef H5T_DEBUG
#endif
/* Get package's private header */
#include "H5Tprivate.h"
/* Other private headers needed by this file */
#include "H5Fprivate.h"     /* Files                */
#include "H5FLprivate.h"    /* Free Lists               */
#include "H5Oprivate.h"     /* Object headers           */
/* Other public headers needed by this file */
#include "H5Spublic.h"      /* Dataspace functions          */
/* Length of debugging name buffer */
#define H5T_NAMELEN     32
/* Macro to ease detecting "complex" datatypes (i.e. those with base types or fields) */
#define H5T_IS_COMPLEX(t)       ((t) == H5T_COMPOUND || (t) == H5T_ENUM || (t) == H5T_VLEN || (t) == H5T_ARRAY)