Skip to main content

ProcessCube

Struct ProcessCube 

Source
pub struct ProcessCube<Log, const DIMENSIONS: usize> {
    pub log: PhantomData<Log>,
}
Expand description

The process cube metamodel — typed shape without execution.

§What this is

The top-level structure for the process cube: a Log type parameter represents the kind of event log the cube is built over, and DIMENSIONS is the count of named dimensions the cube is indexed by at this usage site.

This is structure only: holding a ProcessCube<Log, N> means you have declared that you intend to analyze Log across N dimensions. The actual cube computation (sub-log extraction, cell discovery, cross-cell comparison) graduates to wasm4pm.

§What this is not

Not a runtime cube. No sub-log extraction, no model per cell, no comparison engine is present here.

§Graduate to wasm4pm

All computation on this shape graduates to wasm4pm.

§Examples

use wasm4pm_compat::process_cube::ProcessCube;
use core::marker::PhantomData;

struct MyLog;
let _cube: ProcessCube<MyLog, 3> = ProcessCube { log: PhantomData };

Fields§

§log: PhantomData<Log>

Phantom binding to the log type the cube is built over.

Implementations§

Source§

impl<Log, const DIMENSIONS: usize> ProcessCube<Log, DIMENSIONS>

Source

pub fn new() -> Self

Construct a new ProcessCube shape marker.

§Examples
use wasm4pm_compat::process_cube::ProcessCube;
struct MyLog;
let cube: ProcessCube<MyLog, 2> = ProcessCube::new();
assert_eq!(cube.dimension_count(), 2);
Source

pub const fn dimension_count(&self) -> usize

The number of dimensions this cube is indexed by.

§Examples
use wasm4pm_compat::process_cube::ProcessCube;
struct MyLog;
let cube: ProcessCube<MyLog, 4> = ProcessCube::new();
assert_eq!(cube.dimension_count(), 4);

Trait Implementations§

Source§

impl<Log, const DIMENSIONS: usize> Default for ProcessCube<Log, DIMENSIONS>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<Log, const DIMENSIONS: usize> Freeze for ProcessCube<Log, DIMENSIONS>

§

impl<Log, const DIMENSIONS: usize> RefUnwindSafe for ProcessCube<Log, DIMENSIONS>
where Log: RefUnwindSafe,

§

impl<Log, const DIMENSIONS: usize> Send for ProcessCube<Log, DIMENSIONS>
where Log: Send,

§

impl<Log, const DIMENSIONS: usize> Sync for ProcessCube<Log, DIMENSIONS>
where Log: Sync,

§

impl<Log, const DIMENSIONS: usize> Unpin for ProcessCube<Log, DIMENSIONS>
where Log: Unpin,

§

impl<Log, const DIMENSIONS: usize> UnsafeUnpin for ProcessCube<Log, DIMENSIONS>

§

impl<Log, const DIMENSIONS: usize> UnwindSafe for ProcessCube<Log, DIMENSIONS>
where Log: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> EvidenceKind for T

Source§

default fn kind_label(&self) -> &'static str

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.