我有一個公共特性的實現,它重複了一些關於多個函數的工作,所以我想用一個執行共享工作的函數幹掉它,從實際上要使用的函數中調用它。所以,我有:有沒有辦法在公共性狀中擁有私人功能?
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