本文整理汇总了Golang中github.com/dropbox/godropbox/errors.Newf函数的典型用法代码示例。如果您正苦于以下问题:Golang Newf函数的具体用法?Golang Newf怎么用?Golang Newf使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Newf函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: SampleInts
// Samples 'k' unique ints from the range [0, n)
func SampleInts(n int, k int) (res []int, err error) {
if k < 0 {
err = errors.Newf("invalid sample size k")
return
}
if n < k {
err = errors.Newf("sample size k larger than n")
return
}
picked := set.NewSet()
for picked.Len() < k {
i := Intn(n)
picked.Add(i)
}
res = make([]int, k)
e := 0
for i := range picked.Iter() {
res[e] = i.(int)
e++
}
return
}
开发者ID:Charlesdong,项目名称:godropbox,代码行数:27,代码来源:rand.go
示例2: serializeClauses
func serializeClauses(
clauses []Clause,
separator []byte,
out *bytes.Buffer) (err error) {
if clauses == nil || len(clauses) == 0 {
return errors.Newf("Empty clauses. Generated sql: %s", out.String())
}
if clauses[0] == nil {
return errors.Newf("nil clause. Generated sql: %s", out.String())
}
if err = clauses[0].SerializeSql(out); err != nil {
return
}
for _, c := range clauses[1:] {
out.Write(separator)
if c == nil {
return errors.Newf("nil clause. Generated sql: %s", out.String())
}
if err = c.SerializeSql(out); err != nil {
return
}
}
return nil
}
开发者ID:4578395263256,项目名称:godropbox,代码行数:29,代码来源:expression.go
示例3: SerializeSqlForColumnList
func (c *aliasColumn) SerializeSqlForColumnList(includeTableName bool, database Database, out *bytes.Buffer) error {
if !validIdentifierName(c.name) {
return errors.Newf(
"Invalid alias name `%s`. Generated sql: %s",
c.name,
out.String())
}
if c.expression == nil {
return errors.Newf(
"Cannot alias a nil expression. Generated sql: %s",
out.String())
}
out.WriteByte('(')
if c.expression == nil {
return errors.Newf("nil alias clause. Generate sql: %s", out.String())
}
if err := c.expression.SerializeSql(database, out); err != nil {
return err
}
out.WriteString(") AS ")
out.WriteRune(database.EscapeCharacter())
out.WriteString(c.name)
out.WriteRune(database.EscapeCharacter())
return nil
}
开发者ID:jakedt,项目名称:godropbox,代码行数:26,代码来源:column.go
示例4: SerializeSqlForColumnList
func (c *aliasColumn) SerializeSqlForColumnList(out *bytes.Buffer) error {
if !validIdentifierName(c.name) {
return errors.Newf(
"Invalid alias name `%s`. Generated sql: %s",
c.name,
out.String())
}
if c.expression == nil {
return errors.Newf(
"Cannot alias a nil expression. Generated sql: %s",
out.String())
}
out.WriteByte('(')
if c.expression == nil {
return errors.Newf("nil alias clause. Generate sql: %s", out.String())
}
if err := c.expression.SerializeSql(out); err != nil {
return err
}
out.WriteString(") AS `")
out.WriteString(c.name)
out.WriteByte('`')
return nil
}
开发者ID:Charlesdong,项目名称:godropbox,代码行数:25,代码来源:column.go
示例5: parseRowsHeader
func (p *baseRowsEventParser) parseRowsHeader(raw *RawV4Event) (
id uint64,
flags uint16,
extraInfo []byte,
width int,
remaining []byte,
err error) {
if p.context == nil {
return 0, 0, nil, 0, nil, &TableContextNotSetError{
errors.New("Table context not set"),
}
}
data := raw.FixedLengthData()
id = LittleEndian.Uint48(data)
if id != p.context.TableId() {
return 0, 0, nil, 0, nil, errors.Newf(
"mismatch table id (event: %d; context: %d name: %s)",
id,
p.context.TableId(),
p.context.TableName())
}
flags = LittleEndian.Uint16(data[6:])
remaining = raw.VariableLengthData()
if p.version == mysql_proto.RowsEventVersion_V1 {
extraInfo = nil
} else {
extraInfoBlobLen := LittleEndian.Uint16(data[8:])
extraInfo, remaining, err = p.parseExtraInfoBlob(
extraInfoBlobLen,
remaining)
if err != nil {
return 0, 0, nil, 0, nil, err
}
}
w, remaining, err := readFieldLength(remaining)
if err != nil {
return 0, 0, nil, 0, nil, err
}
if w > uint64(p.context.NumColumns()) {
return 0, 0, nil, 0, nil, errors.Newf(
"row width (%d / %d) greater than # of columns (%d) in table %s",
w,
width,
p.context.NumColumns(),
string(p.context.TableName()))
}
return id, flags, extraInfo, int(w), remaining, nil
}
开发者ID:Charlesdong,项目名称:godropbox,代码行数:58,代码来源:rows_event.go
示例6: validate
func (s *Source) validate() (err error) {
if strings.ToLower(s.Hash) == "skip" {
return
}
file, err := os.Open(s.Path)
if err != nil {
err = &HashError{
errors.Wrap(err, "source: Failed to open file for hash"),
}
return
}
defer file.Close()
var hash hash.Hash
switch len(s.Hash) {
case 32:
hash = md5.New()
case 40:
hash = sha1.New()
case 64:
hash = sha256.New()
case 128:
hash = sha512.New()
default:
err = &HashError{
errors.Newf("source: Unknown hash type for hash '%s'", s.Hash),
}
return
}
_, err = io.Copy(hash, file)
if err != nil {
return
}
sum := hash.Sum([]byte{})
hexSum := fmt.Sprintf("%x", sum)
if hexSum != s.Hash {
err = &HashError{
errors.Newf("source: Hash verification failed for '%s'", s.Source),
}
return
}
return
}
开发者ID:pacur,项目名称:pacur,代码行数:49,代码来源:source.go
示例7: Register
// See ResourcePool for documentation.
func (p *MultiResourcePool) Register(resourceLocation string) error {
if resourceLocation == "" {
return errors.New("Registering invalid resource location")
}
p.rwMutex.Lock()
defer p.rwMutex.Unlock()
if p.isLameDuck {
return errors.Newf(
"Cannot register %s to lame duck resource pool",
resourceLocation)
}
if _, inMap := p.locationPools[resourceLocation]; inMap {
return nil
}
pool := p.createPool(p.options)
if err := pool.Register(resourceLocation); err != nil {
return err
}
p.locationPools[resourceLocation] = pool
return nil
}
开发者ID:pasin30055,项目名称:godropbox,代码行数:27,代码来源:multi_resource_pool.go
示例8: CreateImage
// Writes an image to a file. The extension of the file is used to determine the
// encoding method.
func CreateImage(i image.Image, file string) error {
ext := filepath.Ext(file)
m := mime.TypeByExtension(ext)
switch m {
case "image/jpeg", "image/png", "image/tiff":
default:
return errors.Newf("unsupported extension/mime type: %s %s", ext, m)
}
f, err := os.Create(file)
if err != nil {
return errors.Wrap(err, "could not create file")
}
defer f.Close()
switch m {
case "image/jpeg":
err = jpeg.Encode(f, i, &jpeg.Options{Quality: 98})
case "image/png":
err = png.Encode(f, i)
case "image/tiff":
err = tiff.Encode(f, i, &tiff.Options{Compression: tiff.Deflate, Predictor: true})
default:
panic("unreachable")
}
if err != nil {
return errors.Wrap(err, "could not encode image")
}
return nil
}
开发者ID:rdwilliamson,项目名称:snippets,代码行数:34,代码来源:image.go
示例9: Peek
// Peek returns a slice of the look ahead buffer which holds numBytes
// number of bytes. If the look ahead buffer does not already hold enough
// bytes, it will read from the underlying reader to populate the rest.
// NOTE: the returned slice is not a copy of the raw buffer.
func (b *LookAheadBuffer) Peek(numBytes int) ([]byte, error) {
if numBytes < 0 {
return nil, errors.New("Cannot fill negative numBytes")
}
if numBytes > len(b.buffer) {
return nil, errors.Newf(
"Buffer full (buffer size: %d n: %d)",
len(b.buffer),
numBytes)
}
var err error
var numRead int
if b.bytesBuffered < numBytes {
numRead, err = io.ReadAtLeast(
b.src,
b.buffer[b.bytesBuffered:],
numBytes-b.bytesBuffered)
if err != nil {
if err == io.ErrUnexpectedEOF {
// ErrUnexpectedEOF is a terrible error only returned by
// ReadAtLeast. Return EOF (i.e., the original error) instead
// ErrUnexpectedEOF since no one ever checks for this.
err = io.EOF
}
}
}
b.bytesBuffered += numRead
if numBytes > b.bytesBuffered {
numBytes = b.bytesBuffered
}
return b.buffer[:numBytes], err
}
开发者ID:Charlesdong,项目名称:godropbox,代码行数:39,代码来源:look_ahead_buffer.go
示例10: Register
// See ConnectionPool for documentation.
func (p *MultiConnectionPool) Register(network string, address string) error {
if network == "" && address == "" {
return errors.New("Registering invalid (network, address)")
}
key := NetworkAddress{
Network: network,
Address: address,
}
p.rwMutex.Lock()
defer p.rwMutex.Unlock()
if p.isLameDuck {
return errors.Newf(
"Cannot register (%s, %s) to lame duck connection pool",
network,
address)
}
if _, inMap := p.addressPools[key]; inMap {
return nil
}
pool := p.createPool(p.options)
if err := pool.Register(network, address); err != nil {
return err
}
p.addressPools[key] = pool
return nil
}
开发者ID:4578395263256,项目名称:godropbox,代码行数:33,代码来源:multi_connection_pool.go
示例11: GetPacker
func GetPacker(pac *pack.Pack, distro, release string) (
pcker Packer, err error) {
switch constants.DistroPack[distro] {
case "pacman":
pcker = &pacman.Pacman{
Pack: pac,
}
case "debian":
pcker = &debian.Debian{
Pack: pac,
}
case "redhat":
pcker = &redhat.Redhat{
Pack: pac,
}
default:
system := distro
if release != "" {
system += "-" + release
}
err = &UnknownSystem{
errors.Newf("packer: Unkown system %s", system),
}
return
}
return
}
开发者ID:pacur,项目名称:pacur,代码行数:30,代码来源:packer.go
示例12: SerializeSql
func (conj *conjunctExpression) SerializeSql(out *bytes.Buffer) (err error) {
if len(conj.expressions) == 0 {
return errors.Newf(
"Empty conjunction. Generated sql: %s",
out.String())
}
clauses := make([]Clause, len(conj.expressions), len(conj.expressions))
for i, expr := range conj.expressions {
clauses[i] = expr
}
use_parentheses := len(clauses) > 1
if use_parentheses {
out.WriteByte('(')
}
if err = serializeClauses(clauses, conj.conjunction, out); err != nil {
return
}
if use_parentheses {
out.WriteByte(')')
}
return nil
}
开发者ID:4578395263256,项目名称:godropbox,代码行数:27,代码来源:expression.go
示例13: SerializeSql
func (arith *arithmeticExpression) SerializeSql(out *bytes.Buffer) (err error) {
if len(arith.expressions) == 0 {
return errors.Newf(
"Empty arithmetic expression. Generated sql: %s",
out.String())
}
clauses := make([]Clause, len(arith.expressions), len(arith.expressions))
for i, expr := range arith.expressions {
clauses[i] = expr
}
useParentheses := len(clauses) > 1
if useParentheses {
out.WriteByte('(')
}
if err = serializeClauses(clauses, arith.operator, out); err != nil {
return
}
if useParentheses {
out.WriteByte(')')
}
return nil
}
开发者ID:Charlesdong,项目名称:godropbox,代码行数:27,代码来源:expression.go
示例14: TestGet
func (*singletonSuite) TestGet(c *C) {
callCount := 0
init := func() (interface{}, error) {
callCount++
if callCount < 2 {
return nil, errors.Newf("fail")
}
v := 5
return &v, nil
}
s := NewSingleton(init)
// Verify init hasn't been called yet
c.Assert(callCount, Equals, 0)
// Verify init gets called with Get()
_, err := s.Get()
c.Assert(err, NotNil)
c.Assert(callCount, Equals, 1)
// Verify failed init gets retried with Get()
data1, err := s.Get()
c.Assert(err, IsNil)
c.Assert(callCount, Equals, 2)
c.Assert(*(data1.(*int)), Equals, 5)
// Verify that subsequent Get() after a successful one return the same object and don't call
// init
data2, err := s.Get()
c.Assert(err, IsNil)
c.Assert(callCount, Equals, 2)
c.Assert(data1, Equals, data2)
}
开发者ID:4578395263256,项目名称:godropbox,代码行数:34,代码来源:singleton_test.go
示例15: Parse
func Parse() (err error) {
flag.Parse()
cmd := flag.Arg(0)
switch cmd {
case "build":
err = Build()
case "create":
err = Create()
case "project":
err = Project()
case "pull":
err = utils.PullContainers()
case "genkey":
err = GenKey()
case "list-targets":
err = ListTargets()
default:
err = &UnknownCommand{
errors.Newf("cmd: Unknown command '%s'", cmd),
}
}
return
}
开发者ID:pacur,项目名称:pacur,代码行数:25,代码来源:cmd.go
示例16: readFieldLength
// Note: this is equivalent to net_field_length in sql-common/pack.c
func readFieldLength(valBytes []byte) (
length uint64,
remaining []byte,
err error) {
if len(valBytes) == 0 {
return 0, nil, errors.New("Empty field length input")
}
val := uint64(valBytes[0])
if val < 251 {
return val, valBytes[1:], nil
} else if val == 251 {
return NullLength, valBytes[1:], nil
}
size := 9
if val == 252 {
size = 3
} else if val == 253 {
size = 4
}
if len(valBytes) < size {
return 0, nil, errors.Newf(
"Invalid field length input (expected at least %d bytes)",
size)
}
// NOTE: mysql's net_field_length implementation is somewhat broken.
// In particular, when net_store_length encode a ulong using 8 bytes,
// net_field_length will only read the first 4 bytes, and ignore the
// rest ....
return bytesToLEUint(valBytes[1:size]), valBytes[size:], nil
}
开发者ID:Charlesdong,项目名称:godropbox,代码行数:33,代码来源:decoder.go
示例17: Create
func (m *Mirror) Create() (err error) {
keyPath := filepath.Join(m.Root, "sign.key")
m.Signing, err = utils.Exists(keyPath)
if err != nil {
return
}
if m.Signing {
err = signing.ImportKey(keyPath)
if err != nil {
return
}
err = signing.CreateRedhatConf()
if err != nil {
return
}
}
switch constants.DistroPack[m.Distro] {
case "pacman":
err = m.createPacman()
case "debian":
err = m.createDebian()
case "redhat":
err = m.createRedhat()
default:
err = &UnknownType{
errors.Newf("mirror: Unknown type '%s'", m.Distro),
}
}
return
}
开发者ID:pacur,项目名称:pacur,代码行数:35,代码来源:mirror.go
示例18: ConvertAssignRowNullable
// ConverAssignRowNullable is the same as ConvertAssignRow except that it allows
// nil as a value for the row or any of the row values. In thoses cases, the
// corresponding values are ignored.
func ConvertAssignRowNullable(row []Value, dest ...interface{}) error {
if len(row) != len(dest) {
return errors.Newf(
"# of row entries %d does not match # of destinations %d",
len(row),
len(dest))
}
if row == nil {
return nil
}
for i := 0; i < len(row); i++ {
if row[i].IsNull() {
continue
}
err := ConvertAssign(row[i], dest[i])
if err != nil {
return err
}
}
return nil
}
开发者ID:Charlesdong,项目名称:godropbox,代码行数:28,代码来源:sqltypes.go
示例19: String
func (s *lockStatementImpl) String(database string) (sql string, err error) {
if !validIdentifierName(database) {
return "", errors.New("Invalid database name specified")
}
if len(s.locks) == 0 {
return "", errors.New("No locks added")
}
buf := new(bytes.Buffer)
buf.WriteString("LOCK TABLES ")
for idx, lock := range s.locks {
if lock.t == nil {
return "", errors.Newf("nil table. Generated sql: %s", buf.String())
}
if err = lock.t.SerializeSql(database, buf); err != nil {
return
}
if lock.w {
buf.WriteString(" WRITE")
} else {
buf.WriteString(" READ")
}
if idx != len(s.locks)-1 {
buf.WriteString(", ")
}
}
return buf.String(), nil
}
开发者ID:Charlesdong,项目名称:godropbox,代码行数:34,代码来源:statement.go
示例20: Register
// See ResourcePool for documentation.
func (p *RoundRobinResourcePool) Register(resourceLocation string) error {
if resourceLocation == "" {
return errors.New("Registering invalid resource location")
}
p.rwMutex.Lock()
defer p.rwMutex.Unlock()
if p.isLameDuck {
return errors.Newf(
"Cannot register %s to lame duck resource pool",
resourceLocation)
}
for _, locPool := range p.pools {
if locPool.ResourceLocation == resourceLocation {
return nil
}
}
pool := p.createPool(p.options)
if err := pool.Register(resourceLocation); err != nil {
return err
}
p.pools = append(
p.pools,
&ResourceLocationPool{
ResourceLocation: resourceLocation,
Pool: pool,
})
shuffle(p.pools)
return nil
}
开发者ID:Charlesdong,项目名称:godropbox,代码行数:36,代码来源:round_robin_resource_pool.go
注:本文中的github.com/dropbox/godropbox/errors.Newf函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论