# aravis This crate contains (mostly) safe bindings to the [Aravis][aravis] library. The bindings are mostly auto-generated with the [`gir`][gir-tool] tool from the [gtk-rs][gtk-rs] project. This crate currently targets version 0.8.14 of the Aravis library. The autogenerated API uses extension traits to implement methods for many structs. This is done by the `gir` tool to emulate class inheritance. Practically, this means that you should also look the [`CameraExt`] trait if you want to know what you can do with a [`Camera`]. You can import the prelude to bring all available extension traits in scope: ```rust use aravis::prelude::*; ``` ## Migrating from 0.6 The API was regenerated with a new version of the `gir` tool. As a result, the public API has changed a bit: * Getters no-longer have a `get_` prefix, so a function that was called `get_foo()` is now simply called `foo()`. * Methods for classes without subclasses no-longer live in `*Ext` traits. For example, this means that all methods for [`Buffer`] objects are now directly implemented on the `Buffer` struct. This mostly means you can just remove the import of traits that no longer exist. ## Documentation copyright This documentation constist mainly of original documentation of the Aravis project. The copyright and license of the Aravis project apply to those parts. The [full original documentation][aravis-docs] is also available online and might help if the translation to Rust made things unclear. [aravis]: https://github.com/AravisProject/aravis [aravis-docs]: https://aravisproject.github.io/docs/aravis-0.8/ [gir-tool]: https://github.com/gtk-rs/gir [gtk-rs]: https://gtk-rs.org/ [`Buffer`]: https://docs.rs/aravis/latest/aravis/struct.Buffer.html [`Camera`]: https://docs.rs/aravis/latest/aravis/struct.Camera.html [`CameraExt`]: https://docs.rs/aravis/latest/aravis/trait.CameraExt.html