hedera 0.10.0

The SDK for interacting with Hedera Hashgraph.
Documentation
/*
 * ‌
 * Hedera Rust SDK
 * ​
 * Copyright (C) 2022 - 2023 Hedera Hashgraph, LLC
 * ​
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ‍
 */

#[cfg(not(feature = "ffi"))]
fn main() {}

#[cfg(feature = "ffi")]
fn main() -> anyhow::Result<()> {
    use std::env;

    use cbindgen::{
        Config,
        EnumConfig,
        Language,
        RenameRule,
    };

    cbindgen::Builder::new()
        .with_config(Config {
            cpp_compat: true,
            enumeration: EnumConfig {
                rename_variants: RenameRule::QualifiedScreamingSnakeCase,
                ..Default::default()
            },
            ..Default::default()
        })
        .with_crate(env::var("CARGO_MANIFEST_DIR")?)
        .with_include_version(true)
        .with_include_guard("_HEDERA_H")
        .with_language(Language::C)
        .with_item_prefix("Hedera")
        .generate()?
        .write_to_file("../c/include/hedera.h");

    Ok(())
}