// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "AssetRegistry/AssetData.h" #include "UObject/ObjectMacros.h" #include "MVVMDebugItemId.h" struct FMVVMViewDebugEntry; struct FMVVMViewClassDebugEntry; struct FMVVMViewModelDebugEntry; class UMVVMViewClass; namespace UE::MVVM { class MODELVIEWVIEWMODELDEBUGGER_API FDebugSnapshot { private: TArray> Views; TArray> ViewClasses; TArray> ViewModels; public: TArrayView> GetViews() { return Views; } TArrayView> GetViewModels() { return ViewModels; } TSharedPtr FindView(FGuid Id) const; TSharedPtr FindViewModel(FGuid Id) const; static TSharedPtr CreateSnapshot(); private: TSharedRef FindOrAddViewClassEntry(const UMVVMViewClass* ViewClass); }; };