export_candid
is exporting the internal names of a test crate rather than the exposed public names.
How can I fix this?
Lib:
mod my_module {
use candid::{CandidType};
use serde::Deserialize;
#[derive(CandidType, Deserialize)]
pub struct Demo {
pub text: String,
}
}
pub use my_module::Demo as ExposedDemo;
Consumer:
use ic_cdk::{export_candid, query};
use lib::{ExposedDemo};
#[query]
fn greet(name: String) -> ExposedDemo {
ExposedDemo {
text: format!("Hello, {}!", name)
}
}
export_candid!();
Result
type Demo = record { "text" : text };
service : { greet : (text) -> (Demo) query }