// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.9 */

#ifndef PB_WPI_PROTO_WPIUTIL_NPB_H_INCLUDED
#define PB_WPI_PROTO_WPIUTIL_NPB_H_INCLUDED
#include <pb.h>
#include <span>
#include <string_view>

#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif

/* Struct definitions */
typedef struct _wpi_proto_TestProtoInner {
    static const pb_msgdesc_t* msg_descriptor(void) noexcept;
    static std::string_view msg_name(void) noexcept;
    static pb_filedesc_t file_descriptor(void) noexcept;

    pb_callback_t msg;
} wpi_proto_TestProtoInner;

typedef struct _wpi_proto_TestProto {
    static const pb_msgdesc_t* msg_descriptor(void) noexcept;
    static std::string_view msg_name(void) noexcept;
    static pb_filedesc_t file_descriptor(void) noexcept;

    double double_msg;
    float float_msg;
    int32_t int32_msg;
    int64_t int64_msg;
    uint32_t uint32_msg;
    uint64_t uint64_msg;
    int32_t sint32_msg;
    int64_t sint64_msg;
    uint32_t fixed32_msg;
    uint64_t fixed64_msg;
    int32_t sfixed32_msg;
    int64_t sfixed64_msg;
    bool bool_msg;
    pb_callback_t string_msg;
    pb_callback_t bytes_msg;
    pb_callback_t TestProtoInner_msg;
} wpi_proto_TestProto;

typedef struct _wpi_proto_OptionalTestProto {
    static const pb_msgdesc_t* msg_descriptor(void) noexcept;
    static std::string_view msg_name(void) noexcept;
    static pb_filedesc_t file_descriptor(void) noexcept;

    bool has_double_msg;
    double double_msg;
    bool has_float_msg;
    float float_msg;
    bool has_int32_msg;
    int32_t int32_msg;
    bool has_int64_msg;
    int64_t int64_msg;
    bool has_uint32_msg;
    uint32_t uint32_msg;
    bool has_uint64_msg;
    uint64_t uint64_msg;
    bool has_sint32_msg;
    int32_t sint32_msg;
    bool has_sint64_msg;
    int64_t sint64_msg;
    bool has_fixed32_msg;
    uint32_t fixed32_msg;
    bool has_fixed64_msg;
    uint64_t fixed64_msg;
    bool has_sfixed32_msg;
    int32_t sfixed32_msg;
    bool has_sfixed64_msg;
    int64_t sfixed64_msg;
    bool has_bool_msg;
    bool bool_msg;
    pb_callback_t string_msg;
    pb_callback_t bytes_msg;
    pb_callback_t TestProtoInner_msg;
} wpi_proto_OptionalTestProto;

typedef struct _wpi_proto_RepeatedTestProto {
    static const pb_msgdesc_t* msg_descriptor(void) noexcept;
    static std::string_view msg_name(void) noexcept;
    static pb_filedesc_t file_descriptor(void) noexcept;

    pb_callback_t double_msg;
    pb_callback_t float_msg;
    pb_callback_t int32_msg;
    pb_callback_t int64_msg;
    pb_callback_t uint32_msg;
    pb_callback_t uint64_msg;
    pb_callback_t sint32_msg;
    pb_callback_t sint64_msg;
    pb_callback_t fixed32_msg;
    pb_callback_t fixed64_msg;
    pb_callback_t sfixed32_msg;
    pb_callback_t sfixed64_msg;
    pb_callback_t bool_msg;
    pb_callback_t string_msg;
    pb_callback_t bytes_msg;
    pb_callback_t TestProtoInner_msg;
} wpi_proto_RepeatedTestProto;


/* Initializer values for message structs */
#define wpi_proto_TestProtoInner_init_default    {{{NULL}, NULL}}
#define wpi_proto_TestProto_init_default         {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}}
#define wpi_proto_OptionalTestProto_init_default {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}}
#define wpi_proto_RepeatedTestProto_init_default {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}}
#define wpi_proto_TestProtoInner_init_zero       {{{NULL}, NULL}}
#define wpi_proto_TestProto_init_zero            {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}}
#define wpi_proto_OptionalTestProto_init_zero    {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}}
#define wpi_proto_RepeatedTestProto_init_zero    {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}}

