pass args by ref
This commit is contained in:
@@ -69,58 +69,54 @@ pub struct Services {
|
||||
pub async fn build(server: Arc<Server>) -> Result<Arc<Self>> {
|
||||
let db = Database::open(&server).await?;
|
||||
let services = Arc::new(OnceServices::default());
|
||||
macro_rules! build {
|
||||
($tyname:ty) => {
|
||||
<$tyname>::build(Args {
|
||||
db: &db,
|
||||
server: &server,
|
||||
services: &services,
|
||||
})?
|
||||
};
|
||||
}
|
||||
let args = Args {
|
||||
db: &db,
|
||||
server: &server,
|
||||
services: &services,
|
||||
};
|
||||
|
||||
let res = Arc::new(Self {
|
||||
account_data: build!(account_data::Service),
|
||||
admin: build!(admin::Service),
|
||||
appservice: build!(appservice::Service),
|
||||
resolver: build!(resolver::Service),
|
||||
client: build!(client::Service),
|
||||
config: build!(config::Service),
|
||||
emergency: build!(emergency::Service),
|
||||
globals: build!(globals::Service),
|
||||
key_backups: build!(key_backups::Service),
|
||||
media: build!(media::Service),
|
||||
presence: build!(presence::Service),
|
||||
pusher: build!(pusher::Service),
|
||||
alias: build!(rooms::alias::Service),
|
||||
auth_chain: build!(rooms::auth_chain::Service),
|
||||
delete: build!(rooms::delete::Service),
|
||||
directory: build!(rooms::directory::Service),
|
||||
event_handler: build!(rooms::event_handler::Service),
|
||||
lazy_loading: build!(rooms::lazy_loading::Service),
|
||||
metadata: build!(rooms::metadata::Service),
|
||||
pdu_metadata: build!(rooms::pdu_metadata::Service),
|
||||
read_receipt: build!(rooms::read_receipt::Service),
|
||||
search: build!(rooms::search::Service),
|
||||
short: build!(rooms::short::Service),
|
||||
spaces: build!(rooms::spaces::Service),
|
||||
state: build!(rooms::state::Service),
|
||||
state_accessor: build!(rooms::state_accessor::Service),
|
||||
state_cache: build!(rooms::state_cache::Service),
|
||||
state_compressor: build!(rooms::state_compressor::Service),
|
||||
threads: build!(rooms::threads::Service),
|
||||
timeline: build!(rooms::timeline::Service),
|
||||
typing: build!(rooms::typing::Service),
|
||||
user: build!(rooms::user::Service),
|
||||
federation: build!(federation::Service),
|
||||
sending: build!(sending::Service),
|
||||
server_keys: build!(server_keys::Service),
|
||||
sync: build!(sync::Service),
|
||||
transaction_ids: build!(transaction_ids::Service),
|
||||
uiaa: build!(uiaa::Service),
|
||||
users: build!(users::Service),
|
||||
membership: build!(membership::Service),
|
||||
deactivate: build!(deactivate::Service),
|
||||
account_data: account_data::Service::build(&args)?,
|
||||
admin: admin::Service::build(&args)?,
|
||||
appservice: appservice::Service::build(&args)?,
|
||||
resolver: resolver::Service::build(&args)?,
|
||||
client: client::Service::build(&args)?,
|
||||
config: config::Service::build(&args)?,
|
||||
emergency: emergency::Service::build(&args)?,
|
||||
globals: globals::Service::build(&args)?,
|
||||
key_backups: key_backups::Service::build(&args)?,
|
||||
media: media::Service::build(&args)?,
|
||||
presence: presence::Service::build(&args)?,
|
||||
pusher: pusher::Service::build(&args)?,
|
||||
alias: rooms::alias::Service::build(&args)?,
|
||||
auth_chain: rooms::auth_chain::Service::build(&args)?,
|
||||
delete: rooms::delete::Service::build(&args)?,
|
||||
directory: rooms::directory::Service::build(&args)?,
|
||||
event_handler: rooms::event_handler::Service::build(&args)?,
|
||||
lazy_loading: rooms::lazy_loading::Service::build(&args)?,
|
||||
metadata: rooms::metadata::Service::build(&args)?,
|
||||
pdu_metadata: rooms::pdu_metadata::Service::build(&args)?,
|
||||
read_receipt: rooms::read_receipt::Service::build(&args)?,
|
||||
search: rooms::search::Service::build(&args)?,
|
||||
short: rooms::short::Service::build(&args)?,
|
||||
spaces: rooms::spaces::Service::build(&args)?,
|
||||
state: rooms::state::Service::build(&args)?,
|
||||
state_accessor: rooms::state_accessor::Service::build(&args)?,
|
||||
state_cache: rooms::state_cache::Service::build(&args)?,
|
||||
state_compressor: rooms::state_compressor::Service::build(&args)?,
|
||||
threads: rooms::threads::Service::build(&args)?,
|
||||
timeline: rooms::timeline::Service::build(&args)?,
|
||||
typing: rooms::typing::Service::build(&args)?,
|
||||
user: rooms::user::Service::build(&args)?,
|
||||
federation: federation::Service::build(&args)?,
|
||||
sending: sending::Service::build(&args)?,
|
||||
server_keys: server_keys::Service::build(&args)?,
|
||||
sync: sync::Service::build(&args)?,
|
||||
transaction_ids: transaction_ids::Service::build(&args)?,
|
||||
uiaa: uiaa::Service::build(&args)?,
|
||||
users: users::Service::build(&args)?,
|
||||
membership: membership::Service::build(&args)?,
|
||||
deactivate: deactivate::Service::build(&args)?,
|
||||
|
||||
manager: Mutex::new(None),
|
||||
server,
|
||||
|
||||
Reference in New Issue
Block a user