diff options
Diffstat (limited to 'policy/_policies/src/lib.rs.t')
| -rw-r--r-- | policy/_policies/src/lib.rs.t | 44 |
1 files changed, 42 insertions, 2 deletions
diff --git a/policy/_policies/src/lib.rs.t b/policy/_policies/src/lib.rs.t index 873a4cd..db0dc0f 100644 --- a/policy/_policies/src/lib.rs.t +++ b/policy/_policies/src/lib.rs.t @@ -28,24 +28,46 @@ pub async fn chunk_with( } } -pub async fn chunk_stream_with( +pub async fn chunk_stream_with<F>( policy_name: &str, size: u32, path: &Path, + callback: F, params: &HashMap<&str, &str>, -) -> Result<Vec<u32>, ChunkFailed> { +) -> Result<(), ChunkFailed> +where + F: FnMut(Vec<u8>) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), std::io::Error>> + Send>>, +{ match policy_name { >>>>>>>>>> match_arms_stream _ => Err(ChunkFailed::PolicyNotFound), } } +pub async fn chunk_stream_display_boundaries( + policy_name: &str, + size: u32, + path: &Path, + params: &HashMap<&str, &str>, +) -> Result<Vec<u32>, ChunkFailed> { + match policy_name { +>>>>>>>>>> match_arms_stream_display + _ => Err(ChunkFailed::PolicyNotFound), + } +} + pub fn policies() -> Vec<&'static str> { vec![ >>>>>>>>>> policy_names ] } +pub fn stream_policies() -> Vec<&'static str> { + vec![ +>>>>>>>>>> stream_policy_names + ] +} + >>>>>>>>>> exports_simple >>>>>>>>>> exports_stream >>>>>>>>>> exports_both @@ -58,6 +80,19 @@ pub fn policies() -> Vec<&'static str> { "<<<crate_name>>>" => { let mut stream = <<<stream_struct_id>>>::default(); chunk_stream_process( + path, &mut stream, size, callback, params, + async |current_data, len, stream, params| { + <<<crate_name>>>::chunk_stream(current_data, len, stream, params).await + }, + ) + .await + } +@@@ <<< + +@@@ >>> match_arms_stream_display + "<<<crate_name>>>" => { + let mut stream = <<<stream_struct_id>>>::default(); + crate::stream_read::chunk_stream_display_boundaries( path, &mut stream, size, params, async |current_data, len, stream, params| { <<<crate_name>>>::chunk_stream(current_data, len, stream, params).await @@ -72,6 +107,11 @@ pub fn policies() -> Vec<&'static str> { "<<<name>>>", @@@ <<< +@@@ >>> stream_policy_names + // <<<name>>> + "<<<name>>>", +@@@ <<< + @@@ >>> exports_simple pub mod <<<crate_name>>> { use std::collections::HashMap; |
