All Downloads are FREE. Search and download functionalities are using the official Maven repository.

build.bazel.remote.execution.v2.DigestKt.kt Maven / Gradle / Ivy

// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: build/bazel/remote/execution/v2/remote_execution.proto

// Generated files should ignore deprecation warnings
@file:Suppress("DEPRECATION")
package build.bazel.remote.execution.v2;

@kotlin.jvm.JvmName("-initializedigest")
public inline fun digest(block: build.bazel.remote.execution.v2.DigestKt.Dsl.() -> kotlin.Unit): build.bazel.remote.execution.v2.Digest =
  build.bazel.remote.execution.v2.DigestKt.Dsl._create(build.bazel.remote.execution.v2.Digest.newBuilder()).apply { block() }._build()
/**
 * ```
 * A content digest. A digest for a given blob consists of the size of the blob
 * and its hash. The hash algorithm to use is defined by the server.
 *
 * The size is considered to be an integral part of the digest and cannot be
 * separated. That is, even if the `hash` field is correctly specified but
 * `size_bytes` is not, the server MUST reject the request.
 *
 * The reason for including the size in the digest is as follows: in a great
 * many cases, the server needs to know the size of the blob it is about to work
 * with prior to starting an operation with it, such as flattening Merkle tree
 * structures or streaming it to a worker. Technically, the server could
 * implement a separate metadata store, but this results in a significantly more
 * complicated implementation as opposed to having the client specify the size
 * up-front (or storing the size along with the digest in every message where
 * digests are embedded). This does mean that the API leaks some implementation
 * details of (what we consider to be) a reasonable server implementation, but
 * we consider this to be a worthwhile tradeoff.
 *
 * When a `Digest` is used to refer to a proto message, it always refers to the
 * message in binary encoded form. To ensure consistent hashing, clients and
 * servers MUST ensure that they serialize messages according to the following
 * rules, even if there are alternate valid encodings for the same message:
 *
 * * Fields are serialized in tag order.
 * * There are no unknown fields.
 * * There are no duplicate fields.
 * * Fields are serialized according to the default semantics for their type.
 *
 * Most protocol buffer implementations will always follow these rules when
 * serializing, but care should be taken to avoid shortcuts. For instance,
 * concatenating two messages to merge them may produce duplicate fields.
 * ```
 *
 * Protobuf type `build.bazel.remote.execution.v2.Digest`
 */
public object DigestKt {
  @kotlin.OptIn(com.google.protobuf.kotlin.OnlyForUseByGeneratedProtoCode::class)
  @com.google.protobuf.kotlin.ProtoDslMarker
  public class Dsl private constructor(
    private val _builder: build.bazel.remote.execution.v2.Digest.Builder
  ) {
    public companion object {
      @kotlin.jvm.JvmSynthetic
      @kotlin.PublishedApi
      internal fun _create(builder: build.bazel.remote.execution.v2.Digest.Builder): Dsl = Dsl(builder)
    }

    @kotlin.jvm.JvmSynthetic
    @kotlin.PublishedApi
    internal fun _build(): build.bazel.remote.execution.v2.Digest = _builder.build()

    /**
     * ```
     * The hash. In the case of SHA-256, it will always be a lowercase hex string
     * exactly 64 characters long.
     * ```
     *
     * `string hash = 1;`
     */
    public var hash: kotlin.String
      @JvmName("getHash")
      get() = _builder.getHash()
      @JvmName("setHash")
      set(value) {
        _builder.setHash(value)
      }
    /**
     * ```
     * The hash. In the case of SHA-256, it will always be a lowercase hex string
     * exactly 64 characters long.
     * ```
     *
     * `string hash = 1;`
     */
    public fun clearHash() {
      _builder.clearHash()
    }

    /**
     * ```
     * The size of the blob, in bytes.
     * ```
     *
     * `int64 size_bytes = 2;`
     */
    public var sizeBytes: kotlin.Long
      @JvmName("getSizeBytes")
      get() = _builder.getSizeBytes()
      @JvmName("setSizeBytes")
      set(value) {
        _builder.setSizeBytes(value)
      }
    /**
     * ```
     * The size of the blob, in bytes.
     * ```
     *
     * `int64 size_bytes = 2;`
     */
    public fun clearSizeBytes() {
      _builder.clearSizeBytes()
    }
  }
}
@kotlin.jvm.JvmSynthetic
public inline fun build.bazel.remote.execution.v2.Digest.copy(block: `build.bazel.remote.execution.v2`.DigestKt.Dsl.() -> kotlin.Unit): build.bazel.remote.execution.v2.Digest =
  `build.bazel.remote.execution.v2`.DigestKt.Dsl._create(this.toBuilder()).apply { block() }._build()





© 2015 - 2024 Weber Informatics LLC | Privacy Policy