@@ -335,7 +335,7 @@ pub enum AssetMetaCheck {
335335/// Type to define how to create the default asset source.
336336pub enum DefaultAssetSource {
337337 /// Create the default asset source given these file paths.
338- FromPaths {
338+ Paths {
339339 /// The path to the unprocessed assets.
340340 file_path : String ,
341341 /// The path to the processed assets.
@@ -347,14 +347,33 @@ pub enum DefaultAssetSource {
347347 ///
348348 /// Note: The Mutex is just an implementation detail for applying the
349349 /// plugin.
350- FromBuilder ( Mutex < AssetSourceBuilder > ) ,
350+ Builder ( Mutex < AssetSourceBuilder > ) ,
351+ }
352+
353+ impl DefaultAssetSource {
354+ /// Creates an instance that will build the default source for the platform given the file
355+ /// paths.
356+ ///
357+ /// If `processed_file_path` is [`None`], the default file path is used when in
358+ /// [`AssetMode::Processed`].
359+ pub fn from_paths ( file_path : String , processed_file_path : Option < String > ) -> Self {
360+ Self :: Paths {
361+ file_path,
362+ processed_file_path,
363+ }
364+ }
365+
366+ /// Creates an instance that will build the source from the provided builder.
367+ pub fn from_builder ( builder : AssetSourceBuilder ) -> Self {
368+ Self :: Builder ( Mutex :: new ( builder) )
369+ }
351370}
352371
353372impl Default for AssetPlugin {
354373 fn default ( ) -> Self {
355374 Self {
356375 mode : AssetMode :: Unprocessed ,
357- default_source : DefaultAssetSource :: FromPaths {
376+ default_source : DefaultAssetSource :: Paths {
358377 file_path : Self :: DEFAULT_UNPROCESSED_FILE_PATH . to_string ( ) ,
359378 processed_file_path : None ,
360379 } ,
@@ -379,7 +398,7 @@ impl Plugin for AssetPlugin {
379398 let mut default_source_builder;
380399 let default_source_builder_ref;
381400 match & self . default_source {
382- DefaultAssetSource :: FromPaths {
401+ DefaultAssetSource :: Paths {
383402 file_path,
384403 processed_file_path,
385404 } => {
@@ -393,7 +412,7 @@ impl Plugin for AssetPlugin {
393412 AssetSourceBuilder :: platform_default ( file_path, processed_file_path) ;
394413 default_source_builder_ref = & mut default_source_builder;
395414 }
396- DefaultAssetSource :: FromBuilder ( builder) => {
415+ DefaultAssetSource :: Builder ( builder) => {
397416 lock = builder. lock ( ) . unwrap_or_else ( PoisonError :: into_inner) ;
398417 default_source_builder_ref = & mut * lock;
399418 }
@@ -946,8 +965,8 @@ mod tests {
946965 app. add_plugins ( (
947966 TaskPoolPlugin :: default ( ) ,
948967 AssetPlugin {
949- default_source : DefaultAssetSource :: FromBuilder ( Mutex :: new (
950- AssetSourceBuilder :: new ( move || Box :: new ( gated_memory_reader. clone ( ) ) ) ,
968+ default_source : DefaultAssetSource :: from_builder ( AssetSourceBuilder :: new (
969+ move || Box :: new ( gated_memory_reader. clone ( ) ) ,
951970 ) ) ,
952971 ..Default :: default ( )
953972 } ,
@@ -1956,10 +1975,8 @@ mod tests {
19561975 app. add_plugins ( (
19571976 TaskPoolPlugin :: default ( ) ,
19581977 AssetPlugin {
1959- default_source : DefaultAssetSource :: FromBuilder ( Mutex :: new (
1960- AssetSourceBuilder :: new ( move || {
1961- Box :: new ( MemoryAssetReader { root : dir. clone ( ) } )
1962- } ) ,
1978+ default_source : DefaultAssetSource :: from_builder ( AssetSourceBuilder :: new (
1979+ move || Box :: new ( MemoryAssetReader { root : dir. clone ( ) } ) ,
19631980 ) ) ,
19641981 ..Default :: default ( )
19651982 } ,
@@ -2085,8 +2102,8 @@ mod tests {
20852102 app. add_plugins ( (
20862103 TaskPoolPlugin :: default ( ) ,
20872104 AssetPlugin {
2088- default_source : DefaultAssetSource :: FromBuilder ( Mutex :: new (
2089- AssetSourceBuilder :: new ( move || Box :: new ( memory_reader. clone ( ) ) ) ,
2105+ default_source : DefaultAssetSource :: from_builder ( AssetSourceBuilder :: new (
2106+ move || Box :: new ( memory_reader. clone ( ) ) ,
20902107 ) ) ,
20912108 unapproved_path_mode : mode,
20922109 ..Default :: default ( )
@@ -2222,8 +2239,8 @@ mod tests {
22222239 app. add_plugins ( (
22232240 TaskPoolPlugin :: default ( ) ,
22242241 AssetPlugin {
2225- default_source : DefaultAssetSource :: FromBuilder ( Mutex :: new (
2226- AssetSourceBuilder :: new ( move || Box :: new ( reader. clone ( ) ) ) ,
2242+ default_source : DefaultAssetSource :: from_builder ( AssetSourceBuilder :: new (
2243+ move || Box :: new ( reader. clone ( ) ) ,
22272244 ) ) ,
22282245 ..Default :: default ( )
22292246 } ,
@@ -2282,8 +2299,8 @@ mod tests {
22822299 app. add_plugins ( (
22832300 TaskPoolPlugin :: default ( ) ,
22842301 AssetPlugin {
2285- default_source : DefaultAssetSource :: FromBuilder ( Mutex :: new (
2286- AssetSourceBuilder :: new ( move || Box :: new ( reader. clone ( ) ) ) ,
2302+ default_source : DefaultAssetSource :: from_builder ( AssetSourceBuilder :: new (
2303+ move || Box :: new ( reader. clone ( ) ) ,
22872304 ) ) ,
22882305 ..Default :: default ( )
22892306 } ,
@@ -2352,14 +2369,14 @@ mod tests {
23522369 app. add_plugins ( (
23532370 TaskPoolPlugin :: default ( ) ,
23542371 AssetPlugin {
2355- default_source : DefaultAssetSource :: FromBuilder ( Mutex :: new (
2372+ default_source : DefaultAssetSource :: from_builder (
23562373 AssetSourceBuilder :: new ( move || Box :: new ( memory_reader. clone ( ) ) ) . with_watcher (
23572374 move |sender| {
23582375 sender_sender. send ( sender) . unwrap ( ) ;
23592376 Some ( Box :: new ( FakeWatcher ) )
23602377 } ,
23612378 ) ,
2362- ) ) ,
2379+ ) ,
23632380 watch_for_changes_override : Some ( true ) ,
23642381 ..Default :: default ( )
23652382 } ,
@@ -2548,7 +2565,7 @@ mod tests {
25482565 app. add_plugins ( (
25492566 TaskPoolPlugin :: default ( ) ,
25502567 AssetPlugin {
2551- default_source : DefaultAssetSource :: FromBuilder ( Mutex :: new ( asset_source) ) ,
2568+ default_source : DefaultAssetSource :: from_builder ( asset_source) ,
25522569 ..Default :: default ( )
25532570 } ,
25542571 ) )
@@ -2613,7 +2630,7 @@ mod tests {
26132630 app. add_plugins ( (
26142631 TaskPoolPlugin :: default ( ) ,
26152632 AssetPlugin {
2616- default_source : DefaultAssetSource :: FromBuilder ( Mutex :: new ( asset_source) ) ,
2633+ default_source : DefaultAssetSource :: from_builder ( asset_source) ,
26172634 ..Default :: default ( )
26182635 } ,
26192636 ) )
@@ -2692,7 +2709,7 @@ mod tests {
26922709 app. add_plugins ( (
26932710 TaskPoolPlugin :: default ( ) ,
26942711 AssetPlugin {
2695- default_source : DefaultAssetSource :: FromBuilder ( Mutex :: new ( asset_source) ) ,
2712+ default_source : DefaultAssetSource :: from_builder ( asset_source) ,
26962713 ..Default :: default ( )
26972714 } ,
26982715 ) )
@@ -2762,7 +2779,7 @@ mod tests {
27622779 app. add_plugins ( (
27632780 TaskPoolPlugin :: default ( ) ,
27642781 AssetPlugin {
2765- default_source : DefaultAssetSource :: FromBuilder ( Mutex :: new ( default_source) ) ,
2782+ default_source : DefaultAssetSource :: from_builder ( default_source) ,
27662783 ..Default :: default ( )
27672784 } ,
27682785 DiagnosticsPlugin ,
0 commit comments