blob: 150d7c5e5c45bd4049c66870a0ade29e39185b09 [file] [edit]
// Copyright 2026 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SRC_DEVELOPER_FORENSICS_UTILS_VMO_H_
#define SRC_DEVELOPER_FORENSICS_UTILS_VMO_H_
#include <lib/zx/result.h>
#include <lib/zx/vmo.h>
#include <string>
#include <string_view>
namespace forensics {
// Reads the contents of |vmo| as a string.
//
// The size of the returned string is determined by the stream size of |vmo|.
// Returns a string on success, or a zx_status_t error if retrieving the stream size or
// reading fails.
zx::result<std::string> StringFromVmo(const zx::unowned_vmo& vmo);
zx::result<std::string> StringFromVmo(const zx::vmo& vmo);
// Creates a new VMO containing |string|.
//
// The stream size of the returned VMO is set to |string.size()|.
// Returns the VMO on success, or a zx_status_t error if creating or writing to the VMO fails.
zx::result<zx::vmo> VmoFromString(std::string_view string);
} // namespace forensics
#endif // SRC_DEVELOPER_FORENSICS_UTILS_VMO_H_