wiki 0.0.3

Library for interacting with MediaWiki APIs
Documentation
use wikiproc::WriteUrl;

use super::PageSpec;

#[derive(WriteUrl, Clone, Debug, Default)]
pub struct Parse {
    pub title: Option<String>,
    pub text: Option<String>,
    #[wp(flatten)]
    pub selector: Option<PageSpec>,
    pub redirects: bool,
    pub oldid: Option<u64>,
    pub prop: ParseProp,
}

wikiproc::bitflags! {
    pub struct ParseProp: u32 {
        const TEXT = 1 << 0;
        const LANGLINKS = 1 << 1;
        const CATEGORIES = 1 << 2;
        const CATEGORIES_HTML = 1 << 3;
        const LINKS = 1 << 4;
        const TEMPLATES = 1 << 5;
        const IMAGES = 1 << 6;
        const EXTERNAL_LINKS = 1 << 7;
        const SECTIONS = 1 << 8;
        const REV_ID = 1 << 9;
        const DISPLAY_TITLE = 1 << 10;
        const SUBTITLE = 1 << 11;
        const HEAD_HTML = 1 << 12;
        const MODULES = 1 << 13;
        const JS_CONFIG_VARS = 1 << 14;
        const ENCODED_JS_CONFIG_VARS = 1 << 15;
        const INDICATORS = 1 << 16;
        const IWLINKS = 1 << 17;
        const WIKITEXT = 1 << 18;
        const PROPERTIES = 1 << 19;
        const LIMIT_REPORT_DATA = 1 << 20;
        const LIMIT_REPORT_HTML = 1 << 21;
        const PARSE_TREE = 1 << 22;
        const PARSE_WARNINGS = 1 << 23;
        const PARSE_WARNINGS_HTML = 1 << 24;
        const DEFAULT = Self::TEXT.bits
        | Self::LANGLINKS.bits
        | Self::CATEGORIES.bits
        | Self::LINKS.bits
        | Self::TEMPLATES.bits
        | Self::IMAGES.bits
        | Self::EXTERNAL_LINKS.bits
        | Self::SECTIONS.bits
        | Self::REV_ID.bits
        | Self::DISPLAY_TITLE.bits
        | Self::IWLINKS.bits
        | Self::PROPERTIES.bits
        | Self::PARSE_WARNINGS.bits;
    }
}

impl Default for ParseProp {
    fn default() -> Self {
        Self::DEFAULT
    }
}