ESPHome 2026.3.0
Loading...
Searching...
No Matches
esphome::api::ProtoVarInt Class Reference

Static varint parsing methods for the protobuf wire format. More...

#include <proto.h>

Static Public Member Functions

static ProtoVarIntResult ESPHOME_ALWAYS_INLINE parse_non_empty (const uint8_t *buffer, uint32_t len)
 Parse a varint from buffer.
 
static ProtoVarIntResult ESPHOME_ALWAYS_INLINE parse (const uint8_t *buffer, uint32_t len)
 Parse a varint from buffer (safe for empty buffers).
 

Static Protected Member Functions

static ProtoVarIntResult parse_slow (const uint8_t *buffer, uint32_t len) __attribute__((noinline))
 
static ProtoVarIntResult parse_wide (const uint8_t *buffer, uint32_t len, uint32_t result32) __attribute__((noinline))
 Continue parsing varint bytes 4-9 with 64-bit arithmetic.
 

Detailed Description

Static varint parsing methods for the protobuf wire format.

Definition at line 122 of file proto.h.

Member Function Documentation

◆ parse()

static ProtoVarIntResult ESPHOME_ALWAYS_INLINE esphome::api::ProtoVarInt::parse ( const uint8_t * buffer,
uint32_t len )
inlinestatic

Parse a varint from buffer (safe for empty buffers).

Returns result with consumed=0 on failure (empty buffer or truncated varint).

Definition at line 139 of file proto.h.

◆ parse_non_empty()

static ProtoVarIntResult ESPHOME_ALWAYS_INLINE esphome::api::ProtoVarInt::parse_non_empty ( const uint8_t * buffer,
uint32_t len )
inlinestatic

Parse a varint from buffer.

Caller must ensure len >= 1. Returns result with consumed=0 on failure (truncated multi-byte varint).

Definition at line 126 of file proto.h.

◆ parse_slow()

ProtoVarIntResult esphome::api::ProtoVarInt::parse_slow ( const uint8_t * buffer,
uint32_t len )
staticprotected

Definition at line 23 of file proto.cpp.

◆ parse_wide()

ProtoVarIntResult esphome::api::ProtoVarInt::parse_wide ( const uint8_t * buffer,
uint32_t len,
uint32_t result32 )
staticprotected

Continue parsing varint bytes 4-9 with 64-bit arithmetic.

Definition at line 46 of file proto.cpp.


The documentation for this class was generated from the following files: