MCPcopy Create free account
hub / github.com/MultiFuzz/MultiFuzz / select_random_non_empty_stream

Function select_random_non_empty_stream

hail-fuzz/src/utils.rs:136–153  ·  view source on GitHub ↗
(
    rng: &mut R,
    data: &'a MultiStream,
)

Source from the content-addressed store, hash-verified

134}
135
136pub fn select_random_non_empty_stream<'a, R>(
137 rng: &mut R,
138 data: &'a MultiStream,
139) -> Option<(StreamKey, &'a Vec<u8>)>
140where
141 R: Rng,
142{
143 let non_empty_streams = data.streams.iter().filter(|(_, data)| !data.bytes.is_empty()).count();
144 if non_empty_streams == 0 {
145 return None;
146 }
147 let stream = rng.gen_range(0..non_empty_streams);
148 data.streams
149 .iter()
150 .filter(|(_, data)| !data.bytes.is_empty())
151 .nth(stream)
152 .map(|(addr, data)| (*addr, &data.bytes))
153}
154
155pub fn load_json<T: serde::de::DeserializeOwned>(path: &std::path::Path) -> anyhow::Result<T> {
156 serde_json::from_slice(

Callers 1

apply_mutationFunction · 0.85

Calls 2

is_emptyMethod · 0.80
countMethod · 0.45

Tested by

no test coverage detected