file_utils.h#

Helpers in this header cover path-based protobuf loading utilities for the C++ API, including onnx_light::LoadProtoFromPath().

namespace onnx_light

Alias that makes onnx-light headers compatible with code that references ONNX_LIGHT_NAMESPACE (the macro used in the standard onnx package).

Set to ONNX_LIGHT_NAMESPACE so both names resolve to the same namespace.

Symbol-visibility attribute for the public onnx-light C++ API.

Defined as empty because onnx-light does not require explicit __declspec(dllexport) or __attribute__((visibility("default"))) annotations — visibility is controlled at the shared-library level. The macro is provided so that vendored ONNX headers that decorate their declarations with ONNX_API compile without modification.

Namespace alias so that ONNX C++ code (and consumers such as onnxruntime) that refers to the literal onnx namespace — rather than the ONNX_NAMESPACE macro — resolves to the onnx-light namespace. The standard onnx package lives in namespace onnx; onnx-light uses onnx_light (via ONNX_LIGHT_NAMESPACE), so this alias keeps onnx-light a true drop-in. It is only introduced when the onnx-light namespace differs from onnx.

Functions

template<typename T>
void LoadProtoFromPath(const std::string &proto_path, T &proto)#

Loads a serialized protobuf message from a filesystem path.

Opens the file at proto_path in binary mode, reads its full contents, and parses them into proto with ParseProtoFromBytes().

Template Parameters:

T – Protobuf-like message type accepted by ParseProtoFromBytes().

Parameters:
  • proto_path – UTF-8 path to the serialized protobuf file.

  • proto – Destination message that receives the parsed file contents.

Throws:

std::runtime_error – Throws when the file cannot be opened, cannot be read, or cannot be parsed as the requested protobuf type.