Pas, mevcut bir yapıyı kullanabileceğiniz ve yalnızca bazı üyelerini geçersiz kılabileceğiniz kullanışlı bir özelliktir.Yalnızca bazı üyelerin başka bir yapıdan değer kullanabileceği bir yapı nasıl bildirilir?
new_tool = SomeTool {
unique_id: "tool.foobar".to_string(),
exec: Some(foobar_exec)
.. SomeTool::default()
};
I SomeTool
beyan isterler açıkça liste zorunda kalmadan: Örneğin, aşağıdaki yapı
struct SomeTool {
pub unique_id: String,
pub poll: Option<fn(&Context) -> bool>,
pub exec: Option<fn(&mut Context) -> ToolResult>,
pub modal: Option<fn(&mut Context) -> ToolResult>,
pub ui: Option<fn(&mut UIPanel)>,
}
bir değeri (örneğin SomeTool::default()
) bir yapı örneği geçirilerek başlatıldı edilebilir Her geri arama (gelecekte yeni geri aramaların eklenmesi, bir kod tabanının her yerinde None
'un birçok eklenmesine neden olabilir).
Bu iyi çalışıyor, ancak başka bir başlatma için yanlışlıkla unique_id
'u dışarıda bırakabiliyordum ve default
'da ne varsa onu kullanırdım.
Bazı üyelerin geçersiz kılınabileceği ancak başkalarının yüklenemeyebileceği bir yapı tanımlamanın bir yolu var mı? gerçek dünya kullanımının durum daha bundan daha üyelerini (daha yüksek kazaların şansı yapma) sahip olduğunu
Not sadece soru için basitleştirilmiş.