我有一个公共特性的实现,它重复了一些关于多个函数的工作,所以我想用一个执行共享工作的函数干掉它,从实际上要使用的函数中调用它。所以,我有:有没有办法在公共性状中拥有私人功能?
fn do_private_thing()
fn do_pub_1()
fn do_pub_2()
我不想do_private_thing()
在文档被曝光或直接使用,因为它没有做任何事情,从有用该特征/实现的用户的视角。但公共特征的功能不是私人的。
我可以让do_private_thing
是模块中的一个私有函数,但特性确实要求该函数的工作是通过特征的任何实现来完成的。所以我觉得如果我把这些代码从实现中解脱出来,我就会说谎一点点。
在Rust中展示出来的合理方法是什么?
[mcve]可能很好理解你想要什么。 – Stargateur
@Stargateur但是这在任何特定实现之前。我在问一般的想法是什么。这里的MCVE会是什么,但是大量的大括号和'impl' /'trait'关键字? –
嗯,我是一个生锈的新手,但我有一些API设计技巧。我不确定是否了解这个问题的生锈部分。 [mcve]可以帮助我更好地理解生锈的部分。因为这个问题可能更多关于设计。也许你能提供一个“伪代码”? – Stargateur