geokernel-sys 1.5.31

Dynamically loaded C ABI bindings for the GeoKernel SDK
Documentation
use geokernel_sys::*;
use std::mem::{align_of, offset_of, size_of};
macro_rules! layout {
    ($t:ty) => {
        println!(
            "{}:{}:{}",
            stringify!($t),
            size_of::<$t>(),
            align_of::<$t>()
        );
    };
    ($t:ty, $field:ident, $native:literal) => {
        println!("{}.{}:{}", stringify!($t), $native, offset_of!($t, $field));
    };
}
fn main() {
    layout!(GeoKernelViewerExtent);
    layout!(GeoKernelViewerScreenRectangle);
    layout!(GeoKernelViewerEventData);
    layout!(GeoKernelViewerRouteSummary);
    layout!(GeoKernelOperationContextV1);
    layout!(GeoKernelViewerEventData, double_value, "doubleValue");
    layout!(GeoKernelViewerEventData, extent, "extent");
    layout!(
        GeoKernelViewerEventData,
        screen_rectangle,
        "screenRectangle"
    );
    layout!(GeoKernelViewerRouteSummary, total_distance, "totalDistance");
    layout!(
        GeoKernelViewerRouteSummary,
        route_layer_index,
        "routeLayerIndex"
    );
    layout!(GeoKernelOperationContextV1, user_data, "userData");
    layout!(GeoKernelOperationContextV1, cancellation, "cancellation");
    layout!(GeoKernelOperationContextV1, progress, "progress");
    layout!(GeoKernelOperationContextV1, diagnostic, "diagnostic");
    layout!(
        GeoKernelOperationContextV1,
        maximum_memory_bytes,
        "maximumMemoryBytes"
    );
    layout!(
        GeoKernelOperationContextV1,
        maximum_spatial_area,
        "maximumSpatialArea"
    );
}