@@ -802,28 +802,38 @@ pub type ResolvedBufferBinding = BufferBinding<Arc<Buffer>>;
802
802
// They're different enough that it doesn't make sense to share a common type
803
803
#[ derive( Debug , Clone ) ]
804
804
#[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
805
- pub enum BindingResource < ' a > {
806
- Buffer ( BufferBinding ) ,
807
- BufferArray ( Cow < ' a , [ BufferBinding ] > ) ,
808
- Sampler ( SamplerId ) ,
809
- SamplerArray ( Cow < ' a , [ SamplerId ] > ) ,
810
- TextureView ( TextureViewId ) ,
811
- TextureViewArray ( Cow < ' a , [ TextureViewId ] > ) ,
812
- AccelerationStructure ( TlasId ) ,
805
+ pub enum BindingResource < ' a , B = BufferId , S = SamplerId , TV = TextureViewId , TLAS = TlasId >
806
+ where
807
+ [ BufferBinding < B > ] : ToOwned ,
808
+ [ S ] : ToOwned ,
809
+ [ TV ] : ToOwned ,
810
+ <[ BufferBinding < B > ] as ToOwned >:: Owned : std:: fmt:: Debug ,
811
+ <[ S ] as ToOwned >:: Owned : std:: fmt:: Debug ,
812
+ <[ TV ] as ToOwned >:: Owned : std:: fmt:: Debug ,
813
+ {
814
+ Buffer ( BufferBinding < B > ) ,
815
+ #[ cfg_attr(
816
+ feature = "serde" ,
817
+ serde( bound( deserialize = "<[BufferBinding<B>] as ToOwned>::Owned: Deserialize<'de>" ) )
818
+ ) ]
819
+ BufferArray ( Cow < ' a , [ BufferBinding < B > ] > ) ,
820
+ Sampler ( S ) ,
821
+ #[ cfg_attr(
822
+ feature = "serde" ,
823
+ serde( bound( deserialize = "<[S] as ToOwned>::Owned: Deserialize<'de>" ) )
824
+ ) ]
825
+ SamplerArray ( Cow < ' a , [ S ] > ) ,
826
+ TextureView ( TV ) ,
827
+ #[ cfg_attr(
828
+ feature = "serde" ,
829
+ serde( bound( deserialize = "<[TV] as ToOwned>::Owned: Deserialize<'de>" ) )
830
+ ) ]
831
+ TextureViewArray ( Cow < ' a , [ TV ] > ) ,
832
+ AccelerationStructure ( TLAS ) ,
813
833
}
814
834
815
- // Note: Duplicated in `wgpu-rs` as `BindingResource`
816
- // They're different enough that it doesn't make sense to share a common type
817
- #[ derive( Debug , Clone ) ]
818
- pub enum ResolvedBindingResource < ' a > {
819
- Buffer ( ResolvedBufferBinding ) ,
820
- BufferArray ( Cow < ' a , [ ResolvedBufferBinding ] > ) ,
821
- Sampler ( Arc < Sampler > ) ,
822
- SamplerArray ( Cow < ' a , [ Arc < Sampler > ] > ) ,
823
- TextureView ( Arc < TextureView > ) ,
824
- TextureViewArray ( Cow < ' a , [ Arc < TextureView > ] > ) ,
825
- AccelerationStructure ( Arc < Tlas > ) ,
826
- }
835
+ pub type ResolvedBindingResource < ' a > =
836
+ BindingResource < ' a , Arc < Buffer > , Arc < Sampler > , Arc < TextureView > , Arc < Tlas > > ;
827
837
828
838
#[ derive( Clone , Debug , Error ) ]
829
839
#[ non_exhaustive]
0 commit comments