purpose of tor_hsservice::svc module is unclear
I find this module confusing. About half of the HS service implementation is in it. The module description says just "Principal types for onion services". In practical terms, the location of a functional module within tor-hsservice/
seems to depend mainly on who created it.
What, if anything, is the distinction being made between things that go in svc/
and things that go in the crate toplevel? The whole of tor-hsservice is for hidden services, so it can't be "is related to hidden services", which seems to suggest that if this module serves a purpose, "svc" is the wrong name for it. (There's the word "Principal" in the title, but if we're making a distinction between "principal" and "ancillary", it seems that the ancillary things should be the ones to go into a separate module.)
At the moment it seems to me that this module should be abolished and all its contents including sub-modules be moved to the crate toplevel. But I'm open to keeping if it does serve a clearly defined purpose. If we're keeping it, should ipt_set and ipt_mgr go into it too? What about IptLocalId from lib.rs?
I'm filing this as a ticket rather than an MR because the disruptive effect of so much code motion, and because I feel I'm missing something. I'm filing it at all because I keep getting tripped up by half of the code not being where my hindbrain expects.