#ifndef V8_STRINGS_URI_H_
#define V8_STRINGS_URI_H_
#include "src/handles/maybe-handles.h"
#include "src/utils/allocation.h"
namespace v8 {
namespace internal {
class Uri : public AllStatic {
public:
static MaybeDirectHandle<String> DecodeUri(Isolate* isolate,
DirectHandle<String> uri) {
return Decode(isolate, uri, true);
}
static MaybeDirectHandle<String> DecodeUriComponent(
Isolate* isolate, DirectHandle<String> component) {
return Decode(isolate, component, false);
}
static MaybeDirectHandle<String> EncodeUri(Isolate* isolate,
DirectHandle<String> uri) {
return Encode(isolate, uri, true);
}
static MaybeDirectHandle<String> EncodeUriComponent(
Isolate* isolate, DirectHandle<String> component) {
return Encode(isolate, component, false);
}
static MaybeDirectHandle<String> Escape(Isolate* isolate,
Handle<String> string);
static MaybeDirectHandle<String> Unescape(Isolate* isolate,
Handle<String> string);
private:
static MaybeDirectHandle<String> Decode(Isolate* isolate,
DirectHandle<String> uri,
bool is_uri);
static MaybeDirectHandle<String> Encode(Isolate* isolate,
DirectHandle<String> uri,
bool is_uri);
};
}
}
#endif