<commit_before>﻿// Nu Game Engine.
// Copyright (C) <NAME>, 2013-2020.

namespace Nu
open System
open System.Collections.Generic
open Prime

type [<AbstractClass; Sealed>] Exclude =

    static member byName (compName : string, componentNames : string HashSet) =
        not (componentNames.Contains compName)

    static member byName (compName : string, comp2Name : string, componentNames : string HashSet) =
       not (componentNames.Contains compName) &&
       not (componentNames.Contains comp2Name)

    static member byName (compName : string, comp2Name : string, comp3Name : string, componentNames : string HashSet) =
       not (componentNames.Contains compName) &&
       not (componentNames.Contains comp2Name) &&
       not (componentNames.Contains comp3Name)

    static member byType<'c when
       'c : struct and 'c :> 'c Component>
       (componentNames : string HashSet) =
       Exclude.byName (typeof<'c>.Name, componentNames)

    static member byType<'c, 'c2 when
       'c : struct and 'c :> 'c Component and
       'c2 : struct and 'c2 :> 'c2 Component>
       (componentNames : string HashSet) =
       Exclude.byName (typeof<'c>.Name, typeof<'c2>.Name, componentNames)

    static member byType<'c, 'c2, 'c3 when
       'c : struct and 'c :> 'c Component and
       'c2 : struct and 'c2 :> 'c2 Component and
       'c3 : struct and 'c3 :> 'c3 Component>
       (componentNames : string HashSet) =
       Exclude.byName (typeof<'c>.Name, typeof<'c2>.Name, typeof<'c3>.Name, componentNames)

[<RequireQualifiedAccess>]
module Exclude =

    type Predicate = string HashSet -> bool

type Query<'c, 'w when
    'c : struct and 'c :> 'c Component>
    (compName : string, excluding : Exclude.Predicate, subquery : Subquery, ecs : 'w Ecs) =
<commit_msg>Removed another type alias.<commit_after>﻿// Nu Game Engine.
// Copyright (C) <NAME>, 2013-2020.

namespace Nu
open System
open System.Collections.Generic
open Prime

type [<AbstractClass; Sealed>] Exclude =

    static member byName (compName : string, componentNames : string HashSet) =
        not (componentNames.Contains compName)

    static member byName (compName : string, comp2Name : string, componentNames : string HashSet) =
       not (componentNames.Contains compName) &&
       not (componentNames.Contains comp2Name)

    static member byName (compName : string, comp2Name : string, comp3Name : string, componentNames : string HashSet) =
       not (componentNames.Contains compName) &&
       not (componentNames.Contains comp2Name) &&
       not (componentNames.Contains comp3Name)

    static member byType<'c when
       'c : struct and 'c :> 'c Component>
       (componentNames : string HashSet) =
       Exclude.byName (typeof<'c>.Name, componentNames)

    static member byType<'c, 'c2 when
       'c : struct and 'c :> 'c Component and
       'c2 : struct and 'c2 :> 'c2 Component>
       (componentNames : string HashSet) =
       Exclude.byName (typeof<'c>.Name, typeof<'c2>.Name, componentNames)

    static member byType<'c, 'c2, 'c3 when
       'c : struct and 'c :> 'c Component and
       'c2 : struct and 'c2 :> 'c2 Component and
       'c3 : struct and 'c3 :> 'c3 Component>
       (componentNames : string HashSet) =
       Exclude.byName (typeof<'c>.Name, typeof<'c2>.Name, typeof<'c3>.Name, componentNames)

type Query<'c, 'w when
    'c : struct and 'c :> 'c Component>
    (compName : string, excluding : string HashSet -> bool, subquery : Subquery, ecs : 'w Ecs) =

{'fraction_non_alphanumeric': 0.11605860384946855, 'fraction_numerical': 0.016661878770468257, 'mean_word_length': 3.2463414634146344, 'pattern_counts': {'":': 0, '<': 28, '<?xml version=': 0, '>': 44, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '180676', 'n_tokens_mistral': 1077, 'n_tokens_neox': 1063, 'n_words': 337}