blob: 478632ac0fdf361cd2699d70829a0ba6d42f3884 [file] [log] [blame]
Marcel van Lohuizenb5dc1922018-12-11 11:49:57 +01001// Copyright 2018 The CUE Authors
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Copyright 2018 The Go Authors. All rights reserved.
16// Use of this source code is governed by a BSD-style
17// license that can be found in the LICENSE file.
18
19//go:generate qgo -stripstr -exclude=Decode$,Encode$,EncodeToString,Dumper extract encoding/hex
20
21package hex
22
23import "encoding/hex"
24
25// EncodedLen returns the length of an encoding of n source bytes.
26// Specifically, it returns n * 2.
27func EncodedLen(n int) int {
28 return hex.EncodedLen(n)
29}
30
31// DecodedLen returns the length of a decoding of x source bytes.
32// Specifically, it returns x / 2.
33func DecodedLen(x int) int {
34 return hex.DecodedLen(x)
35}
36
37// Decode returns the bytes represented by the hexadecimal string s.
38//
39// Decode expects that src contains only hexadecimal
40// characters and that src has even length.
41// If the input is malformed, Decode returns
42// the bytes decoded before the error.
43func Decode(s string) ([]byte, error) {
44 return hex.DecodeString(s)
45}
46
47// Dump returns a string that contains a hex dump of the given data. The format
48// of the hex dump matches the output of `hexdump -C` on the command line.
49func Dump(data []byte) string {
50 return hex.Dump(data)
51}