Skip to main content

Module brick

Module brick 

Source
Expand description

Brick Architecture: Tests ARE the Interface (PROBAR-SPEC-009)

Core abstraction where UI components are defined by test assertions. Brick Architecture: Tests ARE the Interface (PROBAR-SPEC-009)

This module implements the core Brick abstraction where UI components are defined by their test assertions, not by their implementation.

§Design Philosophy

The Brick Architecture inverts the traditional UI/Test relationship:

Traditional: Widget → Tests
Brick:       Brick(Assertions) → Widget + Tests

A Brick defines:

  1. Assertions: What must be true (contrast ratio, visibility, latency)
  2. Budget: Performance envelope (max render time in ms)
  3. Events: State transitions that trigger assertions

§Zero-Artifact Architecture (PROBAR-SPEC-009-P7)

The following brick types generate all web artifacts from Rust:

§Popperian Falsification

Each assertion is a falsifiable hypothesis. If ANY assertion fails, the brick is falsified and cannot render.

§Example

use probar::brick::{Brick, BrickAssertion, BrickBudget};

#[derive(Brick)]
#[brick(
    html = "div.transcription",
    budget_ms = 100,
    assertions = [text_visible, contrast_ratio(4.5)]
)]
struct TranscriptionBrick {
    text: String,
    is_final: bool,
}

§References

  • Popper, K. (1959). The Logic of Scientific Discovery
  • Beizer, B. (1990). Software Testing Techniques
  • PROBAR-SPEC-009: Bug Hunting Probador

Re-exports§

pub use audio::AudioBrick;
pub use audio::AudioParam;
pub use audio::RingBufferConfig;
pub use compute::ComputeBrick;
pub use compute::ElementwiseOp;
pub use compute::ReduceKind;
pub use compute::TensorBinding;
pub use compute::TensorType;
pub use compute::TileOp;
pub use compute::TileStrategy;
pub use deterministic::BrickHistory;
pub use deterministic::BrickState;
pub use deterministic::DeterministicBrick;
pub use deterministic::DeterministicClock;
pub use deterministic::DeterministicRng;
pub use deterministic::ExecutionTrace;
pub use deterministic::GuardSeverity;
pub use deterministic::GuardViolation;
pub use deterministic::GuardedBrick;
pub use deterministic::InvariantGuard;
pub use deterministic::StateValue;
pub use distributed::Backend;
pub use distributed::BackendSelector;
pub use distributed::BrickCoordinator;
pub use distributed::BrickDataTracker;
pub use distributed::BrickInput;
pub use distributed::BrickMessage;
pub use distributed::BrickOutput;
pub use distributed::DataLocation;
pub use distributed::DistributedBrick;
pub use distributed::ExecutionMetrics;
pub use distributed::MultiBrickExecutor;
pub use distributed::SchedulerStats;
pub use distributed::Subscription;
pub use distributed::TaskSpec;
pub use distributed::WorkStealingScheduler;
pub use distributed::WorkStealingTask;
pub use distributed::WorkerId;
pub use distributed::WorkerQueue;
pub use distributed::WorkerStats;
pub use event::EventBinding;
pub use event::EventBrick;
pub use event::EventHandler;
pub use event::EventType;
pub use pipeline::AuditEntry;
pub use pipeline::BrickPipeline;
pub use pipeline::BrickStage;
pub use pipeline::Checkpoint;
pub use pipeline::PipelineAuditCollector;
pub use pipeline::PipelineContext;
pub use pipeline::PipelineData;
pub use pipeline::PipelineError;
pub use pipeline::PipelineMetadata;
pub use pipeline::PipelineResult;
pub use pipeline::PrivacyTier;
pub use pipeline::StageTrace;
pub use pipeline::ValidationLevel;
pub use pipeline::ValidationMessage;
pub use pipeline::ValidationResult;
pub use tui::AnalyzerBrick;
pub use tui::CielabColor;
pub use tui::CollectorBrick;
pub use tui::CollectorError;
pub use tui::PanelBrick;
pub use tui::PanelId;
pub use tui::PanelState;
pub use tui::RingBuffer;
pub use web_sys_gen::get_base_url;
pub use web_sys_gen::BlobUrl;
pub use web_sys_gen::CustomEventDispatcher;
pub use web_sys_gen::EventDetail;
pub use web_sys_gen::FetchClient;
pub use web_sys_gen::GeneratedWebSys;
pub use web_sys_gen::GenerationMetadata;
pub use web_sys_gen::PerformanceTiming;
pub use web_sys_gen::WebSysError;
pub use web_sys_gen::GENERATION_METADATA;
pub use widget::commands_to_gpu_instances;
pub use widget::Canvas;
pub use widget::Constraints;
pub use widget::CornerRadius;
pub use widget::DrawCommand;
pub use widget::Event;
pub use widget::GpuInstance;
pub use widget::LayoutResult;
pub use widget::LineCap;
pub use widget::LineJoin;
pub use widget::Modifiers;
pub use widget::RecordingCanvas;
pub use widget::Rect;
pub use widget::RenderMetrics;
pub use widget::Size;
pub use widget::StrokeStyle;
pub use widget::TextStyle;
pub use widget::Transform2D;
pub use widget::Widget;
pub use widget::WidgetColor;
pub use widget::WidgetExt;
pub use widget::WidgetMouseButton;
pub use widget::WidgetPoint;
pub use worker::BrickWorkerMessage;
pub use worker::BrickWorkerMessageDirection;
pub use worker::FieldType;
pub use worker::MessageField;
pub use worker::WorkerBrick;
pub use worker::WorkerTransition;

Modules§

audio
AudioBrick: AudioWorklet code generation from brick definitions (PROBAR-SPEC-009-P7)
compute
ComputeBrick: WebGPU shader generation from brick definitions (PROBAR-SPEC-009-P8)
deterministic
DeterministicBrick: Pure functional brick execution (PROBAR-SPEC-009-P11)
distributed
DistributedBrick: Work-stealing and data locality (PROBAR-SPEC-009-P10)
event
EventBrick: DOM event handler generation from brick definitions (PROBAR-SPEC-009-P7)
pipeline
BrickPipeline: Orchestration for multi-brick workflows (PROBAR-SPEC-009-P9)
tui
TUI Brick Traits (PROBAR-SPEC-009-P13)
web_sys_gen
WebSys Code Generation (PROBAR-SPEC-009-P7: PROBAR-WEBSYS-001)
widget
Widget Integration: Verify-Measure-Layout-Paint (PROBAR-SPEC-009-P12)
worker
WorkerBrick: Web Worker code generation from brick definitions (PROBAR-SPEC-009-P7)

Structs§

BrickBudget
Performance budget for a brick.
BrickVerification
Result of verifying brick assertions
BudgetViolation
Budget violation report

Enums§

BrickAssertion
Brick assertion that must be verified at runtime.
BrickError
Yuan Gate: Zero-swallow error handling for bricks
BrickPhase
Rendering phase for budget tracking

Traits§

Brick
Core Brick trait - the foundation of the Brick Architecture.

Type Aliases§

BrickResult
Result type for brick operations