mirror of
https://github.com/vulkano-rs/vulkano.git
synced 2024-11-22 06:45:23 +00:00
Use workspace lints (#2505)
* Use workspace lints * Use underscores for the lints, since they are canonically written that way * Put lints after features
This commit is contained in:
parent
15f60f02c9
commit
e9c650c966
18
Cargo.toml
18
Cargo.toml
@ -63,6 +63,24 @@ png = "0.17"
|
|||||||
rand = "0.8"
|
rand = "0.8"
|
||||||
ron = "0.8"
|
ron = "0.8"
|
||||||
|
|
||||||
|
[workspace.lints]
|
||||||
|
rust.missing_docs = "allow" # TODO: warn eventually
|
||||||
|
rust.rust_2018_idioms = "warn"
|
||||||
|
rust.rust_2024_compatibility = "allow" # TODO: warn eventually
|
||||||
|
clippy.missing_safety_doc = "allow" # TODO: warn eventually
|
||||||
|
clippy.trivially_copy_pass_by_ref = "warn"
|
||||||
|
# These lints are a bit too pedantic, so they're disabled here.
|
||||||
|
# They can be removed if they no longer happen in the future.
|
||||||
|
clippy.arc_with_non_send_sync = "allow"
|
||||||
|
clippy.collapsible_else_if = "allow"
|
||||||
|
clippy.collapsible_if = "allow"
|
||||||
|
clippy.len_without_is_empty = "allow"
|
||||||
|
clippy.needless_borrowed_reference = "allow"
|
||||||
|
clippy.nonminimal_bool = "allow"
|
||||||
|
clippy.result_large_err = "allow"
|
||||||
|
clippy.too_many_arguments = "allow"
|
||||||
|
clippy.type_complexity = "allow"
|
||||||
|
|
||||||
[profile.CI]
|
[profile.CI]
|
||||||
inherits = "dev"
|
inherits = "dev"
|
||||||
debug = 0
|
debug = 0
|
||||||
|
@ -27,3 +27,6 @@ vulkano = { workspace = true }
|
|||||||
[features]
|
[features]
|
||||||
shaderc-build-from-source = ["shaderc/build-from-source"]
|
shaderc-build-from-source = ["shaderc/build-from-source"]
|
||||||
shaderc-debug = []
|
shaderc-debug = []
|
||||||
|
|
||||||
|
[lints]
|
||||||
|
workspace = true
|
||||||
|
@ -225,8 +225,6 @@
|
|||||||
|
|
||||||
#![doc(html_logo_url = "https://raw.githubusercontent.com/vulkano-rs/vulkano/master/logo.png")]
|
#![doc(html_logo_url = "https://raw.githubusercontent.com/vulkano-rs/vulkano/master/logo.png")]
|
||||||
#![recursion_limit = "1024"]
|
#![recursion_limit = "1024"]
|
||||||
#![allow(clippy::needless_borrowed_reference)]
|
|
||||||
#![warn(rust_2018_idioms, rust_2021_compatibility)]
|
|
||||||
|
|
||||||
use crate::codegen::ShaderKind;
|
use crate::codegen::ShaderKind;
|
||||||
use ahash::HashMap;
|
use ahash::HashMap;
|
||||||
|
@ -16,3 +16,6 @@ readme = "../README.md"
|
|||||||
ahash = { workspace = true }
|
ahash = { workspace = true }
|
||||||
vulkano = { workspace = true }
|
vulkano = { workspace = true }
|
||||||
winit = { workspace = true }
|
winit = { workspace = true }
|
||||||
|
|
||||||
|
[lints]
|
||||||
|
workspace = true
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
#![allow(clippy::missing_safety_doc)]
|
|
||||||
#![warn(rust_2018_idioms, rust_2021_compatibility)]
|
|
||||||
|
|
||||||
pub mod context;
|
pub mod context;
|
||||||
pub mod renderer;
|
pub mod renderer;
|
||||||
pub mod window;
|
pub mod window;
|
||||||
|
@ -49,3 +49,6 @@ vk-parse = { workspace = true }
|
|||||||
default = ["macros"]
|
default = ["macros"]
|
||||||
macros = ["dep:vulkano-macros"]
|
macros = ["dep:vulkano-macros"]
|
||||||
document_unchecked = []
|
document_unchecked = []
|
||||||
|
|
||||||
|
[lints]
|
||||||
|
workspace = true
|
||||||
|
@ -3,7 +3,7 @@ use heck::ToUpperCamelCase;
|
|||||||
use proc_macro2::{Ident, TokenStream};
|
use proc_macro2::{Ident, TokenStream};
|
||||||
use quote::{format_ident, quote};
|
use quote::{format_ident, quote};
|
||||||
|
|
||||||
pub fn write(vk_data: &VkRegistryData) {
|
pub fn write(vk_data: &VkRegistryData<'_>) {
|
||||||
write_file(
|
write_file(
|
||||||
"errors.rs",
|
"errors.rs",
|
||||||
format!(
|
format!(
|
||||||
|
@ -26,7 +26,7 @@ fn conflicts_extensions(name: &str) -> &'static [&'static str] {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn write(vk_data: &VkRegistryData) {
|
pub fn write(vk_data: &VkRegistryData<'_>) {
|
||||||
write_device_extensions(vk_data);
|
write_device_extensions(vk_data);
|
||||||
write_instance_extensions(vk_data);
|
write_instance_extensions(vk_data);
|
||||||
}
|
}
|
||||||
@ -55,7 +55,7 @@ pub enum Requires {
|
|||||||
InstanceExtension(String),
|
InstanceExtension(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
fn write_device_extensions(vk_data: &VkRegistryData) {
|
fn write_device_extensions(vk_data: &VkRegistryData<'_>) {
|
||||||
write_file(
|
write_file(
|
||||||
"device_extensions.rs",
|
"device_extensions.rs",
|
||||||
format!(
|
format!(
|
||||||
@ -66,7 +66,7 @@ fn write_device_extensions(vk_data: &VkRegistryData) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn write_instance_extensions(vk_data: &VkRegistryData) {
|
fn write_instance_extensions(vk_data: &VkRegistryData<'_>) {
|
||||||
write_file(
|
write_file(
|
||||||
"instance_extensions.rs",
|
"instance_extensions.rs",
|
||||||
format!(
|
format!(
|
||||||
@ -890,7 +890,7 @@ fn extensions_members(ty: &str, extensions: &IndexMap<&str, &Extension>) -> Vec<
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn from_one_of(
|
fn from_one_of(
|
||||||
one_of: Vec<DependsExpression>,
|
one_of: Vec<DependsExpression<'_>>,
|
||||||
extensions: &IndexMap<&str, &Extension>,
|
extensions: &IndexMap<&str, &Extension>,
|
||||||
) -> Result<Vec<RequiresOneOf>, String> {
|
) -> Result<Vec<RequiresOneOf>, String> {
|
||||||
let mut requires_all_of = vec![RequiresOneOf::default()];
|
let mut requires_all_of = vec![RequiresOneOf::default()];
|
||||||
@ -979,14 +979,14 @@ fn parse_depends(depends: &str) -> Result<DependsExpression<'_>, String> {
|
|||||||
take_while1(|c: char| c.is_ascii_alphanumeric() || c == '_')(input)
|
take_while1(|c: char| c.is_ascii_alphanumeric() || c == '_')(input)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn term(input: &str) -> IResult<&str, DependsExpression> {
|
fn term(input: &str) -> IResult<&str, DependsExpression<'_>> {
|
||||||
alt((
|
alt((
|
||||||
name.map(DependsExpression::Name),
|
name.map(DependsExpression::Name),
|
||||||
delimited(complete::char('('), expression, complete::char(')')),
|
delimited(complete::char('('), expression, complete::char(')')),
|
||||||
))(input)
|
))(input)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn expression(input: &str) -> IResult<&str, DependsExpression> {
|
fn expression(input: &str) -> IResult<&str, DependsExpression<'_>> {
|
||||||
let (input, first) = term(input)?;
|
let (input, first) = term(input)?;
|
||||||
|
|
||||||
if let Some(input) = input.strip_prefix('+') {
|
if let Some(input) = input.strip_prefix('+') {
|
||||||
|
@ -50,7 +50,7 @@ fn required_by_extensions(name: &str) -> &'static [(&'static str, &'static str)]
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn write(vk_data: &VkRegistryData) {
|
pub fn write(vk_data: &VkRegistryData<'_>) {
|
||||||
let features_output = features_output(&features_members(&vk_data.types));
|
let features_output = features_output(&features_members(&vk_data.types));
|
||||||
let features_ffi_output =
|
let features_ffi_output =
|
||||||
features_ffi_output(&features_ffi_members(&vk_data.types, &vk_data.extensions));
|
features_ffi_output(&features_ffi_members(&vk_data.types, &vk_data.extensions));
|
||||||
|
@ -4,7 +4,7 @@ use proc_macro2::{Ident, TokenStream};
|
|||||||
use quote::{format_ident, quote};
|
use quote::{format_ident, quote};
|
||||||
use vk_parse::{Extension, ExtensionChild, InterfaceItem};
|
use vk_parse::{Extension, ExtensionChild, InterfaceItem};
|
||||||
|
|
||||||
pub fn write(vk_data: &VkRegistryData) {
|
pub fn write(vk_data: &VkRegistryData<'_>) {
|
||||||
let entry_fns_output = fns_output(
|
let entry_fns_output = fns_output(
|
||||||
&[],
|
&[],
|
||||||
"Entry",
|
"Entry",
|
||||||
|
@ -8,7 +8,7 @@ use vk_parse::{
|
|||||||
Enum, EnumSpec, Extension, ExtensionChild, Feature, Format, FormatChild, InterfaceItem,
|
Enum, EnumSpec, Extension, ExtensionChild, Feature, Format, FormatChild, InterfaceItem,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn write(vk_data: &VkRegistryData) {
|
pub fn write(vk_data: &VkRegistryData<'_>) {
|
||||||
write_file(
|
write_file(
|
||||||
"formats.rs",
|
"formats.rs",
|
||||||
format!(
|
format!(
|
||||||
|
@ -13,7 +13,7 @@ use quote::{format_ident, quote};
|
|||||||
use std::{collections::hash_map::Entry, fmt::Write as _};
|
use std::{collections::hash_map::Entry, fmt::Write as _};
|
||||||
use vk_parse::{Extension, Type, TypeMember, TypeMemberMarkup, TypeSpec};
|
use vk_parse::{Extension, Type, TypeMember, TypeMemberMarkup, TypeSpec};
|
||||||
|
|
||||||
pub fn write(vk_data: &VkRegistryData) {
|
pub fn write(vk_data: &VkRegistryData<'_>) {
|
||||||
let properties_output = properties_output(&properties_members(&vk_data.types));
|
let properties_output = properties_output(&properties_members(&vk_data.types));
|
||||||
let properties_ffi_output =
|
let properties_ffi_output =
|
||||||
properties_ffi_output(&properties_ffi_members(&vk_data.types, &vk_data.extensions));
|
properties_ffi_output(&properties_ffi_members(&vk_data.types, &vk_data.extensions));
|
||||||
@ -430,7 +430,7 @@ struct Member<'a> {
|
|||||||
len: Option<&'a str>,
|
len: Option<&'a str>,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn members(ty: &Type) -> Vec<Member> {
|
fn members(ty: &Type) -> Vec<Member<'_>> {
|
||||||
fn array_len(input: &str) -> IResult<&str, &str> {
|
fn array_len(input: &str) -> IResult<&str, &str> {
|
||||||
let (input, _) = take_until("[")(input)?;
|
let (input, _) = take_until("[")(input)?;
|
||||||
all_consuming(delimited(
|
all_consuming(delimited(
|
||||||
|
@ -15,7 +15,7 @@ use proc_macro2::TokenStream;
|
|||||||
use quote::{format_ident, quote};
|
use quote::{format_ident, quote};
|
||||||
use vk_parse::SpirvExtOrCap;
|
use vk_parse::SpirvExtOrCap;
|
||||||
|
|
||||||
pub fn write(vk_data: &VkRegistryData, grammar: &SpirvGrammar) {
|
pub fn write(vk_data: &VkRegistryData<'_>, grammar: &SpirvGrammar) {
|
||||||
let grammar_enumerants = grammar
|
let grammar_enumerants = grammar
|
||||||
.operand_kinds
|
.operand_kinds
|
||||||
.iter()
|
.iter()
|
||||||
|
@ -2,7 +2,7 @@ use super::{write_file, VkRegistryData};
|
|||||||
use proc_macro2::{Literal, TokenStream};
|
use proc_macro2::{Literal, TokenStream};
|
||||||
use quote::quote;
|
use quote::quote;
|
||||||
|
|
||||||
pub fn write(vk_data: &VkRegistryData) {
|
pub fn write(vk_data: &VkRegistryData<'_>) {
|
||||||
let version_output = version_output(vk_data.header_version);
|
let version_output = version_output(vk_data.header_version);
|
||||||
write_file(
|
write_file(
|
||||||
"version.rs",
|
"version.rs",
|
||||||
|
@ -2730,7 +2730,7 @@ impl RenderingInfo {
|
|||||||
if let (Some(depth_attachment_info), Some(stencil_attachment_info)) =
|
if let (Some(depth_attachment_info), Some(stencil_attachment_info)) =
|
||||||
(depth_attachment, stencil_attachment)
|
(depth_attachment, stencil_attachment)
|
||||||
{
|
{
|
||||||
if &depth_attachment_info.image_view != &stencil_attachment_info.image_view {
|
if depth_attachment_info.image_view != stencil_attachment_info.image_view {
|
||||||
return Err(Box::new(ValidationError {
|
return Err(Box::new(ValidationError {
|
||||||
problem: "`depth_attachment` and `stencil_attachment` are both `Some`, but \
|
problem: "`depth_attachment` and `stencil_attachment` are both `Some`, but \
|
||||||
`depth_attachment.image_view` does not equal \
|
`depth_attachment.image_view` does not equal \
|
||||||
@ -2809,7 +2809,7 @@ impl RenderingInfo {
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
if &depth_resolve_info.image_view != &stencil_resolve_info.image_view {
|
if depth_resolve_info.image_view != stencil_resolve_info.image_view {
|
||||||
return Err(Box::new(ValidationError {
|
return Err(Box::new(ValidationError {
|
||||||
problem: "`depth_attachment` and `stencil_attachment` are both \
|
problem: "`depth_attachment` and `stencil_attachment` are both \
|
||||||
`Some`, and `depth_attachment.resolve_info` and \
|
`Some`, and `depth_attachment.resolve_info` and \
|
||||||
|
@ -22,17 +22,16 @@
|
|||||||
//! uses, you can add one of the [features](https://docs.rs/crate/winit/latest/features) that
|
//! uses, you can add one of the [features](https://docs.rs/crate/winit/latest/features) that
|
||||||
//! starts with `rwh` to `winit`. Currently, vulkano is compatible with `rwh_06`.
|
//! starts with `rwh` to `winit`. Currently, vulkano is compatible with `rwh_06`.
|
||||||
//!
|
//!
|
||||||
//!
|
|
||||||
//! 4. [Enumerate the physical devices] that are available on the `Instance`, and choose one that
|
//! 4. [Enumerate the physical devices] that are available on the `Instance`, and choose one that
|
||||||
//! is suitable for your program. A [`PhysicalDevice`] represents a Vulkan-capable device that
|
//! is suitable for your program. A [`PhysicalDevice`] represents a Vulkan-capable device that
|
||||||
//! is available on the system, such as a graphics card, a software implementation, etc.
|
//! is available on the system, such as a graphics card, a software implementation, etc.
|
||||||
//!
|
//!
|
||||||
//! 6. Create a [`Device`] and accompanying [`Queue`]s from the selected `PhysicalDevice`. The
|
//! 5. Create a [`Device`] and accompanying [`Queue`]s from the selected `PhysicalDevice`. The
|
||||||
//! `Device` is the most important object of Vulkan, and you need one to create almost every
|
//! `Device` is the most important object of Vulkan, and you need one to create almost every
|
||||||
//! other object. `Queue`s are created together with the `Device`, and are used to submit work
|
//! other object. `Queue`s are created together with the `Device`, and are used to submit work
|
||||||
//! to the device to make it do something.
|
//! to the device to make it do something.
|
||||||
//!
|
//!
|
||||||
//! 7. If you created a `Surface` earlier, create a [`Swapchain`]. This object contains special
|
//! 6. If you created a `Surface` earlier, create a [`Swapchain`]. This object contains special
|
||||||
//! images that correspond to the contents of the surface. Whenever you want to change the
|
//! images that correspond to the contents of the surface. Whenever you want to change the
|
||||||
//! contents (show something new to the user), you must first *acquire* one of these images from
|
//! contents (show something new to the user), you must first *acquire* one of these images from
|
||||||
//! the swapchain, fill it with the new contents (by rendering, copying or any other means), and
|
//! the swapchain, fill it with the new contents (by rendering, copying or any other means), and
|
||||||
@ -40,7 +39,7 @@
|
|||||||
//! of the surface change, such as when the size of the window changes. It then becomes
|
//! of the surface change, such as when the size of the window changes. It then becomes
|
||||||
//! necessary to create a new swapchain.
|
//! necessary to create a new swapchain.
|
||||||
//!
|
//!
|
||||||
//! 8. Record a [*command buffer*](command_buffer), containing commands that the device must
|
//! 7. Record a [*command buffer*](command_buffer), containing commands that the device must
|
||||||
//! execute. Then build the command buffer and submit it to a `Queue`.
|
//! execute. Then build the command buffer and submit it to a `Queue`.
|
||||||
//!
|
//!
|
||||||
//! Many different operations can be recorded to a command buffer, such as *draw*, *compute* and
|
//! Many different operations can be recorded to a command buffer, such as *draw*, *compute* and
|
||||||
@ -120,34 +119,6 @@
|
|||||||
//! [`vulkano-macros`]: vulkano_macros
|
//! [`vulkano-macros`]: vulkano_macros
|
||||||
//! [`serde`]: https://crates.io/crates/serde
|
//! [`serde`]: https://crates.io/crates/serde
|
||||||
|
|
||||||
//#![warn(missing_docs)] // TODO: activate
|
|
||||||
#![warn(
|
|
||||||
rust_2018_idioms,
|
|
||||||
rust_2021_compatibility,
|
|
||||||
clippy::trivially_copy_pass_by_ref
|
|
||||||
)]
|
|
||||||
// These lints are a bit too pedantic, so they're disabled here.
|
|
||||||
#![allow(
|
|
||||||
clippy::arc_with_non_send_sync,
|
|
||||||
clippy::collapsible_else_if,
|
|
||||||
clippy::collapsible_if,
|
|
||||||
clippy::derivable_impls, // TODO: remove
|
|
||||||
clippy::large_enum_variant,
|
|
||||||
clippy::len_without_is_empty,
|
|
||||||
clippy::missing_safety_doc, // TODO: remove
|
|
||||||
clippy::module_inception,
|
|
||||||
clippy::mutable_key_type,
|
|
||||||
clippy::needless_borrowed_reference,
|
|
||||||
clippy::new_without_default,
|
|
||||||
clippy::nonminimal_bool,
|
|
||||||
clippy::op_ref, // Seems to be bugged, the fixed code triggers a compile error
|
|
||||||
clippy::result_large_err,
|
|
||||||
clippy::too_many_arguments,
|
|
||||||
clippy::type_complexity,
|
|
||||||
clippy::vec_box,
|
|
||||||
clippy::wrong_self_convention
|
|
||||||
)]
|
|
||||||
|
|
||||||
pub use ash::vk::Handle;
|
pub use ash::vk::Handle;
|
||||||
use bytemuck::{Pod, Zeroable};
|
use bytemuck::{Pod, Zeroable};
|
||||||
pub use extensions::ExtensionProperties;
|
pub use extensions::ExtensionProperties;
|
||||||
|
Loading…
Reference in New Issue
Block a user