Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion derive-encode/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ syn = "2"

[dev-dependencies]
prometheus-client = { path = "../", features = ["protobuf"] }
trybuild = "1"

[lib]
proc-macro = true
proc-macro = true
20 changes: 10 additions & 10 deletions derive-encode/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,15 @@ pub fn derive_encode_label_set(input: TokenStream) -> TokenStream {
};

let gen = quote! {
impl prometheus_client::encoding::EncodeLabelSet for #name {
fn encode(&self, encoder: &mut prometheus_client::encoding::LabelSetEncoder) -> std::result::Result<(), std::fmt::Error> {
use prometheus_client::encoding::EncodeLabel;
use prometheus_client::encoding::EncodeLabelKey;
use prometheus_client::encoding::EncodeLabelValue;
impl ::prometheus_client::encoding::EncodeLabelSet for #name {
fn encode(&self, encoder: &mut ::prometheus_client::encoding::LabelSetEncoder) -> ::core::result::Result<(), ::core::fmt::Error> {
use ::prometheus_client::encoding::EncodeLabel;
use ::prometheus_client::encoding::EncodeLabelKey;
use ::prometheus_client::encoding::EncodeLabelValue;

#body

Ok(())
::core::result::Result::Ok(())
}
}
};
Expand Down Expand Up @@ -118,13 +118,13 @@ pub fn derive_encode_label_value(input: TokenStream) -> TokenStream {
};

let gen = quote! {
impl prometheus_client::encoding::EncodeLabelValue for #name {
fn encode(&self, encoder: &mut prometheus_client::encoding::LabelValueEncoder) -> std::result::Result<(), std::fmt::Error> {
use std::fmt::Write;
impl ::prometheus_client::encoding::EncodeLabelValue for #name {
fn encode(&self, encoder: &mut ::prometheus_client::encoding::LabelValueEncoder) -> ::core::result::Result<(), ::core::fmt::Error> {
use ::core::fmt::Write;

#body

Ok(())
::core::result::Result::Ok(())
}
}
};
Expand Down
36 changes: 36 additions & 0 deletions derive-encode/tests/build/redefine-prelude-symbols.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#![allow(unused_imports)]

// empty module has nothing and be used to redefine symbols
mod empty {}

// redefine the prelude `::std`
use empty as std;

// redefine the dependency `::prometheus_client`
use empty as prometheus_client;

// redefine the prelude `::core::result::Result`.
type Result = ();

enum TResult {
Ok,
Err,
}

// redefine the prelude `::core::result::Result::Ok/Err`.
use TResult::Ok;
use TResult::Err;

#[derive(Debug, Clone, PartialEq, Eq, Hash, ::prometheus_client::encoding::EncodeLabelSet)]
struct LableSet {
a: String,
b: LabelEnum,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, ::prometheus_client::encoding::EncodeLabelValue)]
enum LabelEnum {
A,
B,
}

fn main() {}
6 changes: 6 additions & 0 deletions derive-encode/tests/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -205,3 +205,9 @@ fn flatten() {
+ "# EOF\n";
assert_eq!(expected, buffer);
}

#[test]
fn build() {
let t = trybuild::TestCases::new();
t.pass("tests/build/redefine-prelude-symbols.rs")
}
Loading