Push Rc out of RelativePath
[hiphop-php.git] / hphp / hack / src / oxidized / gen / file_info.rs
blobdc89839643c9ea10c3b03894e6a6048a11488b66
1 // Copyright (c) Facebook, Inc. and its affiliates.
2 //
3 // This source code is licensed under the MIT license found in the
4 // LICENSE file in the "hack" directory of this source tree.
5 //
6 // @generated SignedSource<<f0087fef3c9c65644b583f84764940b0>>
7 //
8 // To regenerate this file, run:
9 //   hphp/hack/src/oxidized/regen.sh
11 use ocamlrep_derive::OcamlRep;
13 use crate::opaque_digest;
14 use crate::pos;
15 use crate::relative_path;
16 use crate::s_set;
18 use crate::prim_defs::*;
20 #[derive(Clone, Copy, Debug, Eq, OcamlRep, PartialEq)]
21 pub enum Mode {
22     Mphp,
23     Mdecl,
24     Mstrict,
25     Mpartial,
26     Mexperimental,
29 #[derive(Clone, Copy, Debug, Eq, OcamlRep, PartialEq)]
30 pub enum NameType {
31     Fun,
32     Class,
33     RecordDef,
34     Typedef,
35     Const,
38 #[derive(Clone, Debug, OcamlRep)]
39 pub enum Pos {
40     Full(pos::Pos),
41     File(NameType, ocamlrep::rc::RcOc<relative_path::RelativePath>),
44 #[derive(Clone, Debug, OcamlRep)]
45 pub struct Id(pub Pos, pub String);
47 pub type HashType = Option<opaque_digest::OpaqueDigest>;
49 #[derive(Clone, Debug, OcamlRep)]
50 pub struct FileInfo {
51     pub hash: HashType,
52     pub file_mode: Option<Mode>,
53     pub funs: Vec<Id>,
54     pub classes: Vec<Id>,
55     pub record_defs: Vec<Id>,
56     pub typedefs: Vec<Id>,
57     pub consts: Vec<Id>,
58     pub comments: Option<Vec<(pos::Pos, Comment)>>,
61 #[derive(Clone, Debug, OcamlRep)]
62 pub struct Names {
63     pub funs: s_set::SSet,
64     pub classes: s_set::SSet,
65     pub record_defs: s_set::SSet,
66     pub types: s_set::SSet,
67     pub consts: s_set::SSet,
70 #[derive(Clone, Debug, OcamlRep)]
71 pub struct Saved {
72     pub names: Names,
73     pub hash: Option<opaque_digest::OpaqueDigest>,
74     pub mode: Option<Mode>,