encoder

package
v1.52.1-0...-9b21a15 Latest Latest
Warning

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

Go to latest
Published: Jul 7, 2020 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

Base only encodes the zero byte and slash

View Source
const Display = Standard

Display is the internal encoding for logging and output

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 an 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

const (
	EncodeZero          MultiEncoder = 0         // NUL(0x00)
	EncodeSlash         MultiEncoder = 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

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

func (mask MultiEncoder) Has(flag MultiEncoder) bool

Has returns true if flag is contained in mask

func (*MultiEncoder) Scan

func (mask *MultiEncoder) Scan(s fmt.ScanState, ch rune) error

Scan implements the fmt.Scanner interface

func (*MultiEncoder) Set

func (mask *MultiEncoder) Set(in string) error

Set converts a string into a MultiEncoder

func (MultiEncoder) String

func (mask MultiEncoder) String() string

String converts the MultiEncoder into text

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.

func (MultiEncoder) Type

func (mask MultiEncoder) Type() string

Type returns a textual type of the MultiEncoder to satsify the pflag.Value interface

Directories

Path Synopsis
internal
gen

Jump to

Keyboard shortcuts

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