twitch_highway 0.2.1

Twitch API
Documentation
use serde::{Deserialize, Serialize};

use crate::types::Id;

define_request!(
    #[derive(Serialize)]
    ChannelStreamScheduleRequest<'a> {
        opts: {
            start_time: &'a str,
            utc_offset: &'a str,
            ids: &'a [Id] => ID ; vec,
        };
        into_query
    }
);

define_request!(
    #[derive(Serialize, Deserialize)]
    UpdateScheduleRequest<'a> {
        opts: {
            vacation_start_time: &'a str,
            vacation_end_time: &'a str,
            timezone: &'a str,
            is_vacation_enabled: bool ; bool,
        };
        into_query
    }
);

define_request!(
    #[derive(Serialize, Deserialize)]
    CreateScheduleSegmentRequest<'a> {
        opts: {
            #[serde(skip_serializing_if = "Option::is_none")]
            category_id: &'a str,
            #[serde(skip_serializing_if = "Option::is_none")]
            title: &'a str,
            #[serde(skip_serializing_if = "Option::is_none")]
            is_recurring: bool
        };
        into_json
    }
);

define_request!(
    #[derive(Default, Serialize, Deserialize)]
    UpdateScheduleSegmentRequest<'a> {
        opts: {
            #[serde(skip_serializing_if = "Option::is_none")]
            start_time: &'a str,
            #[serde(skip_serializing_if = "Option::is_none")]
            duration: &'a str,
            #[serde(skip_serializing_if = "Option::is_none")]
            category_id: &'a str,
            #[serde(skip_serializing_if = "Option::is_none")]
            title: &'a str,
            #[serde(skip_serializing_if = "Option::is_none")]
            timezone: &'a str,
            #[serde(skip_serializing_if = "Option::is_none")]
            is_canceled: bool,
        };
        into_json
    }
);