我在顶层文件中有一个结构,一个特征和一个impl。
ini_set('display_errors', 1);
error_reporting(E_ALL);
$url = 'http://***.***.***.***:8080/api_v1/oauth/token';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$response = curl_exec($ch);
我想移动特征并将其隐含到名为struct Model {}
trait TsProperties {
fn create_ar_x_matrix(&self);
}
impl TsProperties for Model {
fn create_ar_x_matrix(&self){}
}
的单独文件中。在主文件中,我有:
test.rs
在测试中,我有:
mod test
当我实例化结构时,Intellisense不会启动use crate::Model;
。如果代码在create_ar_x_matrix
中。
我该如何解决?
如果我添加main.rs
,则会出现此错误:
pub
如果我在主文件中的结构上使用25 | pub impl TsProperties for Model {
| ^^^ `pub` not permitted here because it's implied
并将特质放在单独的文件中:
pub
答案 0 :(得分:1)
您需要导入特征。
在test.rs
中:
use crate::Model;
pub trait TsProperties {
fn create_ar_x_matrix(&self);
}
impl TsProperties for Model {
fn create_ar_x_matrix(&self){}
}
在main.rs
中:
mod test;
use self::test::TsProperties;
struct Model {}
fn main() {
let model = Model {};
model.create_ar_x_matrix();
}
请注意,Model
不需要公开,但特征可以公开。这是因为父模块中的任何内容在子模块中都会自动可见。