| // Copyright 2019 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package irregular |
| |
| import ( |
| pref "google.golang.org/protobuf/reflect/protoreflect" |
| ) |
| |
| // TODO: Remove this. |
| func (m *message) Type() pref.MessageType { return nil } |
| func (m *message) KnownFields() pref.KnownFields { return (*known)(m) } |
| func (m *message) UnknownFields() pref.UnknownFields { return (*unknown)(m) } |
| |
| type known IrregularMessage |
| |
| func (m *known) Len() int { |
| if m.set { |
| return 1 |
| } |
| return 0 |
| } |
| |
| func (m *known) Has(num pref.FieldNumber) bool { |
| switch num { |
| case fieldS: |
| return m.set |
| } |
| return false |
| } |
| |
| func (m *known) Get(num pref.FieldNumber) pref.Value { |
| switch num { |
| case fieldS: |
| return pref.ValueOf(m.value) |
| } |
| return pref.Value{} |
| } |
| |
| func (m *known) Set(num pref.FieldNumber, v pref.Value) { |
| switch num { |
| case fieldS: |
| m.value = v.String() |
| default: |
| panic("unknown field") |
| } |
| } |
| |
| func (m *known) Clear(num pref.FieldNumber) { |
| switch num { |
| case fieldS: |
| m.value = "" |
| m.set = false |
| default: |
| panic("unknown field") |
| } |
| } |
| |
| func (m *known) WhichOneof(name pref.Name) pref.FieldNumber { |
| return 0 |
| } |
| |
| func (m *known) Range(f func(pref.FieldNumber, pref.Value) bool) { |
| if m.set { |
| f(fieldS, pref.ValueOf(m.value)) |
| } |
| } |
| |
| func (m *known) NewMessage(num pref.FieldNumber) pref.Message { |
| panic("not a message field") |
| } |
| |
| func (m *known) ExtensionTypes() pref.ExtensionFieldTypes { |
| return (*exttypes)(m) |
| } |
| |
| const fieldS = pref.FieldNumber(1) |
| |
| type unknown IrregularMessage |
| |
| func (m *unknown) Len() int { return 0 } |
| func (m *unknown) Get(pref.FieldNumber) pref.RawFields { return nil } |
| func (m *unknown) Set(pref.FieldNumber, pref.RawFields) {} |
| func (m *unknown) Range(func(pref.FieldNumber, pref.RawFields) bool) {} |
| func (m *unknown) IsSupported() bool { return false } |
| |
| type exttypes IrregularMessage |
| |
| func (m *exttypes) Len() int { return 0 } |
| func (m *exttypes) Register(pref.ExtensionType) { panic("not extendable") } |
| func (m *exttypes) Remove(pref.ExtensionType) {} |
| func (m *exttypes) ByNumber(pref.FieldNumber) pref.ExtensionType { return nil } |
| func (m *exttypes) ByName(pref.FullName) pref.ExtensionType { return nil } |
| func (m *exttypes) Range(func(pref.ExtensionType) bool) {} |