MCPcopy Create free account
hub / github.com/NativeScript/SimDeck / run_batch_step

Function run_batch_step

packages/server/src/main/batch.rs:244–551  ·  view source on GitHub ↗
(
    bridge: &NativeBridge,
    udid: &str,
    line: &str,
)

Source from the content-addressed store, hash-verified

242}
243
244fn run_batch_step(
245 bridge: &NativeBridge,
246 udid: &str,
247 line: &str,
248) -> Result<&'static str, crate::error::AppError> {
249 let tokens = tokenize_step(line)?;
250 let Some(command) = tokens.first().map(String::as_str) else {
251 return Err(crate::error::AppError::bad_request("Empty batch step."));
252 };
253 match command {
254 "sleep" => {
255 let args = parse_step_options(&tokens[1..]);
256 let duration_ms = parse_batch_sleep_duration_ms(
257 &args,
258 tokens
259 .iter()
260 .skip(1)
261 .find(|token| !token.starts_with('-'))
262 .map(String::as_str),
263 )?;
264 sleep_ms(duration_ms);
265 Ok("sleep")
266 }
267 "tap" => {
268 let args = parse_step_options(&tokens[1..]);
269 let x = args.value("x").and_then(|value| value.parse::<f64>().ok());
270 let y = args.value("y").and_then(|value| value.parse::<f64>().ok());
271 let normalized = args.flag("normalized");
272 let duration_ms = args
273 .value("duration-ms")
274 .and_then(|value| value.parse().ok())
275 .unwrap_or(60);
276 let target = resolve_tap_target(
277 bridge,
278 udid,
279 TapTargetRequest {
280 x,
281 y,
282 normalized,
283 selector: batch_selector_from_args(&args),
284 wait_timeout_ms: args
285 .value("wait-timeout-ms")
286 .and_then(|value| value.parse().ok())
287 .unwrap_or(0),
288 poll_interval_ms: args
289 .value("poll-interval-ms")
290 .and_then(|value| value.parse().ok())
291 .unwrap_or(100),
292 },
293 )?;
294 if bridge_simulator_is_tvos(bridge, udid) {
295 press_tvos_remote_key(bridge, udid, HID_KEY_ENTER)?;
296 } else if let Some(input) = target.input.as_ref() {
297 perform_tap_with_input(input, target.x, target.y, duration_ms)?;
298 } else {
299 perform_tap(bridge, udid, target.x, target.y, duration_ms)?;
300 }
301 Ok("tap")

Callers 1

run_batchFunction · 0.70

Calls 15

tokenize_stepFunction · 0.85
parse_step_optionsFunction · 0.85
sleep_msFunction · 0.85
resolve_tap_targetFunction · 0.85
batch_selector_from_argsFunction · 0.85
perform_tap_with_inputFunction · 0.85
perform_tapFunction · 0.85
perform_swipeFunction · 0.85
wait_for_batch_selectorFunction · 0.85
required_f64Function · 0.85
resolve_touch_pointFunction · 0.85

Tested by

no test coverage detected