@@ -7,7 +7,10 @@ use crate::{
7
7
lockfile:: { LockfileMismatchError , LockfileMismatchHandler } ,
8
8
spirv_builder:: { CompileResult , SpirvBuilder , SpirvBuilderError } ,
9
9
spirv_cache:: {
10
- backend:: { Install , InstallError , InstallParams , InstallRunParams , InstalledBackend } ,
10
+ backend:: {
11
+ SpirvCodegenBackend , SpirvCodegenBackendInstallError , SpirvCodegenBackendInstaller ,
12
+ SpirvCodegenBackendInstallerParams , SpirvCodegenBackendInstallerRunParams ,
13
+ } ,
11
14
command:: CommandExecError ,
12
15
toolchain:: {
13
16
HaltToolchainInstallation , InheritStderr , InheritStdout , NoopOnComponentsInstall ,
@@ -20,14 +23,14 @@ use crate::{
20
23
#[ cfg( feature = "watch" ) ]
21
24
use crate :: spirv_builder:: SpirvWatcher ;
22
25
23
- /// Parameters for [`ShaderCrateBuilder ::new()`].
26
+ /// Parameters for [`CargoGpuBuilder ::new()`].
24
27
#[ derive( Debug , Clone ) ]
25
28
#[ non_exhaustive]
26
- pub struct ShaderCrateBuilderParams < W , T , C , O , E > {
29
+ pub struct CargoGpuBuilderParams < W , T , C , O , E > {
27
30
/// Parameters of the shader crate build.
28
31
pub build : SpirvBuilder ,
29
32
/// Parameters of the codegen backend installation for the shader crate.
30
- pub install : InstallParams ,
33
+ pub install : SpirvCodegenBackendInstallerParams ,
31
34
/// There is a tricky situation where a shader crate that depends on workspace config can have
32
35
/// a different `Cargo.lock` lockfile version from the the workspace's `Cargo.lock`. This can
33
36
/// prevent builds when an old Rust toolchain doesn't recognise the newer lockfile version.
@@ -58,7 +61,7 @@ pub struct ShaderCrateBuilderParams<W, T, C, O, E> {
58
61
pub stdio_cfg : StdioCfg < O , E > ,
59
62
}
60
63
61
- impl < W , T , C , O , E > ShaderCrateBuilderParams < W , T , C , O , E > {
64
+ impl < W , T , C , O , E > CargoGpuBuilderParams < W , T , C , O , E > {
62
65
/// Replaces build parameters of the shader crate.
63
66
#[ inline]
64
67
#[ must_use]
@@ -69,7 +72,7 @@ impl<W, T, C, O, E> ShaderCrateBuilderParams<W, T, C, O, E> {
69
72
/// Replaces codegen backend installation parameters of the shader crate.
70
73
#[ inline]
71
74
#[ must_use]
72
- pub fn install ( self , install : InstallParams ) -> Self {
75
+ pub fn install ( self , install : SpirvCodegenBackendInstallerParams ) -> Self {
73
76
Self { install, ..self }
74
77
}
75
78
@@ -89,8 +92,8 @@ impl<W, T, C, O, E> ShaderCrateBuilderParams<W, T, C, O, E> {
89
92
/// Replaces the writer of user output.
90
93
#[ inline]
91
94
#[ must_use]
92
- pub fn writer < NW > ( self , writer : NW ) -> ShaderCrateBuilderParams < NW , T , C , O , E > {
93
- ShaderCrateBuilderParams {
95
+ pub fn writer < NW > ( self , writer : NW ) -> CargoGpuBuilderParams < NW , T , C , O , E > {
96
+ CargoGpuBuilderParams {
94
97
build : self . build ,
95
98
install : self . install ,
96
99
force_overwrite_lockfiles_v4_to_v3 : self . force_overwrite_lockfiles_v4_to_v3 ,
@@ -106,8 +109,8 @@ impl<W, T, C, O, E> ShaderCrateBuilderParams<W, T, C, O, E> {
106
109
pub fn halt < NT , NC > (
107
110
self ,
108
111
halt : HaltToolchainInstallation < NT , NC > ,
109
- ) -> ShaderCrateBuilderParams < W , NT , NC , O , E > {
110
- ShaderCrateBuilderParams {
112
+ ) -> CargoGpuBuilderParams < W , NT , NC , O , E > {
113
+ CargoGpuBuilderParams {
111
114
build : self . build ,
112
115
install : self . install ,
113
116
force_overwrite_lockfiles_v4_to_v3 : self . force_overwrite_lockfiles_v4_to_v3 ,
@@ -123,8 +126,8 @@ impl<W, T, C, O, E> ShaderCrateBuilderParams<W, T, C, O, E> {
123
126
pub fn stdio_cfg < NO , NE > (
124
127
self ,
125
128
stdio_cfg : StdioCfg < NO , NE > ,
126
- ) -> ShaderCrateBuilderParams < W , T , C , NO , NE > {
127
- ShaderCrateBuilderParams {
129
+ ) -> CargoGpuBuilderParams < W , T , C , NO , NE > {
130
+ CargoGpuBuilderParams {
128
131
build : self . build ,
129
132
install : self . install ,
130
133
force_overwrite_lockfiles_v4_to_v3 : self . force_overwrite_lockfiles_v4_to_v3 ,
@@ -135,16 +138,16 @@ impl<W, T, C, O, E> ShaderCrateBuilderParams<W, T, C, O, E> {
135
138
}
136
139
}
137
140
138
- /// [`Default`] parameters for [`ShaderCrateBuilder ::new()`].
139
- pub type DefaultShaderCrateBuilderParams = ShaderCrateBuilderParams <
141
+ /// [`Default`] parameters for [`CargoGpuBuilder ::new()`].
142
+ pub type DefaultCargoGpuBuilderParams = CargoGpuBuilderParams <
140
143
io:: Stdout ,
141
144
NoopOnToolchainInstall ,
142
145
NoopOnComponentsInstall ,
143
146
InheritStdout ,
144
147
InheritStderr ,
145
148
> ;
146
149
147
- impl From < SpirvBuilder > for DefaultShaderCrateBuilderParams {
150
+ impl From < SpirvBuilder > for DefaultCargoGpuBuilderParams {
148
151
#[ inline]
149
152
fn from ( build : SpirvBuilder ) -> Self {
150
153
Self {
@@ -154,12 +157,12 @@ impl From<SpirvBuilder> for DefaultShaderCrateBuilderParams {
154
157
}
155
158
}
156
159
157
- impl Default for DefaultShaderCrateBuilderParams {
160
+ impl Default for DefaultCargoGpuBuilderParams {
158
161
#[ inline]
159
162
fn default ( ) -> Self {
160
163
Self {
161
164
build : SpirvBuilder :: default ( ) ,
162
- install : InstallParams :: default ( ) ,
165
+ install : SpirvCodegenBackendInstallerParams :: default ( ) ,
163
166
force_overwrite_lockfiles_v4_to_v3 : false ,
164
167
writer : io:: stdout ( ) ,
165
168
halt : HaltToolchainInstallation :: noop ( ) ,
@@ -171,20 +174,20 @@ impl Default for DefaultShaderCrateBuilderParams {
171
174
/// A builder for compiling a `rust-gpu` shader crate.
172
175
#[ derive( Debug , Clone ) ]
173
176
#[ non_exhaustive]
174
- pub struct ShaderCrateBuilder < W = io:: Stdout > {
177
+ pub struct CargoGpuBuilder < W = io:: Stdout > {
175
178
/// The underlying builder for compiling the shader crate.
176
179
pub builder : SpirvBuilder ,
177
180
/// The arguments used to install the backend.
178
- pub installed_backend_args : Install ,
181
+ pub installed_backend_args : SpirvCodegenBackendInstaller ,
179
182
/// The installed backend.
180
- pub installed_backend : InstalledBackend ,
183
+ pub installed_backend : SpirvCodegenBackend ,
181
184
/// The lockfile mismatch handler.
182
185
pub lockfile_mismatch_handler : LockfileMismatchHandler ,
183
186
/// Writer of user output.
184
187
pub writer : W ,
185
188
}
186
189
187
- impl < W > ShaderCrateBuilder < W >
190
+ impl < W > CargoGpuBuilder < W >
188
191
where
189
192
W : io:: Write ,
190
193
{
@@ -199,16 +202,16 @@ where
199
202
/// * the backend installation fails,
200
203
/// * there is a lockfile version mismatch that cannot be resolved automatically.
201
204
#[ inline]
202
- pub fn new < I , R , T , C , O , E > ( params : I ) -> Result < Self , NewShaderCrateBuilderError < R > >
205
+ pub fn new < I , R , T , C , O , E > ( params : I ) -> Result < Self , NewCargoGpuBuilderError < R > >
203
206
where
204
- I : Into < ShaderCrateBuilderParams < W , T , C , O , E > > ,
207
+ I : Into < CargoGpuBuilderParams < W , T , C , O , E > > ,
205
208
R : From < CommandExecError > ,
206
209
T : FnOnce ( & str ) -> Result < ( ) , R > ,
207
210
C : FnOnce ( & str ) -> Result < ( ) , R > ,
208
211
O : FnMut ( ) -> Stdio ,
209
212
E : FnMut ( ) -> Stdio ,
210
213
{
211
- let ShaderCrateBuilderParams {
214
+ let CargoGpuBuilderParams {
212
215
mut build,
213
216
install,
214
217
force_overwrite_lockfiles_v4_to_v3,
@@ -218,16 +221,16 @@ where
218
221
} = params. into ( ) ;
219
222
220
223
if build. target . is_none ( ) {
221
- return Err ( NewShaderCrateBuilderError :: MissingTarget ) ;
224
+ return Err ( NewCargoGpuBuilderError :: MissingTarget ) ;
222
225
}
223
226
let path_to_crate = build
224
227
. path_to_crate
225
228
. as_ref ( )
226
- . ok_or ( NewShaderCrateBuilderError :: MissingCratePath ) ?;
229
+ . ok_or ( NewCargoGpuBuilderError :: MissingCratePath ) ?;
227
230
let shader_crate = dunce:: canonicalize ( path_to_crate) ?;
228
231
229
- let backend_to_install = Install :: new ( shader_crate, install) ;
230
- let backend_install_params = InstallRunParams :: default ( )
232
+ let backend_to_install = SpirvCodegenBackendInstaller :: new ( shader_crate, install) ;
233
+ let backend_install_params = SpirvCodegenBackendInstallerRunParams :: default ( )
231
234
. writer ( & mut writer)
232
235
. halt ( HaltToolchainInstallation {
233
236
on_toolchain_install : |channel : & str | ( halt. on_toolchain_install ) ( channel) ,
@@ -237,7 +240,7 @@ where
237
240
stdout : || ( stdio_cfg. stdout ) ( ) ,
238
241
stderr : || ( stdio_cfg. stderr ) ( ) ,
239
242
} ) ;
240
- let backend = backend_to_install. run ( backend_install_params) ?;
243
+ let backend = backend_to_install. install ( backend_install_params) ?;
241
244
242
245
let lockfile_mismatch_handler = LockfileMismatchHandler :: new (
243
246
& backend_to_install. shader_crate ,
@@ -265,7 +268,7 @@ where
265
268
///
266
269
/// Returns an error if building the shader crate failed.
267
270
#[ inline]
268
- pub fn build ( & mut self ) -> Result < CompileResult , ShaderCrateBuildError > {
271
+ pub fn build ( & mut self ) -> Result < CompileResult , CargoGpuBuildError > {
269
272
let shader_crate = self . installed_backend_args . shader_crate . display ( ) ;
270
273
user_output ! ( & mut self . writer, "Compiling shaders at {shader_crate}...\n " ) ?;
271
274
@@ -280,7 +283,7 @@ where
280
283
/// Returns an error if watching shader crate for changes failed.
281
284
#[ cfg( feature = "watch" ) ]
282
285
#[ inline]
283
- pub fn watch ( & mut self ) -> Result < SpirvWatcher , ShaderCrateBuildError > {
286
+ pub fn watch ( & mut self ) -> Result < SpirvWatcher , CargoGpuBuildError > {
284
287
let shader_crate = self . installed_backend_args . shader_crate . display ( ) ;
285
288
user_output ! (
286
289
& mut self . writer,
@@ -292,10 +295,10 @@ where
292
295
}
293
296
}
294
297
295
- /// An error indicating what went wrong when creating a [`ShaderCrateBuilder `].
298
+ /// An error indicating what went wrong when creating a [`CargoGpuBuilder `].
296
299
#[ derive( Debug , thiserror:: Error ) ]
297
300
#[ non_exhaustive]
298
- pub enum NewShaderCrateBuilderError < E = CommandExecError > {
301
+ pub enum NewCargoGpuBuilderError < E = CommandExecError > {
299
302
/// Shader crate target is missing from parameters of the build.
300
303
#[ error( "shader crate target must be set, for example `spirv-unknown-vulkan1.2`" ) ]
301
304
MissingTarget ,
@@ -307,7 +310,7 @@ pub enum NewShaderCrateBuilderError<E = CommandExecError> {
307
310
InvalidCratePath ( #[ from] io:: Error ) ,
308
311
/// The backend installation failed.
309
312
#[ error( "could not install backend: {0}" ) ]
310
- Install ( #[ from] InstallError < E > ) ,
313
+ Install ( #[ from] SpirvCodegenBackendInstallError < E > ) ,
311
314
/// There is a lockfile version mismatch that cannot be resolved automatically.
312
315
#[ error( transparent) ]
313
316
LockfileMismatch ( #[ from] LockfileMismatchError ) ,
@@ -316,7 +319,7 @@ pub enum NewShaderCrateBuilderError<E = CommandExecError> {
316
319
/// An error indicating what went wrong when building the shader crate.
317
320
#[ derive( Debug , thiserror:: Error ) ]
318
321
#[ non_exhaustive]
319
- pub enum ShaderCrateBuildError {
322
+ pub enum CargoGpuBuildError {
320
323
/// Failed to write user output.
321
324
#[ error( "failed to write user output: {0}" ) ]
322
325
IoWrite ( #[ from] io:: Error ) ,
0 commit comments