interoptopus_csharp 0.16.4

The C# backend for Interoptopus.
Documentation
use anyhow::Error;
use interoptopus::lang::NAMESPACE_COMMON;
use interoptopus_backend_csharp::{Interop, WriteTypes};
use interoptopus_reference_project::ffi_inventory;
use tests::backend_csharp::common_namespace_mappings;
use tests::validate_output;

#[test]
fn prerequisites() -> Result<(), Error> {
    let generated_common = Interop::builder()
        .inventory(ffi_inventory())
        .namespace_id(NAMESPACE_COMMON.to_string())
        .namespace_mappings(common_namespace_mappings())
        .dll_name("interoptopus_reference_project".to_string())
        .write_types(WriteTypes::NamespaceAndInteroptopusGlobal)
        .build()?
        .to_string()?;

    let generated_other = Interop::builder()
        .inventory(ffi_inventory())
        .namespace_mappings(common_namespace_mappings())
        .dll_name("interoptopus_reference_project".to_string())
        .write_types(WriteTypes::Namespace)
        .build()?
        .to_string()?;

    validate_output!("tests/csharp_benchmarks", "Interop.common.cs", generated_common.as_str());
    validate_output!("tests/csharp_benchmarks", "Interop.cs", generated_other.as_str());

    Ok(())
}