containerization-framework 0.5.0

Rust bindings for Apple's Containerization framework: Linux containers in lightweight VMs, in-process and without a daemon.
//! Plain values: primitives, platforms, addresses, the OCI runtime spec,
//! bundles, progress and proxies.

use super::CzOutcome;
use super::ProgressKind;
use crate::containerization_extras::address;
use crate::containerization_oci;
use std::collections::BTreeMap;

taken!(
  optional_int32 -> Option<i32>,
  integer -> i64,
  boolean -> bool,
  is_some -> bool,
  ipv4_address -> address::IPv4Address,
  ipv6_address -> address::IPv6Address,
  ip_address -> address::IPAddress,
  prefix -> address::Prefix,
  cidr_v4 -> address::CIDRv4,
  cidr_v6 -> address::CIDRv6,
  cidr -> address::CIDR,
  mac_address -> address::MACAddress,
  optional_ipv4_address -> Option<address::IPv4Address>,
  optional_ipv6_address -> Option<address::IPv6Address>,
  optional_cidr_v6 -> Option<address::CIDRv6>,
  optional_mac_address -> Option<address::MACAddress>,
  uint128 -> u128,
  platform -> containerization_oci::image::Platform,
  spec -> containerization_oci::runtime::Spec,
  process -> containerization_oci::runtime::Process,
  oci_linux_capabilities -> containerization_oci::runtime::LinuxCapabilities,
  posix_rlimit -> containerization_oci::runtime::POSIXRlimit,
  seccomp -> containerization_oci::runtime::LinuxSeccomp,
  runtime_spec_version -> containerization_oci::runtime::RuntimeSpecVersion,
  optional_text -> Option<String>,
  number -> u64,
  text -> String,
  strings -> Vec<String>,
  has_bytes -> bool,
  bytes -> Vec<u8>,
  int32 -> i32,
  int32_map -> BTreeMap<String, i32>,
);

failing!(
  cz_platform_current(),
  cz_platform_parse(&str),
  cz_platform_description(containerization_oci::image::Platform),
  cz_platform_equals(
    containerization_oci::image::Platform,
    containerization_oci::image::Platform
  ),
  cz_platform_matches(
    containerization_oci::image::Platform,
    containerization_oci::image::Platform
  ),
  cz_progress_event_event(ProgressKind, i64),
  cz_proxy_from_environment(Option<String>, &str, bool, Vec<String>, Vec<String>),
  cz_process_from_image_config(containerization_oci::image::ImageConfig),
  cz_process_description(containerization_oci::runtime::Process),
  cz_hook_description(containerization_oci::runtime::Hook),
  cz_linux_seccomp_decode(Vec<u8>),
  cz_linux_seccomp_default_profile(bool, containerization_oci::runtime::LinuxCapabilities, &str),
  cz_arch_current(),
  cz_arch_current_verified(),
  cz_runtime_spec_version_current(),
  cz_bundle_create(&str, containerization_oci::runtime::Spec),
  cz_bundle_create_from_data(&str, Vec<u8>),
  cz_bundle_load(&str),
  cz_bundle_config_path(&str),
  cz_bundle_rootfs_path(&str),
  cz_bundle_delete(&str),
  cz_bundle_load_config(&str),
  cz_ipv4_address_from_bytes(Vec<u8>),
  cz_ipv4_address_parse(&str),
  cz_ipv4_address_bytes(u32),
  cz_ipv4_address_description(u32),
  cz_ipv4_address_is_unspecified(u32),
  cz_ipv4_address_is_loopback(u32),
  cz_ipv4_address_is_multicast(u32),
  cz_ipv4_address_is_link_local(u32),
  cz_ipv4_address_is_broadcast(u32),
  cz_ipv4_address_less_than(u32, u32),
  cz_ipv6_address_parse(&str),
  cz_ipv6_address_from_bytes(Vec<u8>, Option<String>),
  cz_ipv6_address_unspecified(),
  cz_ipv6_address_loopback(),
  cz_ipv6_address_bytes(address::IPv6Address),
  cz_ipv6_address_description(address::IPv6Address),
  cz_ipv6_address_is_unspecified(address::IPv6Address),
  cz_ipv6_address_is_loopback(address::IPv6Address),
  cz_ipv6_address_is_multicast(address::IPv6Address),
  cz_ipv6_address_is_link_local(address::IPv6Address),
  cz_ipv6_address_is_unique_local(address::IPv6Address),
  cz_ipv6_address_is_global_unicast(address::IPv6Address),
  cz_ipv6_address_is_documentation(address::IPv6Address),
  cz_ipv6_address_less_than(address::IPv6Address, address::IPv6Address),
  cz_ip_address_parse(&str),
  cz_ip_address_description(address::IPAddress),
  cz_ip_address_is_v4(address::IPAddress),
  cz_ip_address_is_v6(address::IPAddress),
  cz_ip_address_ipv4(address::IPAddress),
  cz_ip_address_ipv6(address::IPAddress),
  cz_ip_address_is_loopback(address::IPAddress),
  cz_ip_address_is_multicast(address::IPAddress),
  cz_ip_address_is_unspecified(address::IPAddress),
  cz_prefix_new(u8),
  cz_prefix_ipv4(u8),
  cz_prefix_ipv6(u8),
  cz_prefix_description(u8),
  cz_prefix_suffix_mask32(u8),
  cz_prefix_prefix_mask32(u8),
  cz_prefix_suffix_mask128(u8),
  cz_prefix_prefix_mask128(u8),
  cz_cidr_v4_parse(&str),
  cz_cidr_v4_new(u32, u8),
  cz_cidr_v4_from_range(u32, u32),
  cz_cidr_v4_lower(u32, u8),
  cz_cidr_v4_upper(u32, u8),
  cz_cidr_v4_gateway(u32, u8),
  cz_cidr_v4_contains(u32, u8, u32),
  cz_cidr_v4_description(u32, u8),
  cz_cidr_v6_parse(&str),
  cz_cidr_v6_new(address::IPv6Address, u8),
  cz_cidr_v6_from_range(address::IPv6Address, address::IPv6Address),
  cz_cidr_v6_lower(address::IPv6Address, u8),
  cz_cidr_v6_upper(address::IPv6Address, u8),
  cz_cidr_v6_gateway(address::IPv6Address, u8),
  cz_cidr_v6_contains(address::IPv6Address, u8, address::IPv6Address),
  cz_cidr_v6_description(address::IPv6Address, u8),
  cz_cidr_parse(&str),
  cz_cidr_new(address::IPAddress, u8),
  cz_cidr_from_range(address::IPAddress, address::IPAddress),
  cz_cidr_address(address::IPAddress, u8),
  cz_cidr_prefix(address::IPAddress, u8),
  cz_cidr_lower(address::IPAddress, u8),
  cz_cidr_upper(address::IPAddress, u8),
  cz_cidr_contains(address::IPAddress, u8, address::IPAddress),
  cz_cidr_description(address::IPAddress, u8),
  cz_mac_address_new(u64),
  cz_mac_address_from_bytes(Vec<u8>),
  cz_mac_address_parse(&str),
  cz_mac_address_bytes(u64),
  cz_mac_address_description(u64),
  cz_mac_address_is_locally_administered(u64),
  cz_mac_address_is_multicast(u64),
  cz_mac_address_ipv6_address(u64, address::IPv6Address),
  cz_mac_address_less_than(u64, u64),
  cz_capability_name_parse(&str),
  cz_capability_set_parse(&str),
);