1
Fork 0

Move EncodedMetadata to rustc_metadata.

This commit is contained in:
Camille GILLOT 2021-09-24 18:15:36 +02:00
parent df54d3980b
commit b244b98e7c
17 changed files with 39 additions and 32 deletions

View file

@ -30,5 +30,4 @@ pub mod creader;
pub mod dynamic_lib;
pub mod locator;
pub use rmeta::encode_metadata;
pub use rmeta::METADATA_HEADER;
pub use rmeta::{encode_metadata, EncodedMetadata, METADATA_HEADER};

View file

@ -18,7 +18,7 @@ use rustc_hir::{AnonConst, GenericParamKind};
use rustc_index::bit_set::GrowableBitSet;
use rustc_index::vec::Idx;
use rustc_middle::hir::map::Map;
use rustc_middle::middle::cstore::{EncodedMetadata, ForeignModule, LinkagePreference, NativeLib};
use rustc_middle::middle::cstore::{ForeignModule, LinkagePreference, NativeLib};
use rustc_middle::middle::dependency_format::Linkage;
use rustc_middle::middle::exported_symbols::{
metadata_symbol_name, ExportedSymbol, SymbolExportLevel,
@ -2101,6 +2101,23 @@ fn prefetch_mir(tcx: TyCtxt<'_>) {
// will allow us to slice the metadata to the precise length that we just
// generated regardless of trailing bytes that end up in it.
#[derive(Encodable, Decodable)]
pub struct EncodedMetadata {
raw_data: Vec<u8>,
}
impl EncodedMetadata {
#[inline]
pub fn new() -> EncodedMetadata {
EncodedMetadata { raw_data: Vec::new() }
}
#[inline]
pub fn raw_data(&self) -> &[u8] {
&self.raw_data[..]
}
}
pub fn encode_metadata(tcx: TyCtxt<'_>) -> EncodedMetadata {
let _prof_timer = tcx.prof.verbose_generic_activity("generate_crate_metadata");

View file

@ -32,8 +32,8 @@ use std::num::NonZeroUsize;
use decoder::DecodeContext;
pub use decoder::{provide, provide_extern};
crate use decoder::{CrateMetadata, CrateNumMap, MetadataBlob};
pub use encoder::encode_metadata;
use encoder::EncodeContext;
pub use encoder::{encode_metadata, EncodedMetadata};
use rustc_span::hygiene::SyntaxContextData;
mod decoder;