// This file is @generated by prost-build.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct CardId {
    #[prost(int64, tag = "1")]
    pub cid: i64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct CardIds {
    #[prost(int64, repeated, tag = "1")]
    pub cids: ::prost::alloc::vec::Vec<i64>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct Card {
    #[prost(int64, tag = "1")]
    pub id: i64,
    #[prost(int64, tag = "2")]
    pub note_id: i64,
    #[prost(int64, tag = "3")]
    pub deck_id: i64,
    #[prost(uint32, tag = "4")]
    pub template_idx: u32,
    #[prost(int64, tag = "5")]
    pub mtime_secs: i64,
    #[prost(sint32, tag = "6")]
    pub usn: i32,
    #[prost(uint32, tag = "7")]
    pub ctype: u32,
    #[prost(sint32, tag = "8")]
    pub queue: i32,
    #[prost(sint32, tag = "9")]
    pub due: i32,
    #[prost(uint32, tag = "10")]
    pub interval: u32,
    #[prost(uint32, tag = "11")]
    pub ease_factor: u32,
    #[prost(uint32, tag = "12")]
    pub reps: u32,
    #[prost(uint32, tag = "13")]
    pub lapses: u32,
    #[prost(uint32, tag = "14")]
    pub remaining_steps: u32,
    #[prost(sint32, tag = "15")]
    pub original_due: i32,
    #[prost(int64, tag = "16")]
    pub original_deck_id: i64,
    #[prost(uint32, tag = "17")]
    pub flags: u32,
    #[prost(uint32, optional, tag = "18")]
    pub original_position: ::core::option::Option<u32>,
    #[prost(message, optional, tag = "20")]
    pub memory_state: ::core::option::Option<FsrsMemoryState>,
    #[prost(float, optional, tag = "21")]
    pub desired_retention: ::core::option::Option<f32>,
    #[prost(float, optional, tag = "22")]
    pub decay: ::core::option::Option<f32>,
    #[prost(int64, optional, tag = "23")]
    pub last_review_time_secs: ::core::option::Option<i64>,
    #[prost(string, tag = "19")]
    pub custom_data: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
#[must_use]
pub struct FsrsMemoryState {
    #[prost(float, tag = "1")]
    pub stability: f32,
    #[prost(float, tag = "2")]
    pub difficulty: f32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct UpdateCardsRequest {
    #[prost(message, repeated, tag = "1")]
    pub cards: ::prost::alloc::vec::Vec<Card>,
    #[prost(bool, tag = "2")]
    pub skip_undo_entry: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct RemoveCardsRequest {
    #[prost(int64, repeated, tag = "1")]
    pub card_ids: ::prost::alloc::vec::Vec<i64>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct SetDeckRequest {
    #[prost(int64, repeated, tag = "1")]
    pub card_ids: ::prost::alloc::vec::Vec<i64>,
    #[prost(int64, tag = "2")]
    pub deck_id: i64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
#[must_use]
pub struct SetFlagRequest {
    #[prost(int64, repeated, tag = "1")]
    pub card_ids: ::prost::alloc::vec::Vec<i64>,
    #[prost(uint32, tag = "2")]
    pub flag: u32,
}
