Quartz UI ↗
Browse docs
On this page
Private preview · 0.57.0-devView Markdown

QuartzUIProviderSchema: declaration reference

0.57.0-dev · beta source documentation. Native, Blueprint, Editor and rendering examples are source-reviewed, not executed in Unreal during this scan. See validation and limits.

Pinned source (source: Source/QuartzUIRuntime/Public/QuartzUIProviderSchema.h) · integration recipe · practical guide

FQuartzUIProviderFieldDescriptor

Internal type. Provider Field Descriptor: a declared type in provider field/event/method descriptors and reflected closure validation; use its exact fields/operations below.

Prerequisites / integration: Configured app, explicit reflected value types, saved assets and freshly generated app contract. Use the QuartzUIProviderSchema recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Validate a provider Blueprint and generate the registered app contract. Descriptors belong to generation/binding work.

Avoid: Authoring descriptor structs as gameplay state. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIProviderSchema.h#L9)

FQuartzUIProviderEventDescriptor

Internal type. Provider Event Descriptor: a declared type in provider field/event/method descriptors and reflected closure validation; use its exact fields/operations below.

Prerequisites / integration: Configured app, explicit reflected value types, saved assets and freshly generated app contract. Use the QuartzUIProviderSchema recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Validate a provider Blueprint and generate the registered app contract. Descriptors belong to generation/binding work.

Avoid: Authoring descriptor structs as gameplay state. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIProviderSchema.h#L15)

FQuartzUIProviderMethodDescriptor

Internal type. Provider Method Descriptor: a declared type in provider field/event/method descriptors and reflected closure validation; use its exact fields/operations below.

Prerequisites / integration: Configured app, explicit reflected value types, saved assets and freshly generated app contract. Use the QuartzUIProviderSchema recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Validate a provider Blueprint and generate the registered app contract. Descriptors belong to generation/binding work.

Avoid: Authoring descriptor structs as gameplay state. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIProviderSchema.h#L24)

FQuartzUIProviderDescriptor

Internal type. One immutable reflection result shared by generation and runtime binding.

Prerequisites / integration: Configured app, explicit reflected value types, saved assets and freshly generated app contract. Use the QuartzUIProviderSchema recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Validate a provider Blueprint and generate the registered app contract. Descriptors belong to generation/binding work.

Avoid: Authoring descriptor structs as gameplay state. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIProviderSchema.h#L34)

FQuartzUIProviderSchema

Internal type. Safe, bounded provider reflection policy. No UObject-valued member is accepted.

Prerequisites / integration: Configured app, explicit reflected value types, saved assets and freshly generated app contract. Use the QuartzUIProviderSchema recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Validate a provider Blueprint and generate the registered app contract. Descriptors belong to generation/binding work.

Avoid: Authoring descriptor structs as gameplay state. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIProviderSchema.h#L47)

Complete header

Source snapshot, not an additional example. Unreal annotations distinguish exposed Blueprint nodes from native-only/private methods.

#pragma once

#include "CoreMinimal.h"

class FProperty;
class UClass;
class UFunction;

struct QUARTZUIRUNTIME_API FQuartzUIProviderFieldDescriptor
{
	const FProperty* Property = nullptr;
	FString Name;
};

struct QUARTZUIRUNTIME_API FQuartzUIProviderEventDescriptor
{
	const FProperty* Property = nullptr;
	const UFunction* Signature = nullptr;
	FString Name;
	FString WireName;
	TArray<FQuartzUIProviderFieldDescriptor> Parameters;
};

struct QUARTZUIRUNTIME_API FQuartzUIProviderMethodDescriptor
{
	const UFunction* Function = nullptr;
	const FProperty* ReturnProperty = nullptr;
	FString Name;
	FString WireName;
	TArray<FQuartzUIProviderFieldDescriptor> Parameters;
};

/** One immutable reflection result shared by generation and runtime binding. */
struct QUARTZUIRUNTIME_API FQuartzUIProviderDescriptor
{
	const UClass* ProviderClass = nullptr;
	FString ProviderId;
	FString TypeScriptName;
	FString LifecycleWireName;
	FString StateWireName;
	TArray<FQuartzUIProviderFieldDescriptor> StateFields;
	TArray<FQuartzUIProviderEventDescriptor> Events;
	TArray<FQuartzUIProviderMethodDescriptor> Methods;
};

/** Safe, bounded provider reflection policy. No UObject-valued member is accepted. */
class QUARTZUIRUNTIME_API FQuartzUIProviderSchema final
{
public:
	static constexpr int32 MaxProviders = 32;
	static constexpr int32 MaxStateFields = 128;
	static constexpr int32 MaxEvents = 64;
	static constexpr int32 MaxMethods = 64;
	static constexpr int32 MaxParameters = 32;

	static bool TryBuild(
		const UClass* ProviderClass,
		FQuartzUIProviderDescriptor& OutDescriptor,
		FString& OutError);

	static FString GetMemberName(const FProperty& Property);
	static FString GetTypeScriptName(const UClass& ProviderClass);
	static FString GetWireSlug(const FString& ReflectedName);
};