pub fn program_return(
    log_collector: &Option<Rc<RefCell<LogCollector>>>,
    program_id: &Pubkey,
    data: &[u8],
) {
    ic_logger_msg!(
        log_collector,
        "Program return: {} {}",
        program_id,
        base64::encode(data)
    );
}
/// Log return data as from the program itself. This line will not be present if no return
/// data was set, or if the return data was set to zero length.
///
/// The general form is:
///
/// ```notrust
/// "Program return: <program-id> <program-generated-data-in-base64>"
/// ```
///
/// That is, any program-generated output is guaranteed to be prefixed by "Program return: "
Log return data as from the program itself. This line will not be present if no return
data was set, or if the return data was set to zero length.

The general form is.



That is, any program-generated output is guaranteed to be prefixed by "Program return: "
Log return data as from the program itself . This line will not be present if no return data was set or if the return data was set to zero length . The general form is . That is any program - generated output is guaranteed to be prefixed by " Program return : "
pub fn program_return(
    log_collector: &Option<Rc<RefCell<LogCollector>>>,
    program_id: &Pubkey,
    data: &[u8],
) {
    ic_logger_msg!(
        log_collector,
        "Program return: {} {}",
        program_id,
        base64::encode(data)
    );
}
pub fn program_return ( log_collector : & Option < Rc < RefCell < LogCollector > > > , program_id : & Pubkey , data : & [ u8 ] , ) { ic_logger_msg ! ( log_collector " " program_id base64 encode ( data ) ) ; }
Log return data as from the program itself.
Log return data as from the program itself .
log_collector
&Option<Rc<RefCell<LogCollector>>>
program_id
&Pubkey
data
&[u8]