pub struct File { /* private fields */ }
Expand description
An opened protobuf source file, returned by FileResolver::open_file
.
Implementations§
source§impl File
impl File
sourcepub fn open(name: &str, path: &Path) -> Result<Self, Error>
pub fn open(name: &str, path: &Path) -> Result<Self, Error>
Read a protobuf source file from the filesystem into a new instance of File
Errors
Returns an error if there is an IO error opening the file, or it is not a valid protobuf source file.
If the file does not exist, Error::file_not_found()
is returned
Examples
fs::write("foo.proto", "message Foo { }").unwrap();
let file = File::open("foo.proto", "foo.proto".as_ref()).unwrap();
assert_eq!(file.path(), Some("foo.proto".as_ref()));
assert_eq!(file.source(), Some("message Foo { }"));
assert_eq!(file.file_descriptor_proto(), &FileDescriptorProto {
name: Some("foo.proto".to_owned()),
message_type: vec![DescriptorProto {
name: Some("Foo".to_owned()),
..Default::default()
}],
source_code_info: Some(SourceCodeInfo {
location: vec![
Location { path: vec![], span: vec![0, 0, 15], ..Default::default() },
Location { path: vec![4, 0], span: vec![0, 0, 15], ..Default::default() },
Location { path: vec![4, 0, 1], span: vec![0, 8, 11], ..Default::default() }
]
}),
..Default::default()
});
assert!(File::open("notfound.proto", "notfound.proto".as_ref()).unwrap_err().is_file_not_found());
sourcepub fn from_source(name: &str, source: &str) -> Result<Self, Error>
pub fn from_source(name: &str, source: &str) -> Result<Self, Error>
Read a protobuf source file from a string into a new instance of File
Errors
Returns an error the string is not a valid protobuf source file.
Examples
let file = File::from_source("foo.proto", "message Foo { }").unwrap();
assert_eq!(file.path(), None);
assert_eq!(file.source(), Some("message Foo { }"));
assert_eq!(file.file_descriptor_proto(), &FileDescriptorProto {
name: Some("foo.proto".to_owned()),
message_type: vec![DescriptorProto {
name: Some("Foo".to_owned()),
..Default::default()
}],
source_code_info: Some(SourceCodeInfo {
location: vec![
Location { path: vec![], span: vec![0, 0, 15], ..Default::default() },
Location { path: vec![4, 0], span: vec![0, 0, 15], ..Default::default() },
Location { path: vec![4, 0, 1], span: vec![0, 8, 11], ..Default::default() }
]
}),
..Default::default()
});
sourcepub fn from_file_descriptor_proto(file: FileDescriptorProto) -> Self
pub fn from_file_descriptor_proto(file: FileDescriptorProto) -> Self
Create a new instance of File
from a parsed FileDescriptorProto
.
The file does not need to have type names or imports resolved. Typically, it would be returned by the parse()
method.
sourcepub fn decode_file_descriptor_proto<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
pub fn decode_file_descriptor_proto<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
Create an instance of File
by deserializing a FileDescriptorProto
from the given bytes.
Unlike when going through from_file_descriptor_proto()
, extension options are preserved.
The file does not need to have type names or imports resolved.
sourcepub fn path(&self) -> Option<&Path>
pub fn path(&self) -> Option<&Path>
Returns the filesystem path, if this source is backed by a physical file.
sourcepub fn file_descriptor_proto(&self) -> &FileDescriptorProto
pub fn file_descriptor_proto(&self) -> &FileDescriptorProto
Trait Implementations§
source§impl From<File> for FileDescriptorProto
impl From<File> for FileDescriptorProto
source§impl From<FileDescriptorProto> for File
impl From<FileDescriptorProto> for File
source§fn from(file: FileDescriptorProto) -> Self
fn from(file: FileDescriptorProto) -> Self
Auto Trait Implementations§
impl RefUnwindSafe for File
impl Send for File
impl Sync for File
impl Unpin for File
impl UnwindSafe for File
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<D> OwoColorize for D
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>
fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>
§fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>
fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>
§fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
§fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
§fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>
fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>
§fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>
fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>
§fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>
fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>
§fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>
fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>
§fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>
fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>
§fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>
fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>
§fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>
fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>
§fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>
fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>
§fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>
fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>
§fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>
fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>
§fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>
fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>
§fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>
fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>
§fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
§fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
§fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
§fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
§fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>
fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>
§fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>
fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>
§fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>
fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>
§fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>
fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>
§fn blink_fast<'a>(&'a self) -> BlinkFastDisplay<'a, Self>
fn blink_fast<'a>(&'a self) -> BlinkFastDisplay<'a, Self>
§fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>
fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg
or
a color-specific method, such as OwoColorize::green
, Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg
or
a color-specific method, such as OwoColorize::on_yellow
, Read more