Skip to main content

news_flash/models/
plugin_capabilities.rs

1use bitflags::bitflags;
2
3bitflags! {
4    #[derive(Clone, Copy, Default, Debug)]
5    pub struct PluginCapabilities: u32 {
6        const NONE                  = 0b0000_0000;
7        const ADD_REMOVE_FEEDS      = 0b0000_0001;
8        const SUPPORT_CATEGORIES    = 0b0000_0010;
9        const MODIFY_CATEGORIES     = 0b0000_0100;
10        const SUPPORT_TAGS          = 0b0000_1000;
11        const SUPPORT_SUBCATEGORIES = 0b0001_0000;
12        const EDIT_FEED_URLS        = 0b0010_0000;
13    }
14}
15
16impl PluginCapabilities {
17    pub fn support_mutation(&self) -> bool {
18        self.contains(PluginCapabilities::ADD_REMOVE_FEEDS) && self.contains(PluginCapabilities::MODIFY_CATEGORIES)
19    }
20}