Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
0c43d95956
|
@@ -75,27 +75,25 @@ async fn release_inner(
|
||||
cloud_context:&rbx_asset::cloud::Context,
|
||||
cloud_context_luau_execution:&rbx_asset::cloud::Context,
|
||||
load_asset_version_runtime:&rbx_asset::cloud::LuauSessionLatestRequest,
|
||||
submissions:&crate::grpc::submissions::Service,
|
||||
submissions_service:&crate::grpc::submissions::Service,
|
||||
)->Result<(),InnerError>{
|
||||
let available_parallelism=std::thread::available_parallelism().map_err(InnerError::Io)?.get();
|
||||
// set up futures
|
||||
|
||||
// unnecessary allocation :(
|
||||
let asset_versions:Vec<_> =release_info
|
||||
.Submissions
|
||||
.iter()
|
||||
.map(|submission|rbx_asset::cloud::GetAssetVersionRequest{
|
||||
asset_id:submission.ModelID,
|
||||
version:submission.ModelVersion,
|
||||
})
|
||||
.enumerate()
|
||||
.collect();
|
||||
let submissions=&release_info.Submissions;
|
||||
|
||||
// fut_download
|
||||
let fut_download=futures::stream::iter(asset_versions)
|
||||
.map(|(index,asset_version)|async move{
|
||||
let modes=download_fut(cloud_context,asset_version).await;
|
||||
(index,modes)
|
||||
let fut_download=futures::stream::iter(submissions)
|
||||
.enumerate()
|
||||
.map(|(index,submission)|{
|
||||
let asset_version=rbx_asset::cloud::GetAssetVersionRequest{
|
||||
asset_id:submission.ModelID,
|
||||
version:submission.ModelVersion,
|
||||
};
|
||||
async move{
|
||||
let modes=download_fut(cloud_context,asset_version).await;
|
||||
(index,modes)
|
||||
}
|
||||
})
|
||||
.buffer_unordered(available_parallelism.min(MAX_PARALLEL_DECODE))
|
||||
.collect::<Vec<(usize,Result<_,DownloadFutError>)>>();
|
||||
@@ -104,7 +102,7 @@ async fn release_inner(
|
||||
let fut_load_asset_versions=load_asset_versions(
|
||||
cloud_context_luau_execution,
|
||||
load_asset_version_runtime,
|
||||
release_info.Submissions.iter().map(|submission|submission.UploadedAssetID),
|
||||
submissions.iter().map(|submission|submission.UploadedAssetID),
|
||||
);
|
||||
|
||||
// execute futures
|
||||
@@ -113,7 +111,7 @@ async fn release_inner(
|
||||
let load_asset_versions=load_asset_versions_result.map_err(InnerError::LoadAssetVersions)?;
|
||||
|
||||
// sanity check roblox output
|
||||
if load_asset_versions.len()!=release_info.Submissions.len(){
|
||||
if load_asset_versions.len()!=submissions.len(){
|
||||
return Err(InnerError::LoadAssetVersionsListLength);
|
||||
};
|
||||
|
||||
@@ -127,7 +125,7 @@ async fn release_inner(
|
||||
match result{
|
||||
Ok(value)=>modes.push(value),
|
||||
Err(error)=>errors.push(ErrorContext{
|
||||
submission_id:release_info.Submissions[index].SubmissionID,
|
||||
submission_id:submissions[index].SubmissionID,
|
||||
error:error,
|
||||
}),
|
||||
}
|
||||
@@ -144,7 +142,7 @@ async fn release_inner(
|
||||
.zip(modes)
|
||||
.zip(load_asset_versions)
|
||||
.map(|((submission,modes),asset_version)|async move{
|
||||
let result=submissions.set_status_released(rust_grpc::validator::SubmissionReleaseRequest{
|
||||
let result=submissions_service.set_status_released(rust_grpc::validator::SubmissionReleaseRequest{
|
||||
submission_id:submission.SubmissionID,
|
||||
map_create:Some(rust_grpc::maps_extended::MapCreate{
|
||||
id:submission.UploadedAssetID as i64,
|
||||
|
||||
Reference in New Issue
Block a user