// Code generated by protoc-gen-go. DO NOT EDIT.
// source: bazil.org/bazil/fs/snap/wire/snap.proto

package wire

import (
	wire "bazil.org/bazil/cas/wire"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type Dirent struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Types that are valid to be assigned to Type:
	//	*Dirent_File
	//	*Dirent_Dir
	Type                 isDirent_Type `protobuf_oneof:"type"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *Dirent) Reset()         { *m = Dirent{} }
func (m *Dirent) String() string { return proto.CompactTextString(m) }
func (*Dirent) ProtoMessage()    {}
func (*Dirent) Descriptor() ([]byte, []int) {
	return fileDescriptor_c9a2023f27f359bb, []int{0}
}

func (m *Dirent) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Dirent.Unmarshal(m, b)
}
func (m *Dirent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Dirent.Marshal(b, m, deterministic)
}
func (m *Dirent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Dirent.Merge(m, src)
}
func (m *Dirent) XXX_Size() int {
	return xxx_messageInfo_Dirent.Size(m)
}
func (m *Dirent) XXX_DiscardUnknown() {
	xxx_messageInfo_Dirent.DiscardUnknown(m)
}

var xxx_messageInfo_Dirent proto.InternalMessageInfo

func (m *Dirent) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

type isDirent_Type interface {
	isDirent_Type()
}

type Dirent_File struct {
	File *File `protobuf:"bytes,2,opt,name=file,proto3,oneof"`
}

type Dirent_Dir struct {
	Dir *Dir `protobuf:"bytes,3,opt,name=dir,proto3,oneof"`
}

func (*Dirent_File) isDirent_Type() {}

func (*Dirent_Dir) isDirent_Type() {}

func (m *Dirent) GetType() isDirent_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (m *Dirent) GetFile() *File {
	if x, ok := m.GetType().(*Dirent_File); ok {
		return x.File
	}
	return nil
}

func (m *Dirent) GetDir() *Dir {
	if x, ok := m.GetType().(*Dirent_Dir); ok {
		return x.Dir
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Dirent) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Dirent_File)(nil),
		(*Dirent_Dir)(nil),
	}
}

type File struct {
	Manifest             *wire.Manifest `protobuf:"bytes,1,opt,name=manifest,proto3" json:"manifest,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *File) Reset()         { *m = File{} }
func (m *File) String() string { return proto.CompactTextString(m) }
func (*File) ProtoMessage()    {}
func (*File) Descriptor() ([]byte, []int) {
	return fileDescriptor_c9a2023f27f359bb, []int{1}
}

func (m *File) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_File.Unmarshal(m, b)
}
func (m *File) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_File.Marshal(b, m, deterministic)
}
func (m *File) XXX_Merge(src proto.Message) {
	xxx_messageInfo_File.Merge(m, src)
}
func (m *File) XXX_Size() int {
	return xxx_messageInfo_File.Size(m)
}
func (m *File) XXX_DiscardUnknown() {
	xxx_messageInfo_File.DiscardUnknown(m)
}

var xxx_messageInfo_File proto.InternalMessageInfo

func (m *File) GetManifest() *wire.Manifest {
	if m != nil {
		return m.Manifest
	}
	return nil
}

type Dir struct {
	Manifest *wire.Manifest `protobuf:"bytes,1,opt,name=manifest,proto3" json:"manifest,omitempty"`
	// If >0, the direntries are guaranteed to be aligned at
	// 1<<(12+align-1) byte boundaries (that is, minimum alignment is
	// 4kB).
	Align                uint32   `protobuf:"varint,2,opt,name=align,proto3" json:"align,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Dir) Reset()         { *m = Dir{} }
func (m *Dir) String() string { return proto.CompactTextString(m) }
func (*Dir) ProtoMessage()    {}
func (*Dir) Descriptor() ([]byte, []int) {
	return fileDescriptor_c9a2023f27f359bb, []int{2}
}

func (m *Dir) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Dir.Unmarshal(m, b)
}
func (m *Dir) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Dir.Marshal(b, m, deterministic)
}
func (m *Dir) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Dir.Merge(m, src)
}
func (m *Dir) XXX_Size() int {
	return xxx_messageInfo_Dir.Size(m)
}
func (m *Dir) XXX_DiscardUnknown() {
	xxx_messageInfo_Dir.DiscardUnknown(m)
}

var xxx_messageInfo_Dir proto.InternalMessageInfo

func (m *Dir) GetManifest() *wire.Manifest {
	if m != nil {
		return m.Manifest
	}
	return nil
}

func (m *Dir) GetAlign() uint32 {
	if m != nil {
		return m.Align
	}
	return 0
}

// Snapshot as it is stored into CAS.
type Snapshot struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The name field of the root directory is empty.
	Contents             *Dirent  `protobuf:"bytes,2,opt,name=contents,proto3" json:"contents,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Snapshot) Reset()         { *m = Snapshot{} }
func (m *Snapshot) String() string { return proto.CompactTextString(m) }
func (*Snapshot) ProtoMessage()    {}
func (*Snapshot) Descriptor() ([]byte, []int) {
	return fileDescriptor_c9a2023f27f359bb, []int{3}
}

func (m *Snapshot) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Snapshot.Unmarshal(m, b)
}
func (m *Snapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Snapshot.Marshal(b, m, deterministic)
}
func (m *Snapshot) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Snapshot.Merge(m, src)
}
func (m *Snapshot) XXX_Size() int {
	return xxx_messageInfo_Snapshot.Size(m)
}
func (m *Snapshot) XXX_DiscardUnknown() {
	xxx_messageInfo_Snapshot.DiscardUnknown(m)
}

