fn action_tag_directive_from_tags(
    tags: Vec<String>,
    exclude_tags: Vec<String>,
) -> ActionTagDirective {
    match (tags.is_empty(), exclude_tags.is_empty()) {
        // tags are not empty
        (false, _) => ActionTagDirective::Include(tags),
        // tags are empty, exclude_tags are not empty
        (true, false) => ActionTagDirective::Exclude(exclude_tags),
        _ => ActionTagDirective::AllowAll,
    }
}
/// Creates a new ActionTagDirective based on the following rules,
///
/// - AllowAll iff tags is empty and exclude_tags is empty.
/// - Include if tags is not empty and exclude_tags is empty.
/// - Include if tags is not empty and exclude_tags is not empty, in this
///   situation the exclude_ags will be ignored since include implies excluding
///   all other tags.
/// - Exclude iff tags is empty and exclude_tags is not empty.
Creates a new ActionTagDirective based on the following rules,
AllowAll iff tags is empty and exclude_tags is empty.
Include if tags is not empty and exclude_tags is empty.
Include if tags is not empty and exclude_tags is not empty, in this
situation the exclude_ags will be ignored since include implies excluding
all other tags.
Exclude iff tags is empty and exclude_tags is not empty.
Creates a new ActionTagDirective based on the following rules AllowAll iff tags is empty and exclude_tags is empty . Include if tags is not empty and exclude_tags is empty . Include if tags is not empty and exclude_tags is not empty in this situation the exclude_ags will be ignored since include implies excluding all other tags . Exclude iff tags is empty and exclude_tags is not empty .
fn action_tag_directive_from_tags(
    tags: Vec<String>,
    exclude_tags: Vec<String>,
) -> ActionTagDirective {
    match (tags.is_empty(), exclude_tags.is_empty()) {
        // tags are not empty
        (false, _) => ActionTagDirective::Include(tags),
        // tags are empty, exclude_tags are not empty
        (true, false) => ActionTagDirective::Exclude(exclude_tags),
        _ => ActionTagDirective::AllowAll,
    }
}
fn action_tag_directive_from_tags ( tags : Vec < String > , exclude_tags : Vec < String > , ) -> ActionTagDirective { match ( tags . is_empty ( ) , exclude_tags . is_empty ( ) ) { // tags are not empty ( false , _ ) => ActionTagDirective :: Include ( tags ) , // tags are empty, exclude_tags are not empty ( true , false ) => ActionTagDirective :: Exclude ( exclude_tags ) , _ => ActionTagDirective :: AllowAll , } }
Creates a new ActionTagDirective based on the following rules,
 AllowAll iff tags is empty and exclude_tags is empty.
Creates a new ActionTagDirective based on the following rules AllowAll iff tags is empty and exclude_tags is empty .
tags
Vec<String>
exclude_tags
Vec<String>
tags
Vec<String>
exclude_tags
Vec<String>