0.26.2
------
- Included `missing-docs` lint suppression on generated skeleton
- Updated `libbpf-sys` dependency to `1.7.0`


0.26.1
------
- Added `SkeletonBuilder::reference_obj` for enabling generate skeleton
  to reference an object file instead of embedding it


0.26.0
------
- Fixed Rust type generation for trailing bitfields in composite C types
- Fixed handling of `XxxSkelBuilder::obj_builder` customizations when
  using `open()` constructor
- Allowlisted `libbpf-sys` `1.6.3`


0.26.0-beta.1
-------------
- Allowlisted `libbpf-sys` `1.6.1`


0.26.0-beta.0
-------------
- Moved BPF object content in generated skeletons into `.bpf.objs` section
  allowing easy extraction from the final binary
- Bumped minimum Rust version to `1.82`


0.25.0
------
- Adjusted all `<xxx>_data` BPF map skeleton members to be `Option`s
- Adjusted numbering of generated Rust structs for anonymous C types to be
  less fragile in the presence of type additions
- Removed `SkeletonBuilder::skip_clang_version_check` and
  `SkeletonBuilder::debug`
- Removed `--skip-clang-version-checks` option of `libbpf build`
  sub-command
- Replaced `--debug` option of `libbpf` sub-command with `-v` /
  `--verbose`
  - Removed `--quiet` option of `libbpf make` sub-command
- Replaced `CompilationOutput` type with `tracing` based solution using
  newly added `util::CargoWarningFormatter`
- Fixed handling of multiple types of same name in BTF by enumerating
  them in the generated skeleton
- Bumped minimum Rust version to `1.78`


0.25.0-beta.1
-------------
- Fixed skeleton generation when `enum64` types are present


0.25.0-beta.0
-------------
- Represent C enums with custom types and const fields
  - Adjusted Rust correspondents in generated skeletons to no longer be
    wrapped in `MaybeUninit`
- Adjusted `SkeletonBuilder::build*` methods to return
  `CompilationOutput` on success


0.24.7
------
- Fixed handling of empty unions in BPF types


0.24.6
------
- Fixed incorrect Cargo environment variable query when used in build
  script context


0.24.4
------
- Adjusted skeleton generation code to work around `libbpf` forward
  compatibility issue when an old system `libbpf` is being used instead
  of the vendored copy


0.24.3
------
- Silenced possible `clippy` reported warnings in generated skeleton
  when BPF object file does not contain any maps


0.24.2
------
- Fixed panic on "open" of skeleton with `kconfig` map


0.24.1
------
- Fixed missing BPF object cleanup after skeleton destruction


0.24.0
------
- Reworked generated skeletons to contain publicly accessible maps and
  program members, no longer requiring method calls
- Adjusted skeleton creation logic to generate Rust types for all types
  available in BPF
- Renamed module for generated Rust types from `<project>_types` to just `types`
- Renamed generated `struct_ops` type to `StructOps` and moved it out of `types`
  module
- Fixed Rust code generation logic to properly create `Default` impl for arrays
  of pointers


0.23.3
------
- Fixed generation of `Default` impl in presence of large padding arrays


0.23.1
------
- Added "import injection" escape hatch to generated skeletons


0.23.0
------
- Removed `novendor` feature in favor of having disableable default
  feature
- Added support for `struct_ops` shadow objects for generated skeletons
- Added support for handling custom data sections in generated skeletons
- Adjusted `SkeletonBuilder::clang_args` to accept an iterator of
  arguments instead of a string
- Added `--clang-args` argument to `make` and `build` sub-commands
- Put all generated types into single `<project>_types` module as opposed to
  having multiple modules for various sections (`.bss`, `.rodata`, etc.)
- Fixed potential naming issues by escaping reserved keywords used in
  identifiers
- Fixed potential unsoundness issues in generated skeletons by wrapping "unsafe"
  types in `MaybeUninit`
- Added pointer based ("raw") access to datasec type to generated skeletons
- Added better handling for bitfields to code generation logic
- Updated `libbpf-sys` dependency to `1.4.0`
- Bumped minimum Rust version to `1.71`


0.22.0
------
- Adjusted skeleton creation logic to generate shared and exclusive datasec
  accessor functions
- Removed `Error` enum in favor of `anyhow::Error`
- Bumped minimum Rust version to `1.65`


0.21.2
------
- Added `Default` impl for generated `struct` types containing pointers
- Fixed handling of function prototype type declaration inference in BTF and
  skeleton generation
- Improved error reporting in build script usage
- Bumped minimum Rust version to `1.64`


0.21.1
------
- Adjusted named padding members in generated types to have `pub` visibility


0.21.0
------
- Adjusted skeleton generation code to ensure implementation of `libbpf-rs`'s
  `SkelBuilder`, `OpenSkel`, and `Skel` traits
- Improved error reporting on BPF C file compilation failure


0.20.1
------
- Switched over to using `libbpf-rs`'s BTF support internally for skeleton
  generation
- Fixed potential build failures on systems defaulting to stack
  protector usage by passing `-fno-stack-protector` to `clang`


0.20.0
------
- Fixed mismatch in size of generated types with respect to corresponding C
  types
- Fixed generated skeleton potentially being unstable (changing each time)
- Implemented `Sync` for generated skeletons
- Made formatting using `rustfmt` optional
- Updated various dependencies


0.19.1
------
- Initial documented release
