#region Copyright notice and license
// 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
// https://developers.google.com/open-source/licenses/bsd
#endregion
using System;
using System.Security;
namespace Google.Protobuf
{
///
/// Provides a number of unsafe byte operations to be used by advanced applications with high performance
/// requirements. These methods are referred to as "unsafe" due to the fact that they potentially expose
/// the backing buffer of a to the application.
///
///
///
/// The methods in this class should only be called if it is guaranteed that the buffer backing the
/// will never change! Mutation of a can lead to unexpected
/// and undesirable consequences in your application, and will likely be difficult to debug. Proceed with caution!
///
///
/// This can have a number of significant side affects that have spooky-action-at-a-distance-like behavior. In
/// particular, if the bytes value changes out from under a Protocol Buffer:
///
///
/// -
/// serialization may throw
///
/// -
/// serialization may succeed but the wrong bytes may be written out
///
/// -
/// objects that are normally immutable (such as ByteString) are no longer immutable
///
/// -
/// hashCode may be incorrect
///
///
///
[SecuritySafeCritical]
public static class UnsafeByteOperations
{
///
/// Constructs a new from the given bytes. The bytes are not copied,
/// and must not be modified while the is in use.
/// This API is experimental and subject to change.
///
public static ByteString UnsafeWrap(ReadOnlyMemory bytes)
{
return ByteString.AttachBytes(bytes);
}
}
}