// Autogenerated from CppHeaderCreator
// Created by Sc2ad
// =========================================================================
#pragma once
// Begin includes
#include "extern/beatsaber-hook/shared/utils/typedefs.h"
#include "extern/beatsaber-hook/shared/utils/byref.hpp"
// Including type: ModestTree.LinqExtensions
#include "ModestTree/LinqExtensions.hpp"
#include "extern/beatsaber-hook/shared/utils/il2cpp-utils-methods.hpp"
#include "extern/beatsaber-hook/shared/utils/il2cpp-utils-properties.hpp"
#include "extern/beatsaber-hook/shared/utils/il2cpp-utils-fields.hpp"
#include "extern/beatsaber-hook/shared/utils/utils.h"
// Completed includes
// Begin forward declares
// Forward declaring namespace: System
namespace System {
  // Forward declaring type: Func`2<T, TResult>
  template<typename T, typename TResult>
  class Func_2;
}
// Forward declaring namespace: System::Linq
namespace System::Linq {
  // Forward declaring type: IGrouping`2<TKey, TElement>
  template<typename TKey, typename TElement>
  class IGrouping_2;
}
// Completed forward declares
// Type namespace: ModestTree
namespace ModestTree {
  // Forward declaring type: <>c__7`1<T>
  template<typename T>
  class $$c__7_1;
}
#include "extern/beatsaber-hook/shared/utils/il2cpp-type-check.hpp"
DEFINE_IL2CPP_ARG_TYPE_GENERIC_CLASS(ModestTree::LinqExtensions::$$c__7_1, "ModestTree", "LinqExtensions/<>c__7`1");
// Type namespace: ModestTree
namespace ModestTree {
  // WARNING Size may be invalid!
  // Autogenerated type: ModestTree.LinqExtensions/ModestTree.<>c__7`1
  // [TokenAttribute] Offset: FFFFFFFF
  // [CompilerGeneratedAttribute] Offset: FFFFFFFF
  template<typename T>
  class LinqExtensions::$$c__7_1 : public ::Il2CppObject {
    public:
    // Autogenerated static field getter
    // Get static field: static public readonly ModestTree.LinqExtensions/ModestTree.<>c__7`1<T> <>9
    static ModestTree::LinqExtensions::$$c__7_1<T>* _get_$$9() {
      static auto ___internal__logger = ::Logger::get().WithContext("ModestTree::LinqExtensions::$$c__7_1::_get_$$9");
      return THROW_UNLESS((il2cpp_utils::GetFieldValue<ModestTree::LinqExtensions::$$c__7_1<T>*>(il2cpp_utils::il2cpp_type_check::il2cpp_no_arg_class<LinqExtensions::$$c__7_1<T>*>::get(), "<>9")));
    }
    // Autogenerated static field setter
    // Set static field: static public readonly ModestTree.LinqExtensions/ModestTree.<>c__7`1<T> <>9
    static void _set_$$9(ModestTree::LinqExtensions::$$c__7_1<T>* value) {
      static auto ___internal__logger = ::Logger::get().WithContext("ModestTree::LinqExtensions::$$c__7_1::_set_$$9");
      THROW_UNLESS((il2cpp_utils::SetFieldValue(il2cpp_utils::il2cpp_type_check::il2cpp_no_arg_class<LinqExtensions::$$c__7_1<T>*>::get(), "<>9", value)));
    }
    // Autogenerated static field getter
    // Get static field: static public System.Func`2<T,T> <>9__7_0
    static System::Func_2<T, T>* _get_$$9__7_0() {
      static auto ___internal__logger = ::Logger::get().WithContext("ModestTree::LinqExtensions::$$c__7_1::_get_$$9__7_0");
      return THROW_UNLESS((il2cpp_utils::GetFieldValue<System::Func_2<T, T>*>(il2cpp_utils::il2cpp_type_check::il2cpp_no_arg_class<LinqExtensions::$$c__7_1<T>*>::get(), "<>9__7_0")));
    }
    // Autogenerated static field setter
    // Set static field: static public System.Func`2<T,T> <>9__7_0
    static void _set_$$9__7_0(System::Func_2<T, T>* value) {
      static auto ___internal__logger = ::Logger::get().WithContext("ModestTree::LinqExtensions::$$c__7_1::_set_$$9__7_0");
      THROW_UNLESS((il2cpp_utils::SetFieldValue(il2cpp_utils::il2cpp_type_check::il2cpp_no_arg_class<LinqExtensions::$$c__7_1<T>*>::get(), "<>9__7_0", value)));
    }
    // Autogenerated static field getter
    // Get static field: static public System.Func`2<System.Linq.IGrouping`2<T,T>,System.Boolean> <>9__7_1
    static System::Func_2<System::Linq::IGrouping_2<T, T>*, bool>* _get_$$9__7_1() {
      static auto ___internal__logger = ::Logger::get().WithContext("ModestTree::LinqExtensions::$$c__7_1::_get_$$9__7_1");
      return THROW_UNLESS((il2cpp_utils::GetFieldValue<System::Func_2<System::Linq::IGrouping_2<T, T>*, bool>*>(il2cpp_utils::il2cpp_type_check::il2cpp_no_arg_class<LinqExtensions::$$c__7_1<T>*>::get(), "<>9__7_1")));
    }
    // Autogenerated static field setter
    // Set static field: static public System.Func`2<System.Linq.IGrouping`2<T,T>,System.Boolean> <>9__7_1
    static void _set_$$9__7_1(System::Func_2<System::Linq::IGrouping_2<T, T>*, bool>* value) {
      static auto ___internal__logger = ::Logger::get().WithContext("ModestTree::LinqExtensions::$$c__7_1::_set_$$9__7_1");
      THROW_UNLESS((il2cpp_utils::SetFieldValue(il2cpp_utils::il2cpp_type_check::il2cpp_no_arg_class<LinqExtensions::$$c__7_1<T>*>::get(), "<>9__7_1", value)));
    }
    // Autogenerated static field getter
    // Get static field: static public System.Func`2<System.Linq.IGrouping`2<T,T>,T> <>9__7_2
    static System::Func_2<System::Linq::IGrouping_2<T, T>*, T>* _get_$$9__7_2() {
      static auto ___internal__logger = ::Logger::get().WithContext("ModestTree::LinqExtensions::$$c__7_1::_get_$$9__7_2");
      return THROW_UNLESS((il2cpp_utils::GetFieldValue<System::Func_2<System::Linq::IGrouping_2<T, T>*, T>*>(il2cpp_utils::il2cpp_type_check::il2cpp_no_arg_class<LinqExtensions::$$c__7_1<T>*>::get(), "<>9__7_2")));
    }
    // Autogenerated static field setter
    // Set static field: static public System.Func`2<System.Linq.IGrouping`2<T,T>,T> <>9__7_2
    static void _set_$$9__7_2(System::Func_2<System::Linq::IGrouping_2<T, T>*, T>* value) {
      static auto ___internal__logger = ::Logger::get().WithContext("ModestTree::LinqExtensions::$$c__7_1::_set_$$9__7_2");
      THROW_UNLESS((il2cpp_utils::SetFieldValue(il2cpp_utils::il2cpp_type_check::il2cpp_no_arg_class<LinqExtensions::$$c__7_1<T>*>::get(), "<>9__7_2", value)));
    }
    // static private System.Void .cctor()
    // Offset: 0xFFFFFFFF
    static void _cctor() {
      static auto ___internal__logger = ::Logger::get().WithContext("ModestTree::LinqExtensions::$$c__7_1::.cctor");
      static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(::il2cpp_utils::il2cpp_type_check::il2cpp_no_arg_class<LinqExtensions::$$c__7_1<T>*>::get(), ".cctor", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
      ::il2cpp_utils::RunMethodThrow<void, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method);
    }
    // T <GetDuplicates>b__7_0(T x)
    // Offset: 0xFFFFFFFF
    T $GetDuplicates$b__7_0(T x) {
      static auto ___internal__logger = ::Logger::get().WithContext("ModestTree::LinqExtensions::$$c__7_1::<GetDuplicates>b__7_0");
      static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "<GetDuplicates>b__7_0", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(x)})));
      return ::il2cpp_utils::RunMethodThrow<T, false>(this, ___internal__method, x);
    }
    // System.Boolean <GetDuplicates>b__7_1(System.Linq.IGrouping`2<T,T> x)
    // Offset: 0xFFFFFFFF
    bool $GetDuplicates$b__7_1(System::Linq::IGrouping_2<T, T>* x) {
      static auto ___internal__logger = ::Logger::get().WithContext("ModestTree::LinqExtensions::$$c__7_1::<GetDuplicates>b__7_1");
      static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "<GetDuplicates>b__7_1", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(x)})));
      return ::il2cpp_utils::RunMethodThrow<bool, false>(this, ___internal__method, x);
    }
    // T <GetDuplicates>b__7_2(System.Linq.IGrouping`2<T,T> x)
    // Offset: 0xFFFFFFFF
    T $GetDuplicates$b__7_2(System::Linq::IGrouping_2<T, T>* x) {
      static auto ___internal__logger = ::Logger::get().WithContext("ModestTree::LinqExtensions::$$c__7_1::<GetDuplicates>b__7_2");
      static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "<GetDuplicates>b__7_2", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(x)})));
      return ::il2cpp_utils::RunMethodThrow<T, false>(this, ___internal__method, x);
    }
    // public System.Void .ctor()
    // Offset: 0xFFFFFFFF
    // Implemented from: System.Object
    // Base method: System.Void Object::.ctor()
    template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
    static LinqExtensions::$$c__7_1<T>* New_ctor() {
      static auto ___internal__logger = ::Logger::get().WithContext("ModestTree::LinqExtensions::$$c__7_1::.ctor");
      return THROW_UNLESS((::il2cpp_utils::New<LinqExtensions::$$c__7_1<T>*, creationType>()));
    }
  }; // ModestTree.LinqExtensions/ModestTree.<>c__7`1
  // Could not write size check! Type: ModestTree.LinqExtensions/ModestTree.<>c__7`1 is generic, or has no fields that are valid for size checks!
}
#include "extern/beatsaber-hook/shared/utils/il2cpp-utils-methods.hpp"
