summaryrefslogtreecommitdiff
path: root/policy/_policies/src/lib.rs.t
diff options
context:
space:
mode:
Diffstat (limited to 'policy/_policies/src/lib.rs.t')
-rw-r--r--policy/_policies/src/lib.rs.t44
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;