//! Capability flags declared by site providers.

use bitflags::bitflags;

bitflags! {
    /// Static capability flags declared by a site provider.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    pub struct SiteCapabilities: u32 {
        /// The provider requires login or a session before core operations.
        const LOGIN_REQUIRED = 1 << 0;
        /// The provider supports primary resource search.
        const SEARCH = 1 << 1;
        /// The provider supports looking up a detail page.
        const DETAIL_LOOKUP = 1 << 2;
        /// The provider supports extracting related subtitles from a detail page.
        const RELATED_SUBTITLES = 1 << 3;
        /// The provider can resolve direct downloads.
        const DIRECT_DOWNLOAD = 1 << 4;
        /// The provider supports passkey-style access.
        const PASSKEY = 1 << 5;
        /// The provider uses an API token integration model.
        const API_TOKEN = 1 << 6;
    }
}
