gpt4 book ai didi

rust - 当毯子将公共(public)特征实现为私有(private)特征时,公共(public)接口(interface)中的私有(private)特征

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

目前,我正在尝试在任何实现私有(private)跟踪的结构上全面实现公共(public)特征,但我收到编译器警告:private trait `mod_b::PrivateTrait` in public interface (error E0445)有没有什么办法解决这一问题?
main.rs:

trait PublicTrait {}

mod mod_b
{
use PublicTrait;
trait PrivateTrait {}

impl<T: PrivateTrait> PublicTrait for T {}
}

pub fn main ()
{
}

最佳答案

您需要制作 PrivateTrait上市

trait PublicTrait {}

mod mod_b {
use crate::PublicTrait;
pub trait PrivateTrait {}

impl<T: PrivateTrait> PublicTrait for T {}
}

fn test<T: PublicTrait>(_: T){
println!("public")
}

struct Private;
impl mod_b::PrivateTrait for Private {}

pub fn main() {
test(Private);
}


或保留 PrivateTrait私有(private)在 mod_b
trait PublicTrait {}

mod mod_b {
use crate::PublicTrait;
trait PrivateTrait {}

impl<T: PublicTrait> PrivateTrait for T {}
}

fn main() {}

关于rust - 当毯子将公共(public)特征实现为私有(private)特征时,公共(public)接口(interface)中的私有(private)特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62165161/

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