1 Commits

Author SHA1 Message Date
0c43d95956 validation: remove allocation
All checks were successful
continuous-integration/drone/push Build is passing
2025-12-09 08:50:07 -08:00

View File

@@ -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,