gear-core 2.0.0-pre.1

Gear core library
Documentation
// Copyright (C) Gear Technologies Inc.
// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0

//! Execution settings

use core::slice;
pub use gsys::EnvVars as EnvVarsV1;

/// All supported versions of execution settings
pub enum EnvVars {
    /// Values of execution settings V1
    // When a new version is introduced in gsys, the previous version should be
    // copied here as EnvVarsV1 whereas the most recent version should be bound
    // to the variant corresponding to it
    V1(EnvVarsV1),
}

impl EnvVars {
    /// Returns byte representation of execution settings
    pub fn to_bytes(&self) -> &[u8] {
        match self {
            EnvVars::V1(v1) => {
                let ptr = v1 as *const EnvVarsV1 as *const u8;
                unsafe { slice::from_raw_parts(ptr, size_of::<EnvVarsV1>()) }
            }
        }
    }
}