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 and scissorCount members of the VkPipelineViewportStateCreateInfo structure must be set to 1.
  • The firstViewport and viewportCount parameters to the vkCmdSetViewport command must be set to 0 and 1, respectively.
  • The firstScissor and scissorCount parameters to the vkCmdSetScissor command must be set to 0 and 1, 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

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<PhysicalDeviceFeatures> for Vulkan10Features

source§

fn from(features: PhysicalDeviceFeatures) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more