module Google

We define these before requiring the platform-specific modules. That way the module init can grab references to these.

Protocol Buffers - Google’s data interchange format Copyright 2022 Google Inc. All rights reserved.

Use of this source code is governed by a BSD-style license that can be found in the LICENSE file or at developers.google.com/open-source/licenses/bsd

Protocol Buffers - Google’s data interchange format Copyright 2022 Google Inc. All rights reserved.

Use of this source code is governed by a BSD-style license that can be found in the LICENSE file or at developers.google.com/open-source/licenses/bsd

Protocol Buffers - Google’s data interchange format Copyright 2022 Google Inc. All rights reserved.

Use of this source code is governed by a BSD-style license that can be found in the LICENSE file or at developers.google.com/open-source/licenses/bsd

Protocol Buffers - Google’s data interchange format Copyright 2022 Google Inc. All rights reserved.

Use of this source code is governed by a BSD-style license that can be found in the LICENSE file or at developers.google.com/open-source/licenses/bsd

Protocol Buffers - Google’s data interchange format Copyright 2022 Google Inc. All rights reserved.

Use of this source code is governed by a BSD-style license that can be found in the LICENSE file or at developers.google.com/open-source/licenses/bsd

Protocol Buffers - Google’s data interchange format Copyright 2022 Google Inc. All rights reserved.

Use of this source code is governed by a BSD-style license that can be found in the LICENSE file or at developers.google.com/open-source/licenses/bsd

Implementation details below are subject to breaking changes without warning and are intended for use only within the gem.

Implementation details below are subject to breaking changes without warning and are intended for use only within the gem.

Protocol Buffers - Google’s data interchange format Copyright 2023 Google Inc. All rights reserved.

Use of this source code is governed by a BSD-style license that can be found in the LICENSE file or at developers.google.com/open-source/licenses/bsd

A to_native DataConverter method that raises an error if the value is not of the same type. Adapted from to www.varvet.com/blog/advanced-topics-in-ruby-ffi/

Protocol Buffers - Google’s data interchange format Copyright 2022 Google Inc. All rights reserved.

Use of this source code is governed by a BSD-style license that can be found in the LICENSE file or at developers.google.com/open-source/licenses/bsd

Decorates Descriptor with the ‘build_message_class` method that defines Message classes.

Protocol Buffers - Google’s data interchange format Copyright 2022 Google Inc. All rights reserved.

Use of this source code is governed by a BSD-style license that can be found in the LICENSE file or at developers.google.com/open-source/licenses/bsd

Protocol Buffers - Google’s data interchange format Copyright 2022 Google Inc. All rights reserved.

Use of this source code is governed by a BSD-style license that can be found in the LICENSE file or at developers.google.com/open-source/licenses/bsd

This class makes RepeatedField act (almost-) like a Ruby Array. It has convenience methods that extend the core C or Java based methods.

This is a best-effort to mirror Array behavior. Two comments:

1) patches always welcome :)
2) if performance is an issue, feel free to rewrite the method
   in C.  The source code has plenty of examples

KNOWN ISSUES

- #[]= doesn't allow less used approaches such as `arr[1, 2] = 'fizz'`
- #concat should return the orig array
- #push should accept multiple arguments and push them all at the same time

Protocol Buffers - Google’s data interchange format Copyright 2023 Google Inc. All rights reserved.

Use of this source code is governed by a BSD-style license that can be found in the LICENSE file or at developers.google.com/open-source/licenses/bsd

Protocol Buffers - Google’s data interchange format Copyright 2008 Google Inc. All rights reserved.

Use of this source code is governed by a BSD-style license that can be found in the LICENSE file or at developers.google.com/open-source/licenses/bsd

This class makes RepeatedField act (almost-) like a Ruby Array. It has convenience methods that extend the core C or Java based methods.

This is a best-effort to mirror Array behavior. Two comments:

1) patches always welcome :)
2) if performance is an issue, feel free to rewrite the method
   in jruby and C.  The source code has plenty of examples

KNOWN ISSUES

- #[]= doesn't allow less used approaches such as `arr[1, 2] = 'fizz'`
- #concat should return the orig array
- #push should accept multiple arguments and push them all at the same time