---
name: "nng_stat_type"
section: "3"
platform: "linux"
package: "libnng-dev"
version: "1.10.1-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/nng_stat_type"
---

# nng\_stat\_type(3)

get statistic type

## NAME

nng\_stat\_type - get statistic type

## SYNOPSIS

```
#include <nng/nng.h>
typedef struct nng_stat nng_stat;
enum {
        NNG_STAT_SCOPE,
        NNG_STAT_LEVEL,
        NNG_STAT_COUNTER,
        NNG_STAT_STRING,
        NNG_STAT_BOOLEAN,
        NNG_STAT_ID
};
int nng_stat_type(nng_stat *stat);
```

## DESCRIPTION

The `nng_stat_type()` function returns the type of the statistic *stat*.

The returned type will be one of the following values:

`NNG_STAT_SCOPE`

This is a placeholder providing scope, and carries no value on its own. Instead it is a parent node with child statistics (see `nng_stat_child()`.)

`NNG_STAT_LEVEL`

This is a numeric statistic, but its value is a level, so rate calculations based on changes in this value should not be considered significant.

`NNG_STAT_COUNTER`

This is a numeric statistic that represents an increasing count, typically of events, messages, or bytes. Frequently, it is interesting to consider changes in this statistic divided by time to obtain a rate. (For example, throughput might be calculated as changes in a byte counter divided by the interval over which the change occurred.)

`NNG_STAT_STRING`

This is a string, and carries no numeric value. Instead the `nng_stat_string()` function should be used to obtain the value.

`NNG_STAT_BOOLEAN`

This is a boolean value. The `nng_stat_value()` function will return zero to represent a `false` value, and one to represent a `true` value.

`NNG_STAT_ID`: The statistic is a numeric ID. These are generally immutable values that represent an identity that might be used with another interface.

**Tip**\

For `NNG_STAT_COUNTER` and `NNG_STAT_LEVEL` statistics, the `nng_stat_unit()` function will provide more detail about the units measured by the static.

## RETURN VALUES

The statistic type for *stat*.

## ERRORS

None.

## SEE ALSO

[libnng(3)](/libnng/3.md), [nng\_stats\_get(3)](/nng_stats_get/3.md), [nng\_stat\_string(3)](/nng_stat_string/3.md), [nng\_stat\_unit(3)](/nng_stat_unit/3.md), [nng\_stat\_value(3)](/nng_stat_value/3.md), [nng\_stat(5)](/nng_stat/5.md), [nng(7)](/nng/7.md)
