leetcode_core/graphql/query/
mod.rs1pub mod console_panel_config;
2pub mod daily_coding_challenge;
3pub mod editor_data;
4pub mod problemset_question_list;
5pub mod question_content;
6pub mod run_code;
7pub mod submit_code;
8use super::GQLLeetcodeRequest;
9use crate::errors::AppResult;
10use crate::types::run_submit_response::{ParsedResponse, RunSubmitResult};
11use async_trait::async_trait;
12pub use editor_data::Query as EditorDataRequest;
13
14#[async_trait]
15pub trait RunOrSubmitCodeCheckResult<IntermediateResponse>:
16 GQLLeetcodeRequest<T = IntermediateResponse>
17where
18 IntermediateResponse: GQLLeetcodeRequest<T = RunSubmitResult> + Send,
19{
20 async fn poll_check_response(&self) -> AppResult<ParsedResponse> {
21 let run_response = self.send().await?;
22 loop {
23 let status_check = run_response.send().await?;
24 let parsed_response = status_check.to_parsed_response()?;
25 match parsed_response {
26 ParsedResponse::Pending => continue,
27 _ => return Ok(parsed_response),
28 }
29 }
30 }
31}