gpt4 book ai didi

module - 在新模块中使用来自另一个模块的结构

转载 作者:行者123 更新时间:2023-12-03 11:43:27 25 4
gpt4 key购买 nike

以下代码无法编译,因为它表示当我尝试在操作模块中使用它时未定义请求。

我认为这可能与导入模块有关,但我真的很陌生,不明白。我以为我可以做 module::struct 并且只要结构是公共(public)的,我就可以访问它。

有人可以解释为什么这不起作用,以及如何使它起作用吗?

pub mod vehicles {
pub struct Vehicle {
_vehicle_id: u64,
_capacity: u32,
}

impl Vehicle {
pub fn new(id: u64, cap: u32) -> Vehicle {
Vehicle {
_vehicle_id: id,
_capacity: cap,
}
}

pub fn get_id(&self) -> u64 {
self._vehicle_id
}

pub fn get_capacity(&self) -> u32 {
self._capacity
}
}
}

mod requests {
pub struct Request {
_request_id: u64,
_request_time: i64,
_origin: u64,
_destination: u64,
_assigned: bool,
}

impl Request {
pub fn new(id: u64, time: i64, origin: u64, dest: u64) -> Request {
Request {
_request_id: id,
_request_time: time,
_origin: origin,
_destination: dest,
_assigned: false,
}
}

pub fn get_id(&self) -> u64 {
self._request_id
}

pub fn get_request_time(&self) -> i64 {
self._request_time
}

pub fn get_origin(&self) -> u64 {
self._origin
}

pub fn get_destination(&self) -> u64 {
self._destination
}

pub fn is_assigned(&self) -> bool {
self._assigned
}
}
}

pub mod operations {
#[derive(Clone, Copy)]
pub enum OperationType {
PICKUP,
DROPOFF,
}
pub struct Operation {
_request: requests::Request,
_location: u64,
_operation_type: OperationType,
_expected_time: i64,
}
impl Operation {
pub fn new(request: requests::Request, optype: OperationType, location: u64, time: i64) -> Self {
Self {
_request: request,
_operation_type: optype,
_location: location,
_expected_time: time,
}
}
pub fn get_location(&self) -> u64 {
self._location
}
pub fn get_request(&self) -> &requests::Request {
&self._request
}
pub fn get_type(&self) -> OperationType {
self._operation_type
}
pub fn get_expected_time(&self) -> i64 {
self._expected_time
}
}
}

最佳答案

从 Rust 2018 开始,您必须使用 crate关键字,添加use crate::requests;模块中的某处(通常在顶部)您要使用 requests .

见,相关 module书中的部分。

关于module - 在新模块中使用来自另一个模块的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60021688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com