azure-sdk-for-cpp icon indicating copy to clipboard operation
azure-sdk-for-cpp copied to clipboard

Figure out a mechanism to hide _detail or _internal types and methods calls from docs when initializing public options

Open ahsonkhan opened this issue 2 years ago • 1 comments

For example, we currently have the following, which exposes implementation detail within docs: https://azuresdkdocs.blob.core.windows.net/$web/cpp/azure-identity/1.5.1/struct_azure_1_1_identity_1_1_client_secret_credential_options.html

image

We either adjust doxygen knobs to hide that initialization logic in docs, or possibly design our code to not expose such details.

ahsonkhan avatar Oct 05 '23 01:10 ahsonkhan

A couple of quick comments.

FIrst off: We should not be afraid of leaking the contents of the _detail or _internal namespace. After all, all of the XxxClientOptions classes derive from Azure::Core::_internal::ClientOptions, and we expect customers to reference these.

Next: If you truly feel this is critical, you can use the hideinitializer option to hide it:

The appearance of the value of individual variables and macros / defines can be controlled using \showinitializer or \hideinitializer command in the documentation regardless of this setting.

And finally, if we want, we can globally hide all initializers, but IMHO that's a poor choice because it hides important information from the customer.

Let me ask a slightly different question: Why is the AadGlobalAuthority constant in the _detail namespace? It's not an implementation detail, in fact it appears to be a well-defined public constant.

LarryOsterman avatar Oct 05 '23 15:10 LarryOsterman