blob: 65b749e8b7f074c481cb40769d749836ced7cc55 [file] [log] [blame]
// Copyright (c) 2017 The vulkano developers
// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or
// https://www.apache.org/licenses/LICENSE-2.0> or the MIT
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>,
// at your option. All files in the project carrying such
// notice may not be copied, modified, or distributed except
// according to those terms.
use crate::pipeline::layout::PipelineLayout;
use std::error;
use std::fmt;
/// Checks whether push constants are compatible with the pipeline.
pub fn check_push_constants_validity<Pc>(
pipeline_layout: &PipelineLayout,
push_constants: &Pc,
) -> Result<(), CheckPushConstantsValidityError>
where
Pc: ?Sized,
{
// TODO
if !true {
return Err(CheckPushConstantsValidityError::IncompatiblePushConstants);
}
Ok(())
}
/// Error that can happen when checking push constants validity.
#[derive(Debug, Copy, Clone)]
pub enum CheckPushConstantsValidityError {
/// The push constants are incompatible with the pipeline layout.
IncompatiblePushConstants,
}
impl error::Error for CheckPushConstantsValidityError {}
impl fmt::Display for CheckPushConstantsValidityError {
#[inline]
fn fmt(&self, fmt: &mut fmt::Formatter) -> Result<(), fmt::Error> {
write!(
fmt,
"{}",
match *self {
CheckPushConstantsValidityError::IncompatiblePushConstants => {
"the push constants are incompatible with the pipeline layout"
}
}
)
}
}