rhyoea_common/
lib.rs

1// Rhyoea. Vulkan FFI bindings for Rust (Common code)
2// Copyright © 2020 Adrien Jeser <adrien@jeser.me>
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU Affero General Public License as
6// published by the Free Software Foundation, either version 3 of the
7// License, or (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU Affero General Public License for more details.
13//
14// You should have received a copy of the GNU Affero General Public License
15// along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
17//! Rhyoea is a Vulkan API bindings for Rust programming language
18//!
19//! Vulkan is a low-overhead, cross-platform 3D graphics and computing API.
20//! Vulkan targets high-performance realtime 3D graphics applications such as
21//! video games and interactive media across all platforms. Compared to OpenGL
22//! and `Direct3D` 11, and like `Direct3D` 12 and Metal, Vulkan is intended to
23//! offer higher performance and more balanced CPU/GPU usage.
24//!
25//! Environnement
26//! =============
27//!
28//! This section itemize how to prepare the developement environnement
29//!
30//! Rhyoea use the nightly rust version, with many components.
31//! You should install it by [`RustUp`](https://rustup.rs/)
32//! ```shell
33//! $ curl https://sh.rustup.rs -sSf | sh
34//! $ rustup install nightly
35//! ```
36//!
37//! How to use the library
38//! ----------------------
39//!
40//! Add this in your `Cargo.toml`:
41//!
42//! ```shell
43//! [dependencies]
44//! rhyoea-common = "^0"
45//! ```
46//!
47//! Developpement
48//! -------------
49//!
50//! ```shell
51//! $ git clone --recurse-submodules git@gitlab.com:ametha/rhyoea-common.git
52//! $ cd rhyoea-common
53//! $ rustup override set nightly # Set the nightly rust version
54//! $ cargo test # Run tests
55//! ```
56//!
57//! ### New features
58//!
59//! The implementation of a new feature follows the steps:
60//!
61//! 1. Create an issue on [`Gitlab`](https://gitlab.com/ametha/rhyoea-common/issues/new)
62//! 2. The maintener project assign and tag the issue
63//! 3. Create the merge request
64//! 4. Pull the branch
65//! 5. Work on the branch
66//! 6. Push the branch
67//! 7. Send a notification to maintener project (@ajeser)
68//! 8. Merge the request
69
70#![deny(warnings)]
71#![deny(absolute_paths_not_starting_with_crate)]
72#![deny(anonymous_parameters)]
73#![deny(bare_trait_objects)]
74#![deny(box_pointers)]
75#![deny(deprecated_in_future)]
76#![deny(elided_lifetimes_in_paths)]
77#![deny(explicit_outlives_requirements)]
78#![deny(keyword_idents)]
79#![deny(missing_copy_implementations)]
80#![deny(missing_debug_implementations)]
81#![deny(missing_docs)]
82#![deny(missing_crate_level_docs)]
83#![deny(private_doc_tests)]
84#![deny(single_use_lifetimes)]
85#![deny(trivial_casts)]
86#![deny(trivial_numeric_casts)]
87#![deny(unreachable_pub)]
88#![deny(unused_extern_crates)]
89#![deny(unused_import_braces)]
90#![deny(unused_labels)]
91#![deny(unused_lifetimes)]
92#![deny(unused_qualifications)]
93#![deny(unused_results)]
94//#![deny(missing_doc_code_examples)]
95#![cfg_attr(feature = "cargo-clippy", deny(clippy::all))]
96#![cfg_attr(feature = "cargo-clippy", deny(clippy::pedantic))]
97#![cfg_attr(feature = "cargo-clippy", deny(clippy::nursery))]
98#![cfg_attr(feature = "cargo-clippy", deny(clippy::cargo))]
99
100pub mod ffi;
101pub mod helpers;
102pub mod pattern;