// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" class FCmdLineParameter { public: FCmdLineParameter() = delete; FCmdLineParameter(FString InKey, bool InIsRequired, FString InDescription, bool InIsFlag = false, TFunction InValidator = nullptr, TFunction InParseInPlace = nullptr) : Key(InKey), bIsRequired(InIsRequired), bIsFlag(InIsFlag), Description(InDescription), Validator(InValidator), Parser(InParseInPlace) {} FString Key; bool bIsRequired; bool bIsFlag; FString Description; bool IsValid(const FString& value) const { if(Validator != nullptr) { return Validator(value); } return true; } void CustomParse(FString& InOutValue) const { if(Parser != nullptr) { Parser(InOutValue); } } private: TFunction Validator; TFunction Parser; };