* Make sure DateTime.ToString() works without requiring additional parameters by choosing RFC 3339 as the default.
* Address naming feedback and add some tests.
* Fix test warning by using static cast.
* VS2017 is right, we should be including `<iterator>`, if we use `std::inserter`. It fails to compile on VS2017 without that include.
Why if fails on 2017 and not 2019? Some of the other stdlib headers we include must be including `<iterator>` indirectly in 2019. But we should not be relying on that. Standard says, you use `std::inserter` - include `<iterator>`, if it works without that, that's a coincidence which may break beween versions of stdlib/compilers.
* VS 2017 does not fail because we don't include `<type_taits>` here, but formally we should include it too, because we use
`std::remove_reference` and `std::remove_const`. It just happens that `log.hpp` includes it, but we should not be relying on that.
This was found during local vcpkg verification - I happen to have it configured targeting VS2017. It does not mean it will fail in vcpkg CI, or would affect many customers, but some for sure. Verification on vcpkg CI looks good - https://github.com/microsoft/vcpkg/pull/16578 (it is based on our master as of Sat 3/6 + this fix).
I verified locally that it builds successfully on `x64-windows`, `x64-windows-static`, and `arm-uwp`.
We should run verification once again, once we have all the renames/moves in master.
* For consistency within the SDK, move Azure::Core::Context to be the last
parameter for various Azure::Core APIs.
* Fix merge conflict due to log policy file change.
* Update new client options tests
* Moved `BodyStream` and its derived types from `Azure::Core::Http`
namespace to `Azure::IO`, and update headers.
* Fix up clang formatting.
* Add missing winhttp bodystream namespace change.
* Update merge conflict related changes.
* Update header paths in includes.
* Add CaseInsensitiveMap<T>
* Drop unneccessary namespace qualification
* Comment working: more accurate description
* GCC and Clang fix (typename specification) + doxy comments for template parameters
* Remove Allocator template parameter - we can add it later if we need it, currently no need to commit to having it there
* Drop <T> template parameter. We can add it later with default value of std::string without breaking change
* Unit test
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Defend public headers against inclusion of Windows.h
... which defines some nasty function-like macros `min` and `max` when `_NOMINMAX` isn't defined. We prevent expansion as a function-like macro by inserting some token(s) between `min`/`max` and the following `(`. Most commonly that means wrapping the entire qualified-name in `()` a la `(std::min)(x, y)`, but an explicit template argument list (`std::min<int>(x, y)`) works as well.
* clang-format all the things
* Test coverage
I assume that the `azure-meow-common` headers are fully covered by the tests for the `azure-meow-woof` SDKs.
* Throw a runtime error when calling Rewind on unsupported BodyStreams and update the exception message.
* Add rewind test for bodystream.
* Change exception type from runtime to logic.
* Add necessary platform specific headers.