/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #pragma once #include #include #include #include namespace facebook::react { class ImageSource { public: enum class Type { Invalid, Remote, Local }; enum class CacheStategy { Default, Reload, ForceCache, OnlyIfCached }; Type type{}; std::string uri{}; std::string bundle{}; Float scale{3}; Size size{0}; std::string body{}; std::string method{}; CacheStategy cache = CacheStategy::Default; std::vector> headers{}; bool operator==(const ImageSource& rhs) const { return std::tie(this->type, this->uri) == std::tie(rhs.type, rhs.uri); } bool operator!=(const ImageSource& rhs) const { return !(*this == rhs); } }; using ImageSources = std::vector; enum class ImageResizeMode { Cover, Contain, Stretch, Center, Repeat, None, }; class ImageErrorInfo { public: std::string error{}; int responseCode{}; std::vector> httpResponseHeaders{}; }; } // namespace facebook::react