Struct screen_13::driver::physical_device::Vulkan10Features
source · pub struct Vulkan10Features {Show 42 fields
pub robust_buffer_access: bool,
pub full_draw_index_uint32: bool,
pub image_cube_array: bool,
pub independent_blend: bool,
pub geometry_shader: bool,
pub tessellation_shader: bool,
pub sample_rate_shading: bool,
pub dual_src_blend: bool,
pub logic_op: bool,
pub multi_draw_indirect: bool,
pub draw_indirect_first_instance: bool,
pub depth_clamp: bool,
pub depth_bias_clamp: bool,
pub fill_mode_non_solid: bool,
pub depth_bounds: bool,
pub wide_lines: bool,
pub large_points: bool,
pub alpha_to_one: bool,
pub multi_viewport: bool,
pub sampler_anisotropy: bool,
pub texture_compression_etc2: bool,
pub texture_compression_astc_ldr: bool,
pub texture_compression_bc: bool,
pub vertex_pipeline_stores_and_atomics: bool,
pub fragment_stores_and_atomics: bool,
pub shader_tessellation_and_geometry_point_size: bool,
pub shader_image_gather_extended: bool,
pub shader_storage_image_extended_formats: bool,
pub shader_storage_image_multisample: bool,
pub shader_storage_image_read_without_format: bool,
pub shader_storage_image_write_without_format: bool,
pub shader_uniform_buffer_array_dynamic_indexing: bool,
pub shader_sampled_image_array_dynamic_indexing: bool,
pub shader_storage_buffer_array_dynamic_indexing: bool,
pub shader_storage_image_array_dynamic_indexing: bool,
pub shader_clip_distance: bool,
pub shader_cull_distance: bool,
pub shader_float64: bool,
pub shader_int64: bool,
pub shader_int16: bool,
pub shader_resource_min_lod: bool,
pub variable_multisample_rate: bool,
}
Expand description
Description of Vulkan features.
See
VkPhysicalDeviceFeatures
manual page.
Fields§
§robust_buffer_access: bool
Specifies that accesses to buffers are bounds-checked against the range of the buffer descriptor.
full_draw_index_uint32: bool
Specifies the full 32-bit range of indices is supported for indexed draw calls when using a
VkIndexType
of VK_INDEX_TYPE_UINT32
.
maxDrawIndexedIndexValue
is the maximum index value that may be used (aside from the
primitive restart index, which is always 2^32 - 1 when the VkIndexType is
VK_INDEX_TYPE_UINT32
).
If this feature is supported, maxDrawIndexedIndexValue
must be 2^32 - 1; otherwise it must
be no smaller than 2^24 - 1. See maxDrawIndexedIndexValue.
image_cube_array: bool
Specifies whether image views with a VkImageViewType
of VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
can be created, and that the corresponding SampledCubeArray
and ImageCubeArray
SPIR-V
capabilities can be used in shader code.
independent_blend: bool
Specifies whether the VkPipelineColorBlendAttachmentState
settings are controlled
independently per-attachment.
If this feature is not enabled, the VkPipelineColorBlendAttachmentState
settings for all
color attachments must be identical. Otherwise, a different
VkPipelineColorBlendAttachmentState
can be provided for each bound color attachment.
geometry_shader: bool
Specifies whether geometry shaders are supported.
If this feature is not enabled, the VK_SHADER_STAGE_GEOMETRY_BIT
and
VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
enum values must not be used.
This also specifies whether shader modules can declare the Geometry
capability.
tessellation_shader: bool
Specifies whether tessellation control and evaluation shaders are supported.
If this feature is not enabled, the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
,
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
,
VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
,
VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
, and
VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
enum values must not be used.
This also specifies whether shader modules can declare the Tessellation
capability.
sample_rate_shading: bool
Specifies whether Sample Shading and multisample interpolation are supported.
If this feature is not enabled, the sampleShadingEnable
member of the
VkPipelineMultisampleStateCreateInfo
structure must be set to VK_FALSE
and the
minSampleShading
member is ignored.
This also specifies whether shader modules can declare the SampleRateShading
capability.
dual_src_blend: bool
Specifies whether blend operations which take two sources are supported.
If this feature is not enabled, the VK_BLEND_FACTOR_SRC1_COLOR
,
VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
, VK_BLEND_FACTOR_SRC1_ALPHA
, and
VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
enum values must not be used as source or destination
blending factors.
See dual-source blending.
logic_op: bool
Specifies whether logic operations are supported.
If this feature is not enabled, the logicOpEnable
member of the
VkPipelineColorBlendStateCreateInfo
structure must be set to VK_FALSE
, and the logicOp
member is ignored.
multi_draw_indirect: bool
Specifies whether multiple draw indirect is supported.
If this feature is not enabled, the drawCount
parameter to the vkCmdDrawIndirect
and
vkCmdDrawIndexedIndirect
commands must be 0
or 1
. The maxDrawIndirectCount
member of the
VkPhysicalDeviceLimits
structure must also be 1
if this feature is not supported.
See maxDrawIndirectCount.
draw_indirect_first_instance: bool
Specifies whether indirect drawing calls support the firstInstance
parameter.
If this feature is not enabled, the firstInstance
member of all VkDrawIndirectCommand
and VkDrawIndexedIndirectCommand
structures that are provided to the vkCmdDrawIndirect
and vkCmdDrawIndexedIndirect
commands must be 0
.
depth_clamp: bool
Specifies whether depth clamping is supported.
If this feature is not enabled, the depthClampEnable
member of the
VkPipelineRasterizationStateCreateInfo
structure must be set to VK_FALSE
. Otherwise,
setting depthClampEnable
to VK_TRUE
will enable depth clamping.
depth_bias_clamp: bool
Specifies whether depth bias clamping is supported.
If this feature is not enabled, the depthBiasClamp
member of the
VkPipelineRasterizationStateCreateInfo
structure must be set to 0.0
unless the
VK_DYNAMIC_STATE_DEPTH_BIAS
dynamic state is enabled, and the depthBiasClamp
parameter
to vkCmdSetDepthBias
must be set to 0.0
.
fill_mode_non_solid: bool
Specifies whether point and wireframe fill modes are supported.
If this feature is not enabled, the VK_POLYGON_MODE_POINT
and VK_POLYGON_MODE_LINE
enum
values must not be used.
depth_bounds: bool
Specifies whether depth bounds tests are supported.
If this feature is not enabled, the depthBoundsTestEnable
member of the
VkPipelineDepthStencilStateCreateInfo
structure must be set to VK_FALSE
. When
depthBoundsTestEnable
is set to VK_FALSE
, the minDepthBounds
and maxDepthBounds
members of the VkPipelineDepthStencilStateCreateInfo
structure are ignored.
wide_lines: bool
Specifies whether lines with width other than 1.0
are supported.
If this feature is not enabled, the lineWidth
member of the
VkPipelineRasterizationStateCreateInfo
structure must be set to 1.0
unless the
VK_DYNAMIC_STATE_LINE_WIDTH
dynamic state is enabled, and the lineWidth
parameter to
vkCmdSetLineWidth
must be set to 1.0
.
When this feature is supported, the range and granularity of supported line widths are
indicated by the lineWidthRange
and lineWidthGranularity
members of the
VkPhysicalDeviceLimits
structure, respectively.
large_points: bool
Specifies whether points with size greater than 1.0
are supported.
If this feature is not enabled, only a point size of 1.0
written by a shader is supported.
The range and granularity of supported point sizes are indicated by the pointSizeRange
and
pointSizeGranularity
members of the VkPhysicalDeviceLimits
structure, respectively.
alpha_to_one: bool
Specifies whether the implementation is able to replace the alpha value of the fragment shader color output in the multisample coverage fragment operation.
If this feature is not enabled, then the alphaToOneEnable
member of the
VkPipelineMultisampleStateCreateInfo
structure must be set to VK_FALSE
. Otherwise
setting alphaToOneEnable
to VK_TRUE
will enable alpha-to-one behavior.
multi_viewport: bool
Specifies whether more than one viewport is supported.
If this feature is not enabled:
- The
viewportCount
andscissorCount
members of theVkPipelineViewportStateCreateInfo
structure must be set to1
. - The
firstViewport
andviewportCount
parameters to thevkCmdSetViewport
command must be set to0
and1
, respectively. - The
firstScissor
andscissorCount
parameters to thevkCmdSetScissor
command must be set to0
and1
, respectively.
sampler_anisotropy: bool
Specifies whether anisotropic filtering is supported.
If this feature is not enabled, the anisotropyEnable
member of the VkSamplerCreateInfo
structure must be VK_FALSE
.
texture_compression_etc2: bool
Specifies whether all of the ETC2 and EAC compressed texture formats are supported.
If this feature is enabled, then the VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
,
VK_FORMAT_FEATURE_BLIT_SRC_BIT
and VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
features must be supported in optimalTilingFeatures
for the following formats:
- VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK
- VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK
- VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK
- VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK
- VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK
- VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
- VK_FORMAT_EAC_R11_UNORM_BLOCK
- VK_FORMAT_EAC_R11_SNORM_BLOCK
- VK_FORMAT_EAC_R11G11_UNORM_BLOCK
- VK_FORMAT_EAC_R11G11_SNORM_BLOCK
To query for additional properties, or if the feature is not enabled,
vkGetPhysicalDeviceFormatProperties
and vkGetPhysicalDeviceImageFormatProperties
can be
used to check for supported properties of individual formats as normal.
texture_compression_astc_ldr: bool
Specifies whether all of the ASTC LDR compressed texture formats are supported.
If this feature is enabled, then the VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
,
VK_FORMAT_FEATURE_BLIT_SRC_BIT
and VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
features must be supported in optimalTilingFeatures
for the following formats:
- VK_FORMAT_ASTC_4x4_UNORM_BLOCK
- VK_FORMAT_ASTC_4x4_SRGB_BLOCK
- VK_FORMAT_ASTC_5x4_UNORM_BLOCK
- VK_FORMAT_ASTC_5x4_SRGB_BLOCK
- VK_FORMAT_ASTC_5x5_UNORM_BLOCK
- VK_FORMAT_ASTC_5x5_SRGB_BLOCK
- VK_FORMAT_ASTC_6x5_UNORM_BLOCK
- VK_FORMAT_ASTC_6x5_SRGB_BLOCK
- VK_FORMAT_ASTC_6x6_UNORM_BLOCK
- VK_FORMAT_ASTC_6x6_SRGB_BLOCK
- VK_FORMAT_ASTC_8x5_UNORM_BLOCK
- VK_FORMAT_ASTC_8x5_SRGB_BLOCK
- VK_FORMAT_ASTC_8x6_UNORM_BLOCK
- VK_FORMAT_ASTC_8x6_SRGB_BLOCK
- VK_FORMAT_ASTC_8x8_UNORM_BLOCK
- VK_FORMAT_ASTC_8x8_SRGB_BLOCK
- VK_FORMAT_ASTC_10x5_UNORM_BLOCK
- VK_FORMAT_ASTC_10x5_SRGB_BLOCK
- VK_FORMAT_ASTC_10x6_UNORM_BLOCK
- VK_FORMAT_ASTC_10x6_SRGB_BLOCK
- VK_FORMAT_ASTC_10x8_UNORM_BLOCK
- VK_FORMAT_ASTC_10x8_SRGB_BLOCK
- VK_FORMAT_ASTC_10x10_UNORM_BLOCK
- VK_FORMAT_ASTC_10x10_SRGB_BLOCK
- VK_FORMAT_ASTC_12x10_UNORM_BLOCK
- VK_FORMAT_ASTC_12x10_SRGB_BLOCK
- VK_FORMAT_ASTC_12x12_UNORM_BLOCK
- VK_FORMAT_ASTC_12x12_SRGB_BLOCK
To query for additional properties, or if the feature is not enabled,
vkGetPhysicalDeviceFormatProperties
and vkGetPhysicalDeviceImageFormatProperties
can be
used to check for supported properties of individual formats as normal.
texture_compression_bc: bool
Specifies whether all of the BC compressed texture formats are supported.
If this feature is enabled, then the VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
,
VK_FORMAT_FEATURE_BLIT_SRC_BIT
and VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
features must be supported in optimalTilingFeatures
for the following formats:
- VK_FORMAT_BC1_RGB_UNORM_BLOCK
- VK_FORMAT_BC1_RGB_SRGB_BLOCK
- VK_FORMAT_BC1_RGBA_UNORM_BLOCK
- VK_FORMAT_BC1_RGBA_SRGB_BLOCK
- VK_FORMAT_BC2_UNORM_BLOCK
- VK_FORMAT_BC2_SRGB_BLOCK
- VK_FORMAT_BC3_UNORM_BLOCK
- VK_FORMAT_BC3_SRGB_BLOCK
- VK_FORMAT_BC4_UNORM_BLOCK
- VK_FORMAT_BC4_SNORM_BLOCK
- VK_FORMAT_BC5_UNORM_BLOCK
- VK_FORMAT_BC5_SNORM_BLOCK
- VK_FORMAT_BC6H_UFLOAT_BLOCK
- VK_FORMAT_BC6H_SFLOAT_BLOCK
- VK_FORMAT_BC7_UNORM_BLOCK
- VK_FORMAT_BC7_SRGB_BLOCK
To query for additional properties, or if the feature is not enabled,
vkGetPhysicalDeviceFormatProperties
and vkGetPhysicalDeviceImageFormatProperties
can be
used to check for supported properties of individual formats as normal.
vertex_pipeline_stores_and_atomics: bool
Specifies whether storage buffers and images support stores and atomic operations in the vertex, tessellation, and geometry shader stages.
If this feature is not enabled, all storage image, storage texel buffer, and storage buffer
variables used by these stages in shader modules must be decorated with the NonWritable
decoration (or the readonly
memory qualifier in GLSL).
fragment_stores_and_atomics: bool
Specifies whether storage buffers and images support stores and atomic operations in the fragment shader stage.
If this feature is not enabled, all storage image, storage texel buffer, and storage buffer
variables used by the fragment stage in shader modules must be decorated with the
NonWritable
decoration (or the readonly
memory qualifier in GLSL).
shader_tessellation_and_geometry_point_size: bool
Specifies whether the PointSize
built-in decoration is available in the tessellation
control, tessellation evaluation, and geometry shader stages.
If this feature is not enabled, members decorated with the PointSize
built-in decoration
must not be read from or written to and all points written from a tessellation or geometry
shader will have a size of 1.0
.
This also specifies whether shader modules can declare the TessellationPointSize
capability for tessellation control and evaluation shaders, or if the shader modules can
declare the GeometryPointSize
capability for geometry shaders.
An implementation supporting this feature must also support one or both of the
tessellationShader
or geometryShader
features.
shader_image_gather_extended: bool
Specifies whether the extended set of image gather instructions are available in shader code.
If this feature is not enabled, the OpImage*Gather
instructions do not support the
Offset
and ConstOffsets
operands.
This also specifies whether shader modules can declare the ImageGatherExtended
capability.
shader_storage_image_extended_formats: bool
Specifies whether all the “storage image extended formats” below are supported.
If this feature is supported, then the VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
must be
supported in optimalTilingFeatures
for the following formats:
- VK_FORMAT_R16G16_SFLOAT
- VK_FORMAT_B10G11R11_UFLOAT_PACK32
- VK_FORMAT_R16_SFLOAT
- VK_FORMAT_R16G16B16A16_UNORM
- VK_FORMAT_A2B10G10R10_UNORM_PACK32
- VK_FORMAT_R16G16_UNORM
- VK_FORMAT_R8G8_UNORM
- VK_FORMAT_R16_UNORM
- VK_FORMAT_R8_UNORM
- VK_FORMAT_R16G16B16A16_SNORM
- VK_FORMAT_R16G16_SNORM
- VK_FORMAT_R8G8_SNORM
- VK_FORMAT_R16_SNORM
- VK_FORMAT_R8_SNORM
- VK_FORMAT_R16G16_SINT
- VK_FORMAT_R8G8_SINT
- VK_FORMAT_R16_SINT
- VK_FORMAT_R8_SINT
- VK_FORMAT_A2B10G10R10_UINT_PACK32
- VK_FORMAT_R16G16_UINT
- VK_FORMAT_R8G8_UINT
- VK_FORMAT_R16_UINT
- VK_FORMAT_R8_UINT
Note: shaderStorageImageExtendedFormats
feature only adds a guarantee of format support,
which is specified for the whole physical device. Therefore enabling or disabling the
feature via vkCreateDevice has no practical effect.
To query for additional properties, or if the feature is not supported,
vkGetPhysicalDeviceFormatProperties
and vkGetPhysicalDeviceImageFormatProperties
can be
used to check for supported properties of individual formats, as usual rules allow.
VK_FORMAT_R32G32_UINT
, VK_FORMAT_R32G32_SINT
, and VK_FORMAT_R32G32_SFLOAT
from
StorageImageExtendedFormats
SPIR-V capability, are already covered by core Vulkan
mandatory format support.
shader_storage_image_multisample: bool
Specifies whether multisampled storage images are supported.
If this feature is not enabled, images that are created with a usage that includes
VK_IMAGE_USAGE_STORAGE_BIT
must be created with samples equal to VK_SAMPLE_COUNT_1_BIT
.
This also specifies whether shader modules can declare the StorageImageMultisample
and
ImageMSArray
capabilities.
shader_storage_image_read_without_format: bool
Specifies whether storage images and storage texel buffers require a format qualifier to be specified when reading.
shaderStorageImageReadWithoutFormat
applies only to formats listed in the
storage without format
list.
shader_storage_image_write_without_format: bool
Specifies whether storage images and storage texel buffers require a format qualifier to be specified when writing.
shaderStorageImageWriteWithoutFormat
applies only to formats listed in the
storage without format
list.
shader_uniform_buffer_array_dynamic_indexing: bool
Specifies whether arrays of uniform buffers can be indexed by dynamically uniform integer expressions in shader code.
If this feature is not enabled, resources with a descriptor type of
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
must be
indexed only by constant integral expressions when aggregated into arrays in shader code.
This also specifies whether shader modules can declare the
UniformBufferArrayDynamicIndexing
capability.
shader_sampled_image_array_dynamic_indexing: bool
Specifies whether arrays of samplers or sampled images can be indexed by dynamically uniform integer expressions in shader code.
If this feature is not enabled, resources with a descriptor type of
VK_DESCRIPTOR_TYPE_SAMPLER
, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
, or
VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
must be indexed only by constant integral expressions
when aggregated into arrays in shader code.
This also specifies whether shader modules can declare the
SampledImageArrayDynamicIndexing
capability.
shader_storage_buffer_array_dynamic_indexing: bool
Specifies whether arrays of storage buffers can be indexed by dynamically uniform integer expressions in shader code.
If this feature is not enabled, resources with a descriptor type of
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
must be
indexed only by constant integral expressions when aggregated into arrays in shader code.
This also specifies whether shader modules can declare the
StorageBufferArrayDynamicIndexing
capability.
shader_storage_image_array_dynamic_indexing: bool
Specifies whether arrays of storage images can be indexed by dynamically uniform integer expressions in shader code.
If this feature is not enabled, resources with a descriptor type of
VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
must be indexed only by constant integral expressions
when aggregated into arrays in shader code.
This also specifies whether shader modules can declare the
StorageImageArrayDynamicIndexing
capability.
shader_clip_distance: bool
Specifies whether clip distances are supported in shader code.
If this feature is not enabled, any members decorated with the ClipDistance
built-in
decoration must not be read from or written to in shader modules.
This also specifies whether shader modules can declare the ClipDistance
capability.
shader_cull_distance: bool
Specifies whether cull distances are supported in shader code.
If this feature is not enabled, any members decorated with the CullDistance
built-in
decoration must not be read from or written to in shader modules.
This also specifies whether shader modules can declare the CullDistance
capability.
shader_float64: bool
Specifies whether 64-bit floats (doubles) are supported in shader code.
If this feature is not enabled, 64-bit floating-point types must not be used in shader code.
This also specifies whether shader modules can declare the Float64
capability. Declaring
and using 64-bit floats is enabled for all storage classes that SPIR-V allows with the
Float64
capability.
shader_int64: bool
Specifies whether 64-bit integers (signed and unsigned) are supported in shader code.
If this feature is not enabled, 64-bit integer types must not be used in shader code.
This also specifies whether shader modules can declare the Int64
capability. Declaring and
using 64-bit integers is enabled for all storage classes that SPIR-V allows with the Int64
capability.
shader_int16: bool
Specifies whether 16-bit integers (signed and unsigned) are supported in shader code.
If this feature is not enabled, 16-bit integer types must not be used in shader code.
This also specifies whether shader modules can declare the Int16
capability. However, this
only enables a subset of the storage classes that SPIR-V allows for the Int16
SPIR-V
capability: Declaring and using 16-bit integers in the Private
, Workgroup
(for non-Block
variables), and Function
storage classes is enabled, while declaring them in the interface
storage classes (e.g., UniformConstant
, Uniform
, StorageBuffer
, Input
, Output
, and
PushConstant
) is not enabled.
shader_resource_min_lod: bool
Specifies whether image operations specifying the minimum resource LOD are supported in shader code.
If this feature is not enabled, the MinLod
image operand must not be used in shader code.
This also specifies whether shader modules can declare the MinLod
capability.
variable_multisample_rate: bool
Specifies whether all pipelines that will be bound to a command buffer during a subpass
which uses no attachments must have the same value for
VkPipelineMultisampleStateCreateInfo::rasterizationSamples
.
If set to VK_TRUE
, the implementation supports variable multisample rates in a subpass
which uses no attachments.
If set to VK_FALSE
, then all pipelines bound in such a subpass must have the same
multisample rate.
This has no effect in situations where a subpass uses any attachments.
Trait Implementations§
source§impl Debug for Vulkan10Features
impl Debug for Vulkan10Features
source§impl From<PhysicalDeviceFeatures> for Vulkan10Features
impl From<PhysicalDeviceFeatures> for Vulkan10Features
source§fn from(features: PhysicalDeviceFeatures) -> Self
fn from(features: PhysicalDeviceFeatures) -> Self
Auto Trait Implementations§
impl RefUnwindSafe for Vulkan10Features
impl Send for Vulkan10Features
impl Sync for Vulkan10Features
impl Unpin for Vulkan10Features
impl UnwindSafe for Vulkan10Features
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.