encoder

package
v1.50.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 19, 2019 License: MIT Imports: 6 Imported by: 129

Documentation

Index

Constants

View Source
const (
	EncodeZero          uint = 0         // NUL(0x00)
	EncodeSlash         uint = 1 << iota // /
	EncodeLtGt                           // <>
	EncodeDoubleQuote                    // "
	EncodeSingleQuote                    // '
	EncodeBackQuote                      // `
	EncodeDollar                         // $
	EncodeColon                          // :
	EncodeQuestion                       // ?
	EncodeAsterisk                       // *
	EncodePipe                           // |
	EncodeHash                           // #
	EncodePercent                        // %
	EncodeBackSlash                      // \
	EncodeCrLf                           // CR(0x0D), LF(0x0A)
	EncodeDel                            // DEL(0x7F)
	EncodeCtl                            // CTRL(0x01-0x1F)
	EncodeLeftSpace                      // Leading SPACE
	EncodeLeftPeriod                     // Leading .
	EncodeLeftTilde                      // Leading ~
	EncodeLeftCrLfHtVt                   // Leading CR LF HT VT
	EncodeRightSpace                     // Trailing SPACE
	EncodeRightPeriod                    // Trailing .
	EncodeRightCrLfHtVt                  // Trailing CR LF HT VT
	EncodeInvalidUtf8                    // Invalid UTF-8 bytes
	EncodeDot                            // . and .. names

	// Synthetic
	EncodeWin         = EncodeColon | EncodeQuestion | EncodeDoubleQuote | EncodeAsterisk | EncodeLtGt | EncodePipe // :?"*<>|
	EncodeHashPercent = EncodeHash | EncodePercent                                                                  // #%
)

Possible flags for the MultiEncoder

View Source
const (

	// QuoteRune is the rune used for quoting reserved characters
	QuoteRune = '‛' // SINGLE HIGH-REVERSED-9 QUOTATION MARK
)

Standard defines the encoding that is used for paths in- and output by rclone.

List of replaced characters:

  (0x00)  -> '␀' // SYMBOL FOR NULL
/ (slash) -> '/' // FULLWIDTH SOLIDUS

Variables

This section is empty.

Functions

func FromStandardName

func FromStandardName(e Encoder, s string) string

FromStandardName takes name in Standard encoding and converts it in the given encoding.

func FromStandardPath

func FromStandardPath(e Encoder, s string) string

FromStandardPath takes a / separated path in Standard encoding and converts it to a / separated path in the given encoding.

func ToStandardName

func ToStandardName(e Encoder, s string) string

ToStandardName takes name in the given encoding and converts it in Standard encoding.

func ToStandardPath

func ToStandardPath(e Encoder, s string) string

ToStandardPath takes a / separated path in the given encoding and converts it to a / separated path in Standard encoding.

Types

type Encoder

type Encoder interface {
	// Encode takes a raw name and substitutes any reserved characters and
	// patterns in it
	Encode(string) string
	// Decode takes a name and undoes any substitutions made by Encode
	Decode(string) string

	// FromStandardPath takes a / separated path in Standard encoding
	// and converts it to a / separated path in this encoding.
	FromStandardPath(string) string
	// FromStandardName takes name in Standard encoding and converts
	// it in this encoding.
	FromStandardName(string) string
	// ToStandardPath takes a / separated path in this encoding
	// and converts it to a / separated path in Standard encoding.
	ToStandardPath(string) string
	// ToStandardName takes name in this encoding and converts
	// it in Standard encoding.
	ToStandardName(string) string
}

Encoder can transform names to and from the original and translated version.

func Identity

func Identity() Encoder

Identity returns a Encoder that always returns the input value

type MultiEncoder

type MultiEncoder uint

MultiEncoder is a configurable Encoder. The Encode* constants in this package can be combined using bitwise or (|) to enable handling of multiple character classes

func (MultiEncoder) Decode

func (mask MultiEncoder) Decode(in string) string

Decode takes a name and undoes any substitutions made by Encode

func (MultiEncoder) Encode

func (mask MultiEncoder) Encode(in string) string

Encode takes a raw name and substitutes any reserved characters and patterns in it

func (MultiEncoder) FromStandardName

func (mask MultiEncoder) FromStandardName(s string) string

FromStandardName takes name in Standard encoding and converts it in this encoding.

func (MultiEncoder) FromStandardPath

func (mask MultiEncoder) FromStandardPath(s string) string

FromStandardPath takes a / separated path in Standard encoding and converts it to a / separated path in this encoding.

func (MultiEncoder) Has added in v1.50.0

func (mask MultiEncoder) Has(flag uint) bool

Has returns true if flag is contained in mask

func (MultiEncoder) ToStandardName

func (mask MultiEncoder) ToStandardName(s string) string

ToStandardName takes name in this encoding and converts it in Standard encoding.

func (MultiEncoder) ToStandardPath

func (mask MultiEncoder) ToStandardPath(s string) string

ToStandardPath takes a / separated path in this encoding and converts it to a / separated path in Standard encoding.

Directories

Path Synopsis
internal
gen

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL