// file: ks-lib/tests/external_solana_program_metadata_model_api.rs // version: 2 //! Downstream-style compilation contract for Solana Program Metadata models. #[test] fn external_consumers_use_only_crate_root_model_exports() { let seed_result = ks_lib::DcMetadataSpmSeed::from_utf8("idl"); assert!(seed_result.is_ok()); let seed; if let std::result::Result::Ok(value) = seed_result { seed = value; } else { return; } assert_eq!(seed.trimmed_utf8(), std::result::Result::Ok("idl")); assert_eq!(seed.as_bytes().len(), ks_lib::DC_METADATA_SPM_SEED_BYTES); let external = ks_lib::DcMetadataSpmExternalData::from_zeroable_length( solana_pubkey::Pubkey::new_from_array([9_u8; 32]), 4, 8, ); let data = ks_lib::DcMetadataSpmData::External(external); assert_eq!(data.source(), ks_lib::DcMetadataSpmDataSource::External); assert_eq!(data.wire_length_u32(), std::result::Result::Ok(40),); assert_eq!(ks_lib::DcMetadataSpmProgramError::InvalidDataLength.code(), 4); assert_eq!(ks_lib::DC_METADATA_SPM_BUFFER_HEADER_BYTES, 96); assert_eq!(ks_lib::DC_METADATA_SPM_METADATA_HEADER_BYTES, 96); assert_eq!(ks_lib::DC_METADATA_SPM_EXTERNAL_DATA_BYTES, 40); }