LLVM: include/llvm/Support/TextEncoding.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15#ifndef LLVM_SUPPORT_TEXT_ENCODING_H

16#define LLVM_SUPPORT_TEXT_ENCODING_H

17

20#include "llvm/Config/config.h"

23

24#include

25#include <system_error>

26

27namespace llvm {

28

30

33

34private:

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54 virtual std::error_code convertString(StringRef Source,

56

57

58 virtual void reset() = 0;

59

60public:

62

63

65 auto EC = convertString(Source, Result);

66 reset();

67 return EC;

68 }

69};

70}

71

72

80

81

82class TextEncodingConverter {

83 std::unique_ptrdetails::TextEncodingConverterImplBase Converter;

84

85 TextEncodingConverter(

86 std::unique_ptrdetails::TextEncodingConverterImplBase Converter)

87 : Converter(std::move(Converter)) {}

88

89public:

90

91

92

93

94

95

98

99

100

101

102

103

104

107

109 TextEncodingConverter &operator=(const TextEncodingConverter &) = delete;

110

113

114 TextEncodingConverter &operator=(TextEncodingConverter &&Other) {

115 if (this != &Other)

116 Converter = std::move(Other.Converter);

117 return *this;

118 }

119

121

122

123

124

125

128 return Converter->convert(Source, Result);

129 }

130

133 auto EC = Converter->convert(Source, Result);

134 if (!EC)

135 return std::string(Result);

136 return EC;

137 }

138};

139

140}

141

142#endif

Provides ErrorOr smart pointer.

This file defines the SmallString class.

Represents either an error or a value T.

SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better...

This class consists of common code factored out of the SmallVector class to reduce code duplication b...

StringRef - Represent a constant reference to a string, i.e.

TextEncodingConverter(const TextEncodingConverter &)=delete

~TextEncodingConverter()=default

TextEncodingConverter & operator=(const TextEncodingConverter &)=delete

std::error_code convert(StringRef Source, SmallVectorImpl< char > &Result) const

Converts a string.

Definition TextEncoding.h:126

TextEncodingConverter(TextEncodingConverter &&Other)

Definition TextEncoding.h:111

ErrorOr< std::string > convert(StringRef Source) const

Definition TextEncoding.h:131

static LLVM_ABI ErrorOr< TextEncodingConverter > create(TextEncoding From, TextEncoding To)

Creates a TextEncodingConverter instance.

TextEncodingConverter & operator=(TextEncodingConverter &&Other)

Definition TextEncoding.h:114

Definition TextEncoding.h:32

virtual ~TextEncodingConverterImplBase()=default

std::error_code convert(StringRef Source, SmallVectorImpl< char > &Result)

Converts a string and resets the converter to the initial state.

Definition TextEncoding.h:64

Definition TextEncoding.h:31

This is an optimization pass for GlobalISel generic memory operations.

TextEncoding

Definition TextEncoding.h:73

@ IBM1047

IBM EBCDIC 1047 character set encoding.

Definition TextEncoding.h:78

OutputIt move(R &&Range, OutputIt Out)

Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.

Implement std::hash so that hash_code can be used in STL containers.