use super::{Channel, CrateType, Edition};
use serde::{Deserialize, Serialize};
use std::borrow::Cow;
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
pub struct ClippyRequest<'a> {
pub channel: Channel,
#[serde(rename = "crateType")]
pub crate_type: CrateType,
pub edition: Edition,
pub code: Cow<'a, str>,
}
impl<'a> ClippyRequest<'a> {
pub fn new(
channel: Channel,
crate_type: CrateType,
edition: Edition,
code: Cow<'a, str>,
) -> Self {
Self {
channel,
crate_type,
edition,
code,
}
}
}
impl<'b> super::Request for ClippyRequest<'b> {
fn endpoint<'a>(&self) -> super::Endpoints<'a> {
super::Endpoints::Clippy
}
}
impl<'a> Default for ClippyRequest<'a> {
fn default() -> Self {
Self {
channel: Channel::Stable,
crate_type: CrateType::Binary,
edition: Edition::Edition2024,
code: Cow::Borrowed("fn main() { println!(\"Hello, world!\"); }"),
}
}
}
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
pub struct ClippyResponse<'a> {
pub success: bool,
pub exit_detail: Cow<'a, str>,
pub stdout: Cow<'a, str>,
pub stderr: Cow<'a, str>,
}
impl<'a> super::Response for ClippyResponse<'a> {}