/* Field tags (for use in manual encoding/decoding) */
#define wpi_proto_TestProtoInner_msg_tag         1
#define wpi_proto_TestProto_double_msg_tag       1
#define wpi_proto_TestProto_float_msg_tag        2
#define wpi_proto_TestProto_int32_msg_tag        3
#define wpi_proto_TestProto_int64_msg_tag        4
#define wpi_proto_TestProto_uint32_msg_tag       5
#define wpi_proto_TestProto_uint64_msg_tag       6
#define wpi_proto_TestProto_sint32_msg_tag       7
#define wpi_proto_TestProto_sint64_msg_tag       8
#define wpi_proto_TestProto_fixed32_msg_tag      9
#define wpi_proto_TestProto_fixed64_msg_tag      10
#define wpi_proto_TestProto_sfixed32_msg_tag     11
#define wpi_proto_TestProto_sfixed64_msg_tag     12
#define wpi_proto_TestProto_bool_msg_tag         13
#define wpi_proto_TestProto_string_msg_tag       14
#define wpi_proto_TestProto_bytes_msg_tag        15
#define wpi_proto_TestProto_TestProtoInner_msg_tag 16
#define wpi_proto_OptionalTestProto_double_msg_tag 1
#define wpi_proto_OptionalTestProto_float_msg_tag 2
#define wpi_proto_OptionalTestProto_int32_msg_tag 3
#define wpi_proto_OptionalTestProto_int64_msg_tag 4
#define wpi_proto_OptionalTestProto_uint32_msg_tag 5
#define wpi_proto_OptionalTestProto_uint64_msg_tag 6
#define wpi_proto_OptionalTestProto_sint32_msg_tag 7
#define wpi_proto_OptionalTestProto_sint64_msg_tag 8
#define wpi_proto_OptionalTestProto_fixed32_msg_tag 9
#define wpi_proto_OptionalTestProto_fixed64_msg_tag 10
#define wpi_proto_OptionalTestProto_sfixed32_msg_tag 11
#define wpi_proto_OptionalTestProto_sfixed64_msg_tag 12
#define wpi_proto_OptionalTestProto_bool_msg_tag 13
#define wpi_proto_OptionalTestProto_string_msg_tag 14
#define wpi_proto_OptionalTestProto_bytes_msg_tag 15
#define wpi_proto_OptionalTestProto_TestProtoInner_msg_tag 16
#define wpi_proto_RepeatedTestProto_double_msg_tag 1
#define wpi_proto_RepeatedTestProto_float_msg_tag 2
#define wpi_proto_RepeatedTestProto_int32_msg_tag 3
#define wpi_proto_RepeatedTestProto_int64_msg_tag 4
#define wpi_proto_RepeatedTestProto_uint32_msg_tag 5
#define wpi_proto_RepeatedTestProto_uint64_msg_tag 6
#define wpi_proto_RepeatedTestProto_sint32_msg_tag 7
#define wpi_proto_RepeatedTestProto_sint64_msg_tag 8
#define wpi_proto_RepeatedTestProto_fixed32_msg_tag 9
#define wpi_proto_RepeatedTestProto_fixed64_msg_tag 10
#define wpi_proto_RepeatedTestProto_sfixed32_msg_tag 11
#define wpi_proto_RepeatedTestProto_sfixed64_msg_tag 12
#define wpi_proto_RepeatedTestProto_bool_msg_tag 13
#define wpi_proto_RepeatedTestProto_string_msg_tag 14
#define wpi_proto_RepeatedTestProto_bytes_msg_tag 15
#define wpi_proto_RepeatedTestProto_TestProtoInner_msg_tag 16

/* Struct field encoding specification for nanopb */
#define wpi_proto_TestProtoInner_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING,   msg,               1)
#define wpi_proto_TestProtoInner_CALLBACK pb_default_field_callback
#define wpi_proto_TestProtoInner_DEFAULT NULL

#define wpi_proto_TestProto_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, DOUBLE,   double_msg,        1) \
X(a, STATIC,   SINGULAR, FLOAT,    float_msg,         2) \
X(a, STATIC,   SINGULAR, INT32,    int32_msg,         3) \
X(a, STATIC,   SINGULAR, INT64,    int64_msg,         4) \
X(a, STATIC,   SINGULAR, UINT32,   uint32_msg,        5) \
X(a, STATIC,   SINGULAR, UINT64,   uint64_msg,        6) \
X(a, STATIC,   SINGULAR, SINT32,   sint32_msg,        7) \
X(a, STATIC,   SINGULAR, SINT64,   sint64_msg,        8) \
X(a, STATIC,   SINGULAR, FIXED32,  fixed32_msg,       9) \
X(a, STATIC,   SINGULAR, FIXED64,  fixed64_msg,      10) \
X(a, STATIC,   SINGULAR, SFIXED32, sfixed32_msg,     11) \
X(a, STATIC,   SINGULAR, SFIXED64, sfixed64_msg,     12) \
X(a, STATIC,   SINGULAR, BOOL,     bool_msg,         13) \
X(a, CALLBACK, SINGULAR, STRING,   string_msg,       14) \
X(a, CALLBACK, SINGULAR, BYTES,    bytes_msg,        15) \
X(a, CALLBACK, OPTIONAL, MESSAGE,  TestProtoInner_msg,  16)
#define wpi_proto_TestProto_CALLBACK pb_default_field_callback
#define wpi_proto_TestProto_DEFAULT NULL
#define wpi_proto_TestProto_TestProtoInner_msg_MSGTYPE wpi_proto_TestProtoInner