var xxx_messageInfo_Snapshot proto.InternalMessageInfo

func (m *Snapshot) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Snapshot) GetContents() *Dirent {
	if m != nil {
		return m.Contents
	}
	return nil
}

func init() {
	proto.RegisterType((*Dirent)(nil), "bazil.snap.Dirent")
	proto.RegisterType((*File)(nil), "bazil.snap.File")
	proto.RegisterType((*Dir)(nil), "bazil.snap.Dir")
	proto.RegisterType((*Snapshot)(nil), "bazil.snap.Snapshot")
}

func init() {
	proto.RegisterFile("bazil.org/bazil/fs/snap/wire/snap.proto", fileDescriptor_c9a2023f27f359bb)
}

var fileDescriptor_c9a2023f27f359bb = []byte{
	// 261 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x90, 0x31, 0x4f, 0xc3, 0x30,
	0x10, 0x85, 0x1b, 0x62, 0xa2, 0x70, 0x15, 0x02, 0x19, 0x86, 0x88, 0xa9, 0x0a, 0x12, 0x74, 0xb2,
	0xa5, 0x32, 0xb0, 0x57, 0x11, 0xea, 0x00, 0x0c, 0x66, 0x63, 0x73, 0x83, 0x53, 0x4e, 0x4a, 0xcf,
	0xc1, 0xb6, 0x84, 0xe0, 0xd7, 0xa3, 0x38, 0xa1, 0x20, 0x60, 0x61, 0x7b, 0xf6, 0x7b, 0x9f, 0xee,
	0xde, 0xc1, 0xe5, 0x5a, 0xbf, 0x63, 0x2b, 0xac, 0xdb, 0xc8, 0xa8, 0x64, 0xe3, 0xa5, 0x27, 0xdd,
	0xc9, 0x57, 0x74, 0x26, 0x2a, 0xd1, 0x39, 0x1b, 0x2c, 0x87, 0x21, 0xd8, 0xff, 0x9c, 0xfd, 0x82,
	0x6a, 0xed, 0x07, 0x60, 0xab, 0x09, 0x1b, 0xe3, 0xc3, 0x00, 0x95, 0x2f, 0x90, 0x55, 0xe8, 0x0c,
	0x05, 0xce, 0x81, 0x91, 0xde, 0x9a, 0x22, 0x99, 0x25, 0xf3, 0x03, 0x15, 0x35, 0xbf, 0x00, 0xd6,
	0x60, 0x6b, 0x8a, 0xbd, 0x59, 0x32, 0x9f, 0x2e, 0x8e, 0xc5, 0xd7, 0x04, 0x71, 0x83, 0xad, 0x59,
	0x4d, 0x54, 0xf4, 0xf9, 0x39, 0xa4, 0x4f, 0xe8, 0x8a, 0x34, 0xc6, 0x8e, 0xbe, 0xc7, 0x2a, 0x74,
	0xab, 0x89, 0xea, 0xdd, 0x65, 0x06, 0x2c, 0xbc, 0x75, 0xa6, 0xbc, 0x06, 0xd6, 0xc3, 0x5c, 0x42,
	0xfe, 0xb9, 0x4c, 0x1c, 0x3a, 0x5d, 0x9c, 0x8c, 0x64, 0xad, 0xbd, 0xb8, 0x1b, 0x2d, 0xb5, 0x0b,
	0x95, 0xb7, 0x90, 0x56, 0xe8, 0xfe, 0xcd, 0xf1, 0x53, 0xd8, 0xd7, 0x2d, 0x6e, 0x28, 0xd6, 0x38,
	0x54, 0xc3, 0xa3, 0xbc, 0x87, 0xfc, 0x81, 0x74, 0xe7, 0x9f, 0xed, 0xdf, 0xdd, 0x05, 0xe4, 0xb5,
	0xa5, 0x60, 0x28, 0xf8, 0xb1, 0x3f, 0xff, 0x51, 0xcc, 0x50, 0x50, 0xbb, 0xcc, 0x32, 0x7b, 0x64,
	0xfd, 0x81, 0xd7, 0x59, 0x3c, 0xec, 0xd5, 0x47, 0x00, 0x00, 0x00, 0xff, 0xff, 0x81, 0x30, 0x50,
	0x4f, 0xb8, 0x01, 0x00, 0x00,
}
