Skip to main content

ruda_kernel/dsl/frontend/
comptime.rs

1use alloc::rc::Rc;
2use crate::dsl::prelude::*;
3use ruda_core::ir::{DeviceProperties, HardwareProperties};
4use ruda_kernel_macros::intrinsic;
5
6/// Retrieves the [`device_properties`](DeviceProperties).
7#[ruda]
8#[allow(unused_variables)]
9pub fn device_properties() -> comptime_type!(Rc<DeviceProperties>) {
10    intrinsic!(|scope| scope.properties.as_ref().unwrap().clone())
11}
12
13/// Retrieves the [`hardware_properties`](HardwareProperties).
14#[ruda]
15#[allow(unused_variables)]
16pub fn hardware_properties() -> comptime_type!(HardwareProperties) {
17    let props = &device_properties().comptime().hardware;
18    comptime!(props.clone())
19}