Skip to main content

Resource System

PrismFoundation provides a typed resource system for strings, images, and log messages. Instead of raw string literals scattered through code, resources are defined as enum cases with compile-time safety.

PrismResourceString

Typed string resources ensure you never mistype a key or use a stale string constant.
Defining String Resources

PrismResourceImage

Typed image resources with the same pattern — reference images by enum case instead of raw string names.
Defining Image Resources

Log Messages

PrismFoundation uses typed log messages for structured logging across modules.

PrismResourceLogMessage

The base protocol for typed log messages. Each module defines its own message enum conforming to this protocol.

PrismFoundationLogMessage

The built-in log message type used by PrismFoundation itself:
Foundation Log Messages

Resource Pattern

All Prism resource types follow the same pattern:
  1. Define an enum conforming to the resource protocol
  2. Each case represents a specific resource
  3. The framework resolves cases to actual values at runtime
Complete Resource Example
The resource system is designed so each module (PrismNetwork, PrismUI, etc.) defines its own resource enums. This keeps log messages, strings, and images scoped and type-safe within their module.

PrismResourceString

Compile-time safe string resource references. No more typos in string keys.

PrismResourceImage

Typed image references resolved from asset catalogs at runtime.

PrismResourceLogMessage

Per-module typed log messages with associated values for structured logging.