问题描述
许多结构需要强制使用构造函数来创建对象,但是我想对所有字段都具有公共读取权限。
由于可读性和可能的性能原因,我需要深入了解FirebaseAuth.User
的多个级别-select
d.name as department,f.name as father,sum_print as sum
from
department d
left join department f on f.id = d.father
left join
(
select
department,sum(page*copy) as sum_print
from print
where date between CAST('2020-1-13' AS DATE)
AND CAST('2020-1-15' AS DATE)
group by department
) as tmp on tmp.department = d.id
UNION
select
d.name as department,sum_print as sum
from
department d
left join department f on f.id = d.father
right join
(
select
department,sum(page*copy) as sum_print
from print
where date between CAST('2020-1-13' AS DATE)
AND CAST('2020-1-15' AS DATE)
group by department
) as tmp on tmp.department = d.id;
不是我想去的地方。
这个可怕的恶棍是我正在使用的:
bish.bash.bosh.wibble.wobble
这显然浪费了少量空间,bish.get_bash().get_bosh().get_wibble().get_wobble()
在其他地方造成了不便。
我应该怎么做?
解决方法
由于@hellow,我现在有了一个可行的解决方案:
use serde::{Serialize,Deserialize}; // 1.0.115
#[derive(Serialize,Deserialize,Debug)]
pub struct Foo {
pub bar: u8,pub baz: u16,#[serde(skip)]
_private: (),}
impl Foo {
pub fn new(bar: u8,baz: u16) -> Foo {
Foo {bar,baz,_private: ()}
}
}