#define wpi_proto_OptionalTestProto_FIELDLIST(X, a) \
X(a, STATIC,   OPTIONAL, DOUBLE,   double_msg,        1) \
X(a, STATIC,   OPTIONAL, FLOAT,    float_msg,         2) \
X(a, STATIC,   OPTIONAL, INT32,    int32_msg,         3) \
X(a, STATIC,   OPTIONAL, INT64,    int64_msg,         4) \
X(a, STATIC,   OPTIONAL, UINT32,   uint32_msg,        5) \
X(a, STATIC,   OPTIONAL, UINT64,   uint64_msg,        6) \
X(a, STATIC,   OPTIONAL, SINT32,   sint32_msg,        7) \
X(a, STATIC,   OPTIONAL, SINT64,   sint64_msg,        8) \
X(a, STATIC,   OPTIONAL, FIXED32,  fixed32_msg,       9) \
X(a, STATIC,   OPTIONAL, FIXED64,  fixed64_msg,      10) \
X(a, STATIC,   OPTIONAL, SFIXED32, sfixed32_msg,     11) \
X(a, STATIC,   OPTIONAL, SFIXED64, sfixed64_msg,     12) \
X(a, STATIC,   OPTIONAL, BOOL,     bool_msg,         13) \
X(a, CALLBACK, OPTIONAL, STRING,   string_msg,       14) \
X(a, CALLBACK, OPTIONAL, BYTES,    bytes_msg,        15) \
X(a, CALLBACK, OPTIONAL, MESSAGE,  TestProtoInner_msg,  16)
#define wpi_proto_OptionalTestProto_CALLBACK pb_default_field_callback
#define wpi_proto_OptionalTestProto_DEFAULT NULL
#define wpi_proto_OptionalTestProto_TestProtoInner_msg_MSGTYPE wpi_proto_TestProtoInner

#define wpi_proto_RepeatedTestProto_FIELDLIST(X, a) \
X(a, CALLBACK, REPEATED, DOUBLE,   double_msg,        1) \
X(a, CALLBACK, REPEATED, FLOAT,    float_msg,         2) \
X(a, CALLBACK, REPEATED, INT32,    int32_msg,         3) \
X(a, CALLBACK, REPEATED, INT64,    int64_msg,         4) \
X(a, CALLBACK, REPEATED, UINT32,   uint32_msg,        5) \
X(a, CALLBACK, REPEATED, UINT64,   uint64_msg,        6) \
X(a, CALLBACK, REPEATED, SINT32,   sint32_msg,        7) \
X(a, CALLBACK, REPEATED, SINT64,   sint64_msg,        8) \
X(a, CALLBACK, REPEATED, FIXED32,  fixed32_msg,       9) \
X(a, CALLBACK, REPEATED, FIXED64,  fixed64_msg,      10) \
X(a, CALLBACK, REPEATED, SFIXED32, sfixed32_msg,     11) \
X(a, CALLBACK, REPEATED, SFIXED64, sfixed64_msg,     12) \
X(a, CALLBACK, REPEATED, BOOL,     bool_msg,         13) \
X(a, CALLBACK, REPEATED, STRING,   string_msg,       14) \
X(a, CALLBACK, REPEATED, BYTES,    bytes_msg,        15) \
X(a, CALLBACK, REPEATED, MESSAGE,  TestProtoInner_msg,  16)
#define wpi_proto_RepeatedTestProto_CALLBACK pb_default_field_callback
#define wpi_proto_RepeatedTestProto_DEFAULT NULL
#define wpi_proto_RepeatedTestProto_TestProtoInner_msg_MSGTYPE wpi_proto_TestProtoInner

/* Maximum encoded size of messages (where known) */
/* wpi_proto_TestProtoInner_size depends on runtime parameters */
/* wpi_proto_TestProto_size depends on runtime parameters */
/* wpi_proto_OptionalTestProto_size depends on runtime parameters */
/* wpi_proto_RepeatedTestProto_size depends on runtime parameters */


#endif
