Struct spirq::Manifest [−][src]
A set of information used to describe variable typing and routing.
Implementations
impl Manifest
[src]
pub fn merge(&mut self, other: &Manifest) -> Result<()>
[src]
Merge metadata records in another manifest into the current one. If the
type bound to a interface location, a descriptor binding point or an
offset position in push constant block mismatches, the merge will fail
and the self
manifest will be corrupted.
pub fn merge_pipe(
&mut self,
other: &Manifest,
replace_in: bool,
replace_out: bool
) -> Result<()>
[src]
&mut self,
other: &Manifest,
replace_in: bool,
replace_out: bool
) -> Result<()>
Similar to merge
but optionally the current input interface variables
can be kept alive, and the output interface variables can be cleared and
replaced with entries in other
; and names are all discarded. This can
be used to merge pipeline stages.
pub fn get_push_const<'a>(&'a self) -> Option<&'a Type>
[src]
Get the push constant type.
pub fn get_input<'a>(&'a self, location: InterfaceLocation) -> Option<&'a Type>
[src]
Get the input interface variable type.
pub fn get_output<'a>(&'a self, location: InterfaceLocation) -> Option<&'a Type>
[src]
Get the output interface variable type.
pub fn get_desc<'a>(
&'a self,
desc_bind: DescriptorBinding
) -> Option<&'a DescriptorType>
[src]
&'a self,
desc_bind: DescriptorBinding
) -> Option<&'a DescriptorType>
Get the descriptor type at the given descriptor binding point.
pub fn get_push_const_name<'a>(&'a self) -> Option<&'a str>
[src]
Get the name that also refers to the push constant block.
pub fn get_input_name<'a>(
&'a self,
location: InterfaceLocation
) -> Option<&'a str>
[src]
&'a self,
location: InterfaceLocation
) -> Option<&'a str>
Get the name that also refers to the input at the given location.
pub fn get_output_name<'a>(
&'a self,
location: InterfaceLocation
) -> Option<&'a str>
[src]
&'a self,
location: InterfaceLocation
) -> Option<&'a str>
Get the name that also refers to the output at the given location.
pub fn get_desc_name<'a>(
&'a self,
desc_bind: DescriptorBinding
) -> Option<&'a str>
[src]
&'a self,
desc_bind: DescriptorBinding
) -> Option<&'a str>
Get the name that also refers to the descriptor at the given descriptor binding.
pub fn get_desc_access(
&self,
desc_bind: DescriptorBinding
) -> Option<AccessType>
[src]
&self,
desc_bind: DescriptorBinding
) -> Option<AccessType>
Get the valid access patterns of the descriptor at the given binding point. Currently only storage buffers and storage images can be accessed by write.
Note that the returned access type is the nominal access type declared
in SPIR-V. If a storage image is declared as ReadWrite
but is only
accessed by write, it is still considered a ReadWrite
descriptor.
pub fn resolve_input<S: AsRef<Sym>>(
&self,
sym: S
) -> Option<InterfaceVariableResolution<'_>>
[src]
&self,
sym: S
) -> Option<InterfaceVariableResolution<'_>>
Get the metadata of a input variable identified by a symbol.
pub fn resolve_output<S: AsRef<Sym>>(
&self,
sym: S
) -> Option<InterfaceVariableResolution<'_>>
[src]
&self,
sym: S
) -> Option<InterfaceVariableResolution<'_>>
Get the metadata of a output variable identified by a symbol.
pub fn resolve_desc<S: AsRef<Sym>>(
&self,
sym: S
) -> Option<DescriptorResolution<'_>>
[src]
&self,
sym: S
) -> Option<DescriptorResolution<'_>>
Get the metadata of a descriptor variable identified by a symbol. If the exact variable cannot be resolved, the descriptor part of the resolution will still be returned, if possible.
pub fn resolve_push_const<S: AsRef<Sym>>(
&self,
sym: S
) -> Option<PushConstantResolution<'_>>
[src]
&self,
sym: S
) -> Option<PushConstantResolution<'_>>
Get the metadata of a descriptor variable identified by a symbol. If the exact variable cannot be resolved, the descriptor part of the resolution will still be returned, if possible.
pub fn inputs<'a>(
&'a self
) -> impl Iterator<Item = InterfaceVariableResolution<'a>>
[src]
&'a self
) -> impl Iterator<Item = InterfaceVariableResolution<'a>>
List all input locations.
pub fn outputs<'a>(
&'a self
) -> impl Iterator<Item = InterfaceVariableResolution<'a>>
[src]
&'a self
) -> impl Iterator<Item = InterfaceVariableResolution<'a>>
List all output locations in this manifest.
pub fn descs<'a>(&'a self) -> impl Iterator<Item = DescriptorResolution<'a>>
[src]
List all descriptors in this manifest. In case of a descriptor pointing
to a buffer block, the outermost structure type will be filled in
member_var_res
.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Manifest
impl Send for Manifest
impl Sync for Manifest
impl Unpin for Manifest
impl UnwindSafe for Manifest
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,