v0.2.14-pre.004

This commit is contained in:
2026-08-28 14:21:21 +02:00
parent 27d4cb1f36
commit bcf2f16c05
11 changed files with 649 additions and 89 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-program-api/tests/public_api.rs
// version: 2
// version: 3
//! Integration canaries for the public `ksp-program-api` foundation.
@@ -47,3 +47,31 @@ fn public_pre_003_recognition_and_decode_outcome_are_available_from_crate_root()
assert_eq!(std::format!("{unsupported:?}"), "Unsupported");
return;
}
#[test]
fn public_pre_004_instruction_decoder_trait_is_available_from_crate_root() {
let decoder = NeverInstantiatedDecoder;
assert!(ksp_program_api::ProgramInstructionDecoder::program_ids(&decoder).is_empty());
return;
}
struct NeverInstantiatedDecoder;
impl ksp_program_api::ProgramInstructionDecoder for NeverInstantiatedDecoder {
type Decoded = u8;
fn program_ids(&self) -> &[ksp_program_api::Pubkey] {
return &[];
}
fn recognize(&self, _instruction: &ksp_program_api::ProgramInstruction) -> ksp_program_api::ProgramInstructionRecognition {
return ksp_program_api::ProgramInstructionRecognition::NoMatch;
}
fn decode(
&self,
_instruction: &ksp_program_api::ProgramInstruction,
) -> ksp_program_api::Result<ksp_program_api::ProgramInstructionDecodeOutcome<Self::Decoded>> {
return std::result::Result::Ok(ksp_program_api::ProgramInstructionDecodeOutcome::Unsupported);
}